We truncated the diff of some files because they were too big.
If you want to see the full diff for every file, click here.
Changes of Revision 39
obs-studio.changes
Changed
x
1
2
-------------------------------------------------------------------
3
+Mon Nov 21 18:55:11 UTC 2016 - jimmy@boombatower.com
4
+
5
+- Update to version 0.16.6:
6
+ * UI: Add --verbose and --unfiltered_log command line options
7
+ * libobs: Duplicate filters of a scene when it is is duplicated
8
+ * obs-ffmpeg: Fix assumption about plane height with i444
9
+ * libobs: Refactor check for Windows bitness/arch
10
+ * libobs: Add Windows bitness/arch to crash handler
11
+ * enc-amf: Update to version 1.4.1.5
12
+ * UI: Add preview scaling options
13
+ * rtmp-services: Change YouTube keyint from 4 to 2
14
+ * libobs: Ensure async source sizes are always reset
15
+ * UI: Fix crash when switching encoders in advanced mode
16
+ * UI: Fix scrolling while preview is locked
17
+ * libobs: Ensure AVC priority is always highest for keyframes
18
+ * obs-outputs: Use correct variable for drop priority
19
+ * enc-amf: Update to commit which prevents crash on startup
20
+ * enc-amf: Update to temporary fix branch
21
+ * win-capture: Do not load 64bit hook offsets on 32bit systems
22
+ * win-capture: Defer hook offset loading to separate thread
23
+ * text-freetype2: Defer loading of plugin until source created
24
+ * obs-qsv11: Manually mark priority bits for QSV frames
25
+ * Revert "libobs: Ensure AVC priority is always highest for keyframes"
26
+ * libobs: Update to 0.16.6
27
+ * Update translations from CrowdIn
28
+ * UI: tray icons are redrawn for better visibility and contrast
29
+ * UI: Update settings and fix presets for simple AMD encoder
30
+ * enc-amf: Update to 1.4.2.2
31
+ * enc-amf: Update to 1.4.2.3
32
+ * cmake: Add module to find RSSDK
33
+ * cmake: Add macro to compile .tlb files via midl
34
+ * win-ivcam: Add Intel RealSense plugin
35
+ * UI: Update installer script to latest version
36
+ * libobs-opengl: Add warning when used on windows
37
+ * Update translations from Crowdin
38
+ * enc-amf: Avoid using C++17 for VS2013 compatibility
39
+
40
+-------------------------------------------------------------------
41
Tue Nov 08 19:39:07 UTC 2016 - jimmy@boombatower.com
42
43
- Update to version 0.16.5:
44
obs-studio.spec
Changed
8
1
2
Name: obs-studio
3
-Version: 0.16.5
4
+Version: 0.16.6
5
Release: 0
6
Summary: A recording/broadcasting program
7
8
_service
Changed
10
1
2
<services>
3
<service name="tar_scm" mode="disabled">
4
<param name="versionformat">@PARENT_TAG@</param>
5
- <param name="revision">refs/tags/0.16.5</param>
6
+ <param name="revision">refs/tags/0.16.6</param>
7
<param name="url">git://github.com/jp9000/obs-studio.git</param>
8
<param name="scm">git</param>
9
<param name="changesgenerate">enable</param>
10
_servicedata
Changed
9
1
2
<servicedata>
3
<service name="tar_scm">
4
<param name="url">git://github.com/jp9000/obs-studio.git</param>
5
- <param name="changesrevision">9adad2ebc2a254fe76ed8b446a32988270a3a55e</param>
6
+ <param name="changesrevision">b7b8ad476f1f62376833a224d64aa7b747d3b58b</param>
7
</service>
8
</servicedata>
9
obs-studio-0.16.5.tar.xz/plugins/enc-amf/#Resources/HiddenParameters.md
Deleted
69
1
2
-For an unknown reason, there are hidden parameters in the Runtime that can be set.
3
-
4
-## AVC Properties
5
-### Static
6
-* FrameSize
7
-* FrameRate
8
-* ExtraData (Read-Only)
9
-* Usage
10
-* Profile<br/>Two new profiles are in the runtime, Constrained Base and Constrained High.
11
-* Profile Level
12
-* MaxOfLTRFrames
13
-* ScanType
14
-* QualityPreset
15
-
16
-### Dynamic
17
-* RateControlMethod
18
-* TargetBitrate
19
-* PeakBitrate
20
-* RateControlSkipFrameEnable
21
-* MinQP
22
-* MaxQP
23
-* QPI
24
-* QPP
25
-* QPB
26
-* VBVBufferSize
27
-* VBVBufferFullness
28
-* EnforceHRD
29
-* MaxAUSize
30
-* FillerDataEnable
31
-* BPicturesDeltaQP
32
-* ReferenceBPicturesDeltaQP
33
-* HeaderInsertionSpacing
34
-* IDRPeriod
35
-* DeBlockingFilter
36
-* IntraRefreshMBsNumberPerSlot
37
-* SlicesPerFrame
38
-* BPicturesPattern
39
-* BReferenceEnable
40
-* HalfPixel
41
-* QuarterPixel
42
-
43
-### Unknown / New
44
-
45
-* **QualityEnhancementMode**<br/>So far always 0.
46
-* **MaxNumRefFrames**<br/>Shouldn't this be a Capability instead? Could perhaps be used to control B-Pictures more.
47
-* **MaxMBPerSec**<br/>Unknown value.
48
-* **InstanceID**
49
-* **EnableVBAQ**<br/>Unknown meaning.
50
-* **RateControlPreanalysisEnable**<br/>Is this Two-Pass encoding?
51
-* **GOPSize**<br/>Technically ignored, but still there in code.
52
-* **AspectRatio**
53
-* **NominalRange**
54
-* **IntraRefreshNumOfStripes**<br/>New, was not here before.
55
-* **SliceMode**<br/>New, was not here before.
56
-* **MaxSliceSize**<br/>New, was not here before.
57
-* **LowLatencyInternal**
58
-* **CommonLowLatencyInternal**
59
-* **SliceControlMode**
60
-* **SliceControlSize**
61
-* **CABACEnable**<br/>Not yet publicly available, but 16.10.3 always uses it anyway.
62
-* **UniqueInstance**
63
-* **EncoderMaxInstances**
64
-* **MultiInstanceMode**
65
-* **MultiInstanceCurrentQueue**
66
-* **WaitForTask**
67
-
68
-
69
obs-studio-0.16.5.tar.xz/plugins/enc-amf/#Resources/Installer.iss
Deleted
117
1
2
-; Script generated by the Inno Setup Script Wizard.
3
-; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
4
-
5
-#define MyAppName "AMD AMF Plugin for OBS Studio"
6
-#define MyAppVersion "1.4.1.0"
7
-#define MyAppPublisher "Xaymars Technology Workshop"
8
-#define MyAppURL "http://www.xaymar.com/portfolio/plugin-amd-vce-plugin-for-obs-studio/"
9
-
10
-[Setup]
11
-; NOTE: The value of AppId uniquely identifies this application.
12
-; Do not use the same AppId value in installers for other applications.
13
-; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
14
-AppId={{FD6676CE-0580-4B34-9DB4-4879A0BEB31D}
15
-AppName={#MyAppName}
16
-AppVersion={#MyAppVersion}
17
-;AppVerName={#MyAppName} {#MyAppVersion}
18
-AppPublisher={#MyAppPublisher}
19
-AppPublisherURL={#MyAppURL}
20
-AppSupportURL={#MyAppURL}
21
-AppUpdatesURL={#MyAppURL}
22
-DefaultDirName={code:GetDirName}
23
-DefaultGroupName={#MyAppName}
24
-AllowNoIcons=yes
25
-LicenseFile=..\LICENSE
26
-OutputDir=.\Output
27
-OutputBaseFilename=OBS-AMD-AMF-Plugin-Installer
28
-Compression=lzma
29
-SolidCompression=yes
30
-VersionInfoVersion={#MyAppVersion}
31
-VersionInfoCompany={#MyAppPublisher}
32
-VersionInfoDescription={#MyAppName} Setup
33
-
34
-[Languages]
35
-Name: "english"; MessagesFile: "compiler:Default.isl"
36
-
37
-[Files]
38
-Source: "Package\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
39
-; NOTE: Don't use "Flags: ignoreversion" on any shared system files
40
-
41
-[Icons]
42
-Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}"
43
-Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
44
-
45
-[Code]
46
-function GetDirName(Value: string): string;
47
-var
48
- InstallPath: string;
49
-begin
50
- // initialize default path, which will be returned when the following registry
51
- // key queries fail due to missing keys or for some different reason
52
- Result := '{pf}\obs-studio';
53
- // query the first registry value; if this succeeds, return the obtained value
54
- if RegQueryStringValue(HKLM32, 'SOFTWARE\OBS Studio', '', InstallPath) then
55
- Result := InstallPath
56
-end;
57
-
58
-/////////////////////////////////////////////////////////////////////
59
-function GetUninstallString(): String;
60
-var
61
- sUnInstPath: String;
62
- sUnInstallString: String;
63
-begin
64
- sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\{#emit SetupSetting("AppId")}_is1');
65
- sUnInstallString := '';
66
- if not RegQueryStringValue(HKLM, sUnInstPath, 'UninstallString', sUnInstallString) then
67
- RegQueryStringValue(HKCU, sUnInstPath, 'UninstallString', sUnInstallString);
68
- Result := sUnInstallString;
69
-end;
70
-
71
-
72
-/////////////////////////////////////////////////////////////////////
73
-function IsUpgrade(): Boolean;
74
-begin
75
- Result := (GetUninstallString() <> '');
76
-end;
77
-
78
-
79
-/////////////////////////////////////////////////////////////////////
80
-function UnInstallOldVersion(): Integer;
81
-var
82
- sUnInstallString: String;
83
- iResultCode: Integer;
84
-begin
85
-// Return Values:
86
-// 1 - uninstall string is empty
87
-// 2 - error executing the UnInstallString
88
-// 3 - successfully executed the UnInstallString
89
-
90
- // default return value
91
- Result := 0;
92
-
93
- // get the uninstall string of the old app
94
- sUnInstallString := GetUninstallString();
95
- if sUnInstallString <> '' then begin
96
- sUnInstallString := RemoveQuotes(sUnInstallString);
97
- if Exec(sUnInstallString, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode) then
98
- Result := 3
99
- else
100
- Result := 2;
101
- end else
102
- Result := 1;
103
-end;
104
-
105
-/////////////////////////////////////////////////////////////////////
106
-procedure CurStepChanged(CurStep: TSetupStep);
107
-begin
108
- if (CurStep=ssInstall) then
109
- begin
110
- if (IsUpgrade()) then
111
- begin
112
- UnInstallOldVersion();
113
- end;
114
- end;
115
-end;
116
\ No newline at end of file
117
obs-studio-0.16.5.tar.xz/plugins/enc-amf/#Resources/PatchNotes.txt
Deleted
23
1
2
-# The Oversight Fix
3
-
4
-Sometimes your changes seem fine and then users happen. Have you ever had users happen? They break things in ways that you didn't think was possible before! It's insane!
5
-
6
-This update aims to fix some of the reported issues in addition to making the user interface even simpler to use.
7
-
8
-## Notes
9
-
10
-Due to the nature of changes in this update, your previous settings may end up lost or incorrect. Make sure to revalidate them before attempting to record or stream.
11
-
12
-## Changelog
13
-
14
-* Fixed: Crash with default settings being used.
15
-* Fixed: Properties should now show the correct tooltip when hovered over.
16
-* Fixed: Frame Rate should now be applied properly again.
17
-* Fixed: Compatibility issues with Windows 7 and older.
18
-* Changed: Default value for LTR Frames is now 0 for better compatibility.
19
-* Changed: Profile is now a Basic property.
20
-* Changed: Profile Level is now an Expert property to avoid user errors.
21
-* Changed: Min/Max QP is now considered an Advanced property to avoid user errors.
22
\ No newline at end of file
23
obs-studio-0.16.5.tar.xz/plugins/enc-amf/#Resources/package.bat
Deleted
9
1
2
-REM Shut up, I'm just as lazy as anyone else.
3
-pushd Package
4
-"C:\Program Files\7-Zip\7z" a -t7z -mx=9 -m0=lzma2 -aoa -mfb=64 -md=32m -ms=on "../Output/OBS-AMD-AMF-Plugin.7z" "*"
5
-"C:\Program Files\7-Zip\7z" a -tzip -mx=9 "../Output/OBS-AMD-AMF-Plugin.zip" "*"
6
-popd
7
-"C:\Program Files (x86)\Inno Setup 5\Compil32.exe" /cc "Installer.iss"
8
\ No newline at end of file
9
obs-studio-0.16.5.tar.xz/plugins/enc-amf/OBS AMF.sln
Deleted
30
1
2
-•
3
-Microsoft Visual Studio Solution File, Format Version 12.00
4
-# Visual Studio 14
5
-VisualStudioVersion = 14.0.25420.1
6
-MinimumVisualStudioVersion = 10.0.40219.1
7
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "enc-amf", "enc-amf\enc-amf.vcxproj", "{49237B5E-655D-46B5-AA1F-780B387327A1}"
8
-EndProject
9
-Global
10
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
11
- Debug|x64 = Debug|x64
12
- Debug|x86 = Debug|x86
13
- Release|x64 = Release|x64
14
- Release|x86 = Release|x86
15
- EndGlobalSection
16
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
17
- {49237B5E-655D-46B5-AA1F-780B387327A1}.Debug|x64.ActiveCfg = Debug|x64
18
- {49237B5E-655D-46B5-AA1F-780B387327A1}.Debug|x64.Build.0 = Debug|x64
19
- {49237B5E-655D-46B5-AA1F-780B387327A1}.Debug|x86.ActiveCfg = Debug|Win32
20
- {49237B5E-655D-46B5-AA1F-780B387327A1}.Debug|x86.Build.0 = Debug|Win32
21
- {49237B5E-655D-46B5-AA1F-780B387327A1}.Release|x64.ActiveCfg = Release|x64
22
- {49237B5E-655D-46B5-AA1F-780B387327A1}.Release|x64.Build.0 = Release|x64
23
- {49237B5E-655D-46B5-AA1F-780B387327A1}.Release|x86.ActiveCfg = Release|Win32
24
- {49237B5E-655D-46B5-AA1F-780B387327A1}.Release|x86.Build.0 = Release|Win32
25
- EndGlobalSection
26
- GlobalSection(SolutionProperties) = preSolution
27
- HideSolutionNode = FALSE
28
- EndGlobalSection
29
-EndGlobal
30
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf
Deleted
2
1
-(directory)
2
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Include
Deleted
2
1
-(directory)
2
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Include/amd-amf-vce-capabilities.h
Deleted
95
1
2
-/*
3
-MIT License
4
-
5
-Copyright (c) 2016 Michael Fabian Dirks
6
-
7
-Permission is hereby granted, free of charge, to any person obtaining a copy
8
-of this software and associated documentation files (the "Software"), to deal
9
-in the Software without restriction, including without limitation the rights
10
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
-copies of the Software, and to permit persons to whom the Software is
12
-furnished to do so, subject to the following conditions:
13
-
14
-The above copyright notice and this permission notice shall be included in all
15
-copies or substantial portions of the Software.
16
-
17
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
-SOFTWARE.
24
-*/
25
-
26
-#pragma once
27
-//////////////////////////////////////////////////////////////////////////
28
-// Includes
29
-//////////////////////////////////////////////////////////////////////////
30
-#include <stdint.h>
31
-#include <inttypes.h>
32
-#include <vector>
33
-
34
-// Plugin
35
-#include "plugin.h"
36
-#include "amd-amf.h"
37
-#include "amd-amf-vce.h"
38
-
39
-// AMF
40
-#include "components\ComponentCaps.h"
41
-
42
-//////////////////////////////////////////////////////////////////////////
43
-// Code
44
-//////////////////////////////////////////////////////////////////////////
45
-
46
-namespace Plugin {
47
- namespace AMD {
48
- class VCECapabilities {
49
- //////////////////////////////////////////////////////////////////////////
50
- // Singleton
51
- //////////////////////////////////////////////////////////////////////////
52
- public:
53
- static std::shared_ptr<Plugin::AMD::VCECapabilities> GetInstance();
54
- static void ReportCapabilities();
55
-
56
- //////////////////////////////////////////////////////////////////////////
57
- // Class
58
- //////////////////////////////////////////////////////////////////////////
59
- public:
60
- // Structure
61
- struct EncoderCaps {
62
- amf::AMF_ACCELERATION_TYPE acceleration_type;
63
- uint32_t maxBitrate;
64
- uint32_t maxNumOfStreams;
65
- uint32_t maxProfile;
66
- uint32_t maxProfileLevel;
67
- bool supportsBFrames;
68
- uint32_t minReferenceFrames;
69
- uint32_t maxReferenceFrames;
70
- uint32_t maxTemporalLayers;
71
- bool supportsFixedSliceMode;
72
- uint32_t maxNumOfHwInstances;
73
-
74
- struct IOCaps {
75
- int32_t minWidth, maxWidth;
76
- int32_t minHeight, maxHeight;
77
- bool isInterlacedSupported;
78
- uint32_t verticalAlignment;
79
-
80
- std::vector<std::pair<amf::AMF_SURFACE_FORMAT, bool>> formats;
81
- std::vector<std::pair<amf::AMF_MEMORY_TYPE, bool>> memoryTypes;
82
- } input, output;
83
- } m_AVCCaps, m_SVCCaps, m_HEVCCaps;
84
-
85
- VCECapabilities();
86
- ~VCECapabilities();
87
-
88
- bool RefreshCapabilities();
89
- EncoderCaps* GetEncoderCaps(VCEEncoderType);
90
- EncoderCaps::IOCaps* GetIOCaps(VCEEncoderType, bool output);
91
- };
92
- }
93
-}
94
\ No newline at end of file
95
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Include/amd-amf-vce.h
Deleted
201
1
2
-/*
3
-MIT License
4
-
5
-Copyright (c) 2016 Michael Fabian Dirks
6
-
7
-Permission is hereby granted, free of charge, to any person obtaining a copy
8
-of this software and associated documentation files (the "Software"), to deal
9
-in the Software without restriction, including without limitation the rights
10
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
-copies of the Software, and to permit persons to whom the Software is
12
-furnished to do so, subject to the following conditions:
13
-
14
-The above copyright notice and this permission notice shall be included in all
15
-copies or substantial portions of the Software.
16
-
17
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
-SOFTWARE.
24
-*/
25
-
26
-#pragma once
27
-//////////////////////////////////////////////////////////////////////////
28
-// Includes
29
-//////////////////////////////////////////////////////////////////////////
30
-#include <condition_variable>
31
-#include <algorithm>
32
-#include <mutex>
33
-#include <queue>
34
-#include <thread>
35
-#include <vector>
36
-#include <chrono>
37
-
38
-// Plugin
39
-#include "plugin.h"
40
-#include "amd-amf.h"
41
-#include "api-base.h"
42
-
43
-//////////////////////////////////////////////////////////////////////////
44
-// Code
45
-//////////////////////////////////////////////////////////////////////////
46
-
47
-namespace Plugin {
48
- namespace AMD {
49
- // Internal Properties
50
- enum VCEEncoderType {
51
- VCEEncoderType_AVC, // Advanced Video Coding
52
- VCEEncoderType_SVC, // Scalable Video Coding
53
- VCEEncoderType_HEVC, // High-Efficiency Video Coding (Discovered in amfrt64.dll)
54
- };
55
- enum VCEMemoryType {
56
- VCEMemoryType_Host, // Host-Managed Memory
57
- VCEMemoryType_DirectX9, // DirectX9
58
- VCEMemoryType_DirectX11, // DirectX11
59
- VCEMemoryType_OpenGL, // OpenGL
60
-
61
- VCEMemoryType_Auto = -1, // Auto-Detect
62
- };
63
- enum VCESurfaceFormat {
64
- // 4:2:0 Formats
65
- VCESurfaceFormat_NV12, // NV12
66
- VCESurfaceFormat_I420, // YUV 4:2:0
67
- // 4:2:2 Formats
68
- VCESurfaceFormat_YUY2,
69
- // Uncompressed
70
- VCESurfaceFormat_BGRA, // ARGB
71
- VCESurfaceFormat_RGBA, // RGBA
72
- // Other
73
- VCESurfaceFormat_GRAY,
74
- };
75
-
76
- // Static Properties
77
- enum VCEUsage {
78
- VCEUsage_Transcoding,
79
- VCEUsage_UltraLowLatency,
80
- VCEUsage_LowLatency,
81
- VCEUsage_Webcam, // For SVC
82
- };
83
- enum VCEProfile {
84
- VCEProfile_Baseline = 66,
85
- VCEProfile_Main = 77,
86
- VCEProfile_High = 100,
87
-
88
- VCEProfile_Unknown = -1,
89
- };
90
- enum VCEProfileLevel {
91
- VCEProfileLevel_Automatic = 0,
92
- VCEProfileLevel_10 = 10,
93
- VCEProfileLevel_11,
94
- VCEProfileLevel_12,
95
- VCEProfileLevel_13,
96
- VCEProfileLevel_20 = 20,
97
- VCEProfileLevel_21,
98
- VCEProfileLevel_22,
99
- VCEProfileLevel_30 = 30,
100
- VCEProfileLevel_31,
101
- VCEProfileLevel_32,
102
- VCEProfileLevel_40 = 40,
103
- VCEProfileLevel_41,
104
- VCEProfileLevel_42,
105
- VCEProfileLevel_50 = 50,
106
- VCEProfileLevel_51,
107
- VCEProfileLevel_52,
108
- VCEProfileLevel_Unknown = -1,
109
- };
110
- enum VCERateControlMethod {
111
- VCERateControlMethod_ConstantQP,
112
- VCERateControlMethod_ConstantBitrate,
113
- VCERateControlMethod_VariableBitrate_PeakConstrained,
114
- VCERateControlMethod_VariableBitrate_LatencyConstrained,
115
- };
116
- enum VCEBPicturePattern {
117
- VCEBPicturePattern_None,
118
- VCEBPicturePattern_One,
119
- VCEBPicturePattern_Two,
120
- VCEBPicturePattern_Three,
121
- };
122
- enum VCEScanType {
123
- VCEScanType_Progressive,
124
- VCEScanType_Interlaced,
125
- };
126
- enum VCEQualityPreset {
127
- VCEQualityPreset_Speed,
128
- VCEQualityPreset_Balanced,
129
- VCEQualityPreset_Quality,
130
- };
131
-
132
- class VCEEncoder {
133
- //////////////////////////////////////////////////////////////////////////
134
- #pragma region Functions
135
- //////////////////////////////////////////////////////////////////////////
136
- private:
137
- static void InputThreadMain(Plugin::AMD::VCEEncoder* p_this);
138
- static void OutputThreadMain(Plugin::AMD::VCEEncoder* p_this);
139
-
140
- #pragma endregion Functions
141
- //////////////////////////////////////////////////////////////////////////
142
-
143
- //////////////////////////////////////////////////////////////////////////
144
- #pragma region Initializer & Finalizer
145
- //////////////////////////////////////////////////////////////////////////
146
- public:
147
- VCEEncoder(VCEEncoderType p_Type,
148
- VCESurfaceFormat p_SurfaceFormat = VCESurfaceFormat_NV12,
149
- VCEMemoryType p_MemoryType = VCEMemoryType_Auto,
150
- bool p_UseOpenCL = false,
151
- std::string p_DeviceUniqueId = "");
152
- ~VCEEncoder();
153
- #pragma endregion Initializer & Finalizer
154
-
155
- //////////////////////////////////////////////////////////////////////////
156
- #pragma region Methods
157
- //////////////////////////////////////////////////////////////////////////
158
- public:
159
- void Start();
160
- void Restart();
161
- void Stop();
162
- bool SendInput(struct encoder_frame* frame);
163
- void GetOutput(struct encoder_packet* packet, bool* received_packet);
164
- bool GetExtraData(uint8_t**& data, size_t*& size);
165
- void GetVideoInfo(struct video_scale_info*& vsi);
166
-
167
- // Threading
168
- private:
169
- void InputThreadLogic();
170
- void OutputThreadLogic();
171
-
172
- // Utility
173
- inline amf::AMFSurfacePtr CreateSurfaceFromFrame(struct encoder_frame*& frame);
174
-
175
- public:
176
- void LogProperties();
177
-
178
- /************************************************************************/
179
- /* Static Properties */
180
- /************************************************************************/
181
-
182
- /* Usage Type
183
- * Sets up the entire encoder to a specific set of properties.
184
- * Must be called first if you want to override properties. */
185
- void SetUsage(VCEUsage usage);
186
- VCEUsage GetUsage();
187
-
188
- /* H.264 Profile */
189
- void SetProfile(VCEProfile profile);
190
- VCEProfile GetProfile();
191
-
192
- /* H.264 Profile Level */
193
- void SetProfileLevel(VCEProfileLevel level);
194
- VCEProfileLevel GetProfileLevel();
195
-
196
- /* The number of long-term references controlled by the user.
197
- *
198
- * Remarks:
199
- * - When == 0, the encoder may or may not use LTRs during encoding.
200
- * - When >0, the user has control over all LTR.
201
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Include/api-base.h
Deleted
63
1
2
-/*
3
-MIT License
4
-
5
-Copyright (c) 2016 Michael Fabian Dirks
6
-
7
-Permission is hereby granted, free of charge, to any person obtaining a copy
8
-of this software and associated documentation files (the "Software"), to deal
9
-in the Software without restriction, including without limitation the rights
10
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
-copies of the Software, and to permit persons to whom the Software is
12
-furnished to do so, subject to the following conditions:
13
-
14
-The above copyright notice and this permission notice shall be included in all
15
-copies or substantial portions of the Software.
16
-
17
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
-SOFTWARE.
24
-*/
25
-
26
-#pragma once
27
-//////////////////////////////////////////////////////////////////////////
28
-// Includes
29
-//////////////////////////////////////////////////////////////////////////
30
-#include "plugin.h"
31
-#include <vector>
32
-
33
-//////////////////////////////////////////////////////////////////////////
34
-// Code
35
-//////////////////////////////////////////////////////////////////////////
36
-namespace Plugin {
37
- namespace API {
38
- struct Device {
39
- std::string Name;
40
- std::string UniqueId;
41
-
42
- Device();
43
- Device(std::string Name, std::string UniqueId);
44
- ~Device();
45
- };
46
-
47
- class BaseAPI {
48
- public:
49
- static std::vector<Plugin::API::Device> EnumerateDevices();
50
-
51
- BaseAPI(Device device);
52
- virtual ~BaseAPI();
53
-
54
- virtual void* GetContext();
55
- Plugin::API::Device GetDevice();
56
-
57
- private:
58
- Plugin::API::Device myDevice;
59
- };
60
- }
61
-}
62
\ No newline at end of file
63
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Include/api-d3d11.h
Deleted
57
1
2
-/*
3
-MIT License
4
-
5
-Copyright (c) 2016 Michael Fabian Dirks
6
-
7
-Permission is hereby granted, free of charge, to any person obtaining a copy
8
-of this software and associated documentation files (the "Software"), to deal
9
-in the Software without restriction, including without limitation the rights
10
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
-copies of the Software, and to permit persons to whom the Software is
12
-furnished to do so, subject to the following conditions:
13
-
14
-The above copyright notice and this permission notice shall be included in all
15
-copies or substantial portions of the Software.
16
-
17
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
-SOFTWARE.
24
-*/
25
-
26
-#pragma once
27
-#ifdef _WIN32
28
-//////////////////////////////////////////////////////////////////////////
29
-// Includes
30
-//////////////////////////////////////////////////////////////////////////
31
-#include "api-base.h"
32
-
33
-#include <d3d11.h>
34
-
35
-//////////////////////////////////////////////////////////////////////////
36
-// Code
37
-//////////////////////////////////////////////////////////////////////////
38
-namespace Plugin {
39
- namespace API {
40
- class Direct3D11 : public Plugin::API::BaseAPI {
41
- public:
42
- static std::vector<Plugin::API::Device> EnumerateDevices();
43
- static Plugin::API::Device GetDeviceForUniqueId(std::string uniqueId);
44
-
45
- Direct3D11(Device device);
46
- ~Direct3D11();
47
-
48
- void* GetContext();
49
-
50
- private:
51
- ID3D11Device* pDevice;
52
- ID3D11DeviceContext* pDeviceContext;
53
- };
54
- }
55
-}
56
-#endif
57
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Include/api-d3d9.h
Deleted
59
1
2
-/*
3
-MIT License
4
-
5
-Copyright (c) 2016 Michael Fabian Dirks
6
-
7
-Permission is hereby granted, free of charge, to any person obtaining a copy
8
-of this software and associated documentation files (the "Software"), to deal
9
-in the Software without restriction, including without limitation the rights
10
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
-copies of the Software, and to permit persons to whom the Software is
12
-furnished to do so, subject to the following conditions:
13
-
14
-The above copyright notice and this permission notice shall be included in all
15
-copies or substantial portions of the Software.
16
-
17
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
-SOFTWARE.
24
-*/
25
-
26
-#pragma once
27
-#ifdef _WIN32
28
-//////////////////////////////////////////////////////////////////////////
29
-// Includes
30
-//////////////////////////////////////////////////////////////////////////
31
-#include "api-base.h"
32
-
33
-#define D3D_DEBUG_INFO
34
-#include <d3d9.h>
35
-#pragma comment(lib, "d3d9.lib")
36
-
37
-//////////////////////////////////////////////////////////////////////////
38
-// Code
39
-//////////////////////////////////////////////////////////////////////////
40
-namespace Plugin {
41
- namespace API {
42
- class Direct3D9 : public Plugin::API::BaseAPI {
43
- public:
44
- static std::vector<Plugin::API::Device> EnumerateDevices();
45
- static Plugin::API::Device GetDeviceForUniqueId(std::string uniqueId);
46
-
47
- Direct3D9(Device device);
48
- ~Direct3D9();
49
-
50
- void* GetContext();
51
-
52
- private:
53
- IDirect3D9* pDirect3D;
54
- IDirect3DDevice9* pDirect3DDevice;
55
- };
56
- }
57
-}
58
-#endif
59
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Include/enc-h264.h
Deleted
84
1
2
-/*
3
-MIT License
4
-
5
-Copyright (c) 2016 Michael Fabian Dirks
6
-
7
-Permission is hereby granted, free of charge, to any person obtaining a copy
8
-of this software and associated documentation files (the "Software"), to deal
9
-in the Software without restriction, including without limitation the rights
10
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
-copies of the Software, and to permit persons to whom the Software is
12
-furnished to do so, subject to the following conditions:
13
-
14
-The above copyright notice and this permission notice shall be included in all
15
-copies or substantial portions of the Software.
16
-
17
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
-SOFTWARE.
24
-*/
25
-
26
-#pragma once
27
-//////////////////////////////////////////////////////////////////////////
28
-// Includes
29
-//////////////////////////////////////////////////////////////////////////
30
-// Plugin
31
-#include "plugin.h"
32
-#include "amd-amf-vce.h"
33
-#include "amd-amf-vce-capabilities.h"
34
-
35
-//////////////////////////////////////////////////////////////////////////
36
-// Code
37
-//////////////////////////////////////////////////////////////////////////
38
-namespace Plugin {
39
- namespace Interface {
40
- class H264Interface {
41
- public:
42
- static void encoder_register();
43
- static const char* get_name(void* type_data);
44
- static const char* get_name_simple(void* type_data);
45
- static void get_defaults(obs_data_t *settings);
46
- static obs_properties_t* get_properties(void* data);
47
-
48
- static bool preset_modified(obs_properties_t *props, obs_property_t *, obs_data_t *data);
49
- static bool maximum_ltr_frames_modified(obs_properties_t *props, obs_property_t *, obs_data_t *data);
50
- static bool rate_control_method_modified(obs_properties_t *props, obs_property_t *, obs_data_t *data);
51
- static bool bpictures_modified(obs_properties_t *props, obs_property_t *, obs_data_t *data);
52
- static bool view_modified(obs_properties_t *props, obs_property_t *, obs_data_t *data);
53
- static bool unlock_properties_modified(obs_properties_t *props, obs_property_t *, obs_data_t *data);
54
-
55
- static void* create(obs_data_t* settings, obs_encoder_t* encoder);
56
- static void destroy(void* data);
57
- static bool update(void *data, obs_data_t *settings);
58
- static bool encode(void *data, struct encoder_frame * frame, struct encoder_packet * packet, bool * received_packet);
59
- static void get_video_info(void *data, struct video_scale_info *info);
60
- static bool get_extra_data(void *data, uint8_t** extra_data, size_t* size);
61
-
62
- //////////////////////////////////////////////////////////////////////////
63
- // Module Code
64
- //////////////////////////////////////////////////////////////////////////
65
- public:
66
-
67
- H264Interface(obs_data_t* settings, obs_encoder_t* encoder);
68
- ~H264Interface();
69
-
70
- bool update(obs_data_t* settings);
71
- bool encode(struct encoder_frame * frame, struct encoder_packet * packet, bool * received_packet);
72
- void get_video_info(struct video_scale_info* info);
73
- bool get_extra_data(uint8_t** extra_data, size_t* size);
74
-
75
- //////////////////////////////////////////////////////////////////////////
76
- // Storage
77
- //////////////////////////////////////////////////////////////////////////
78
- private:
79
- Plugin::AMD::VCEEncoder* m_VideoEncoder;
80
- };
81
- }
82
-}
83
\ No newline at end of file
84
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Include/plugin.h
Deleted
201
1
2
-/*
3
-MIT License
4
-
5
-Copyright (c) 2016 Michael Fabian Dirks
6
-
7
-Permission is hereby granted, free of charge, to any person obtaining a copy
8
-of this software and associated documentation files (the "Software"), to deal
9
-in the Software without restriction, including without limitation the rights
10
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
-copies of the Software, and to permit persons to whom the Software is
12
-furnished to do so, subject to the following conditions:
13
-
14
-The above copyright notice and this permission notice shall be included in all
15
-copies or substantial portions of the Software.
16
-
17
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
-SOFTWARE.
24
-*/
25
-
26
-#pragma once
27
-//////////////////////////////////////////////////////////////////////////
28
-// Includes
29
-//////////////////////////////////////////////////////////////////////////
30
-#include <stdint.h>
31
-#include <inttypes.h>
32
-#include <exception>
33
-#include <stdexcept>
34
-#include <thread>
35
-#include <memory>
36
-
37
-// Open Broadcaster Software
38
-#pragma warning( disable: 4201 )
39
-#include "libobs/obs-module.h"
40
-#include "libobs/obs-encoder.h"
41
-
42
-//////////////////////////////////////////////////////////////////////////
43
-// Defines
44
-//////////////////////////////////////////////////////////////////////////
45
-
46
-#define vstr(s) dstr(s)
47
-#define dstr(s) #s
48
-
49
-#define PLUGIN_VERSION_MAJOR 1
50
-#define PLUGIN_VERSION_MINOR 4
51
-#define PLUGIN_VERSION_PATCH 1
52
-#define PLUGIN_VERSION_BUILD 0
53
-#define PLUGIN_VERSION_FULL (((uint64_t)PLUGIN_VERSION_MAJOR << 48ull) | ((uint64_t)PLUGIN_VERSION_MINOR << 32ull) | ((uint64_t)PLUGIN_VERSION_PATCH) | ((uint64_t)PLUGIN_VERSION_BUILD))
54
-#define PLUGIN_VERSION_TEXT vstr(PLUGIN_VERSION_MAJOR) "." vstr(PLUGIN_VERSION_MINOR) "." vstr(PLUGIN_VERSION_PATCH) "." vstr(PLUGIN_VERSION_BUILD) "-" vstr(AMF_VERSION_MAJOR) "." vstr(AMF_VERSION_MINOR) "." vstr(AMF_VERSION_RELEASE) "." vstr(AMF_VERSION_BUILD_NUM)
55
-
56
-#define AMF_LOG(level, format, ...) blog(level, "[AMF Encoder] " format, ##__VA_ARGS__);
57
-#define AMF_LOG_ERROR(format, ...) AMF_LOG(LOG_ERROR, format, ##__VA_ARGS__)
58
-#define AMF_LOG_WARNING(format, ...) AMF_LOG(LOG_WARNING, format, ##__VA_ARGS__)
59
-#define AMF_LOG_INFO(format, ...) AMF_LOG(LOG_INFO, format, ##__VA_ARGS__)
60
-#define AMF_LOG_CONFIG(format, ...) AMF_LOG(350, format, ##__VA_ARGS__)
61
-#define AMF_LOG_DEBUG(format, ...) AMF_LOG(LOG_DEBUG, format, ##__VA_ARGS__)
62
-
63
-#define TEXT_AMF(x) ("AMF." ## x)
64
-#define TEXT_AMF_T(x) obs_module_text(TEXT_AMF(x))
65
-#define TEXT_AMF_H264(x) (TEXT_AMF("H264." ## x))
66
-#define TEXT_AMF_H264_T(x) obs_module_text(TEXT_AMF_H264(x))
67
-#define TEXT_AMF_H264ADVANCED(x) (TEXT_AMF("H264Advanced." ## x))
68
-#define TEXT_AMF_H264ADVANCED_T(x) obs_module_text(TEXT_AMF_H264ADVANCED(x))
69
-#define TEXT_AMF_H264SIMPLE(x) (TEXT_AMF("H264Simple." ## x))
70
-#define TEXT_AMF_H264SIMPLE_T(x) obs_module_text(TEXT_AMF_H264SIMPLE(x))
71
-#define TEXT_AMF_UTIL(x) (TEXT_AMF("Util." ## x))
72
-#define TEXT_AMF_UTIL_T(x) obs_module_text(TEXT_AMF_UTIL(x))
73
-
74
-#define ThrowExceptionWithAMFError(format, res, ...) {\
75
- std::vector<char> _throwexceptionwithamferror_buf(8192);\
76
- sprintf_s(_throwexceptionwithamferror_buf.data(), _throwexceptionwithamferror_buf.size(), format, ##__VA_ARGS__, Plugin::AMD::AMF::GetInstance()->GetTrace()->GetResultText(res), res);\
77
- AMF_LOG_ERROR("%s", _throwexceptionwithamferror_buf.data()); \
78
- throw std::exception(_throwexceptionwithamferror_buf.data()); \
79
-}
80
-
81
-//////////////////////////////////////////////////////////////////////////
82
-// Defines - Translation Strings
83
-//////////////////////////////////////////////////////////////////////////
84
-
85
-// Presets
86
-#define AMF_H264_PRESET TEXT_AMF_H264("Preset")
87
-#define AMF_H264_PRESET_RECORDING TEXT_AMF_H264("Preset.Recording")
88
-#define AMF_H264_PRESET_HIGHQUALITY TEXT_AMF_H264("Preset.HighQuality")
89
-#define AMF_H264_PRESET_INDISTINGUISHABLE TEXT_AMF_H264("Preset.Indistinguishable")
90
-#define AMF_H264_PRESET_LOSSLESS TEXT_AMF_H264("Preset.Lossless")
91
-#define AMF_H264_PRESET_TWITCH TEXT_AMF_H264("Preset.Twitch")
92
-#define AMF_H264_PRESET_YOUTUBE TEXT_AMF_H264("Preset.YouTube")
93
-
94
-// Static Properties
95
-#define AMF_H264_USAGE TEXT_AMF_H264("Usage")
96
-#define AMF_H264_USAGE_DESCRIPTION TEXT_AMF_H264("Usage.Description")
97
-#define AMF_H264_USAGE_TRANSCODING TEXT_AMF_H264("Usage.Transcoding")
98
-#define AMF_H264_USAGE_ULTRALOWLATENCY TEXT_AMF_H264("Usage.UltraLowLatency")
99
-#define AMF_H264_USAGE_LOWLATENCY TEXT_AMF_H264("Usage.LowLatency")
100
-#define AMF_H264_USAGE_WEBCAM TEXT_AMF_H264("Usage.Webcam")
101
-#define AMF_H264_PROFILE TEXT_AMF_H264("Profile")
102
-#define AMF_H264_PROFILE_DESCRIPTION TEXT_AMF_H264("Profile.Description")
103
-#define AMF_H264_PROFILELEVEL TEXT_AMF_H264("ProfileLevel")
104
-#define AMF_H264_PROFILELEVEL_DESCRIPTION TEXT_AMF_H264("ProfileLevel.Description")
105
-#define AMF_H264_MAXIMUMLTRFRAMES TEXT_AMF_H264("MaximumLTRFrames")
106
-#define AMF_H264_MAXIMUMLTRFRAMES_DESCRIPTION TEXT_AMF_H264("MaximumLTRFrames.Description")
107
-
108
-// Rate Control Properties
109
-#define AMF_H264_RATECONTROLMETHOD TEXT_AMF_H264("RateControlMethod")
110
-#define AMF_H264_RATECONTROLMETHOD_DESCRIPTION TEXT_AMF_H264("RateControlMethod.Description")
111
-#define AMF_H264_RATECONTROLMETHOD_CQP TEXT_AMF_H264("RateControlMethod.CQP")
112
-#define AMF_H264_RATECONTROLMETHOD_CBR TEXT_AMF_H264("RateControlMethod.CBR")
113
-#define AMF_H264_RATECONTROLMETHOD_VBR TEXT_AMF_H264("RateControlMethod.VBR.Peak")
114
-#define AMF_H264_RATECONTROLMETHOD_VBR_LAT TEXT_AMF_H264("RateControlMethod.VBR.Latency")
115
-#define AMF_H264_BITRATE_TARGET TEXT_AMF_H264("Bitrate.Target")
116
-#define AMF_H264_BITRATE_TARGET_DESCRIPTION TEXT_AMF_H264("Bitrate.Target.Description")
117
-#define AMF_H264_BITRATE_PEAK TEXT_AMF_H264("Bitrate.Peak")
118
-#define AMF_H264_BITRATE_PEAK_DESCRIPTION TEXT_AMF_H264("Bitrate.Peak.Description")
119
-#define AMF_H264_QP_MINIMUM TEXT_AMF_H264("QP.Minimum")
120
-#define AMF_H264_QP_MINIMUM_DESCRIPTION TEXT_AMF_H264("QP.Minimum.Description")
121
-#define AMF_H264_QP_MAXIMUM TEXT_AMF_H264("QP.Maximum")
122
-#define AMF_H264_QP_MAXIMUM_DESCRIPTION TEXT_AMF_H264("QP.Maximum.Description")
123
-#define AMF_H264_QP_IFRAME TEXT_AMF_H264("QP.IFrame")
124
-#define AMF_H264_QP_IFRAME_DESCRIPTION TEXT_AMF_H264("QP.IFrame.Description")
125
-#define AMF_H264_QP_PFRAME TEXT_AMF_H264("QP.PFrame")
126
-#define AMF_H264_QP_PFRAME_DESCRIPTION TEXT_AMF_H264("QP.PFrame.Description")
127
-#define AMF_H264_QP_BFRAME TEXT_AMF_H264("QP.BFrame")
128
-#define AMF_H264_QP_BFRAME_DESCRIPTION TEXT_AMF_H264("QP.BFrame.Description")
129
-#define AMF_H264_QP_BPICTURE_DELTA TEXT_AMF_H264("QP.BPictureDelta")
130
-#define AMF_H264_QP_BPICTURE_DELTA_DESCRIPTION TEXT_AMF_H264("QP.BPictureDelta.Description")
131
-#define AMF_H264_QP_REFERENCE_BPICTURE_DELTA TEXT_AMF_H264("QP.ReferenceBPictureDelta")
132
-#define AMF_H264_QP_REFERENCE_BPICTURE_DELTA_DESCRIPTION TEXT_AMF_H264("QP.ReferenceBPictureDelta.Description")
133
-#define AMF_H264_VBVBUFFER TEXT_AMF_H264("VBVBuffer")
134
-#define AMF_H264_VBVBUFFER_DESCRIPTION TEXT_AMF_H264("VBVBuffer.Description")
135
-#define AMF_H264_VBVBUFFER_STRICTNESS TEXT_AMF_H264("VBVBuffer.Strictness")
136
-#define AMF_H264_VBVBUFFER_STRICTNESS_DESCRIPTION TEXT_AMF_H264("VBVBuffer.Strictness.Description")
137
-#define AMF_H264_VBVBUFFER_SIZE TEXT_AMF_H264("VBVBuffer.Size")
138
-#define AMF_H264_VBVBUFFER_SIZE_DESCRIPTION TEXT_AMF_H264("VBVBuffer.Size.Description")
139
-#define AMF_H264_VBVBUFFER_FULLNESS TEXT_AMF_H264("VBVBuffer.Fullness")
140
-#define AMF_H264_VBVBUFFER_FULLNESS_DESCRIPTION TEXT_AMF_H264("VBVBuffer.Fullness.Description")
141
-#define AMF_H264_FILLERDATA TEXT_AMF_H264("FillerData")
142
-#define AMF_H264_FILLERDATA_DESCRIPTION TEXT_AMF_H264("FillerData.Description")
143
-#define AMF_H264_FRAMESKIPPING TEXT_AMF_H264("FrameSkipping")
144
-#define AMF_H264_FRAMESKIPPING_DESCRIPTION TEXT_AMF_H264("FrameSkipping.Description")
145
-#define AMF_H264_ENFORCEHRDCOMPATIBILITY TEXT_AMF_H264("EnforceHRDCompatibility")
146
-#define AMF_H264_ENFORCEHRDCOMPATIBILITY_DESCRIPTION TEXT_AMF_H264("EnforceHRDCompatibility.Description")
147
-#define AMF_H264_MAXIMUMACCESSUNITSIZE TEXT_AMF_H264("MaximumAccessUnitSize")
148
-#define AMF_H264_MAXIMUMACCESSUNITSIZE_DESCRIPTION TEXT_AMF_H264("MaximumAccessUnitSize.Description")
149
-
150
-// Picture Control Properties
151
-#define AMF_H264_KEYFRAME_INTERVAL TEXT_AMF_H264("KeyframeInterval")
152
-#define AMF_H264_KEYFRAME_INTERVAL_DESCRIPTION TEXT_AMF_H264("KeyframeInterval.Description")
153
-#define AMF_H264_IDR_PERIOD TEXT_AMF_H264("IDRPeriod")
154
-#define AMF_H264_IDR_PERIOD_DESCRIPTION TEXT_AMF_H264("IDRPeriod.Description")
155
-#define AMF_H264_HEADER_INSERTION_SPACING TEXT_AMF_H264("HeaderInsertionSpacing")
156
-#define AMF_H264_HEADER_INSERTION_SPACING_DESCRIPTION TEXT_AMF_H264("HeaderInsertionSpacing.Description")
157
-#define AMF_H264_BPICTURE_PATTERN TEXT_AMF_H264("BPicture.Pattern")
158
-#define AMF_H264_BPICTURE_PATTERN_DESCRIPTION TEXT_AMF_H264("BPicture.Pattern.Description")
159
-#define AMF_H264_BPICTURE_REFERENCE TEXT_AMF_H264("BPicture.Reference")
160
-#define AMF_H264_BPICTURE_REFERENCE_DESCRIPTION TEXT_AMF_H264("BPicture.Reference.Description")
161
-#define AMF_H264_DEBLOCKINGFILTER TEXT_AMF_H264("DeblockingFilter")
162
-#define AMF_H264_DEBLOCKINGFILTER_DESCRIPTION TEXT_AMF_H264("DeblockingFilter.Description")
163
-#define AMF_H264_SLICESPERFRAME TEXT_AMF_H264("SlicesPerFrame")
164
-#define AMF_H264_SLICESPERFRAME_DESCRIPTION TEXT_AMF_H264("SlicesPerFrame.Description")
165
-#define AMF_H264_INTRAREFRESHNUMMBSPERSLOT TEXT_AMF_H264("IntraRefreshNumMBsPerSlot")
166
-#define AMF_H264_INTRAREFRESHNUMMBSPERSLOT_DESCRIPTION TEXT_AMF_H264("IntraRefreshNumMBsPerSlot.Description")
167
-
168
-// Miscellaneous Properties
169
-#define AMF_H264_QUALITY_PRESET TEXT_AMF_H264("QualityPreset")
170
-#define AMF_H264_QUALITY_PRESET_DESCRIPTION TEXT_AMF_H264("QualityPreset.Description")
171
-#define AMF_H264_QUALITY_PRESET_SPEED TEXT_AMF_H264("QualityPreset.Speed")
172
-#define AMF_H264_QUALITY_PRESET_BALANCED TEXT_AMF_H264("QualityPreset.Balanced")
173
-#define AMF_H264_QUALITY_PRESET_QUALITY TEXT_AMF_H264("QualityPreset.Quality")
174
-#define AMF_H264_SCANTYPE TEXT_AMF_H264("ScanType")
175
-#define AMF_H264_SCANTYPE_DESCRIPTION TEXT_AMF_H264("ScanType.Description")
176
-#define AMF_H264_SCANTYPE_PROGRESSIVE TEXT_AMF_H264("ScanType.Progressive")
177
-#define AMF_H264_SCANTYPE_INTERLACED TEXT_AMF_H264("ScanType.Interlaced")
178
-#define AMF_H264_MOTIONESTIMATION TEXT_AMF_H264("MotionEstimation")
179
-#define AMF_H264_MOTIONESTIMATION_DESCRIPTION TEXT_AMF_H264("MotionEstimation.Description")
180
-#define AMF_H264_MOTIONESTIMATION_NONE TEXT_AMF_H264("MotionEstimation.None")
181
-#define AMF_H264_MOTIONESTIMATION_HALF TEXT_AMF_H264("MotionEstimation.Half")
182
-#define AMF_H264_MOTIONESTIMATION_QUARTER TEXT_AMF_H264("MotionEstimation.Quarter")
183
-#define AMF_H264_MOTIONESTIMATION_BOTH TEXT_AMF_H264("MotionEstimation.Both")
184
-#define AMF_H264_CABAC TEXT_AMF_H264("CABAC")
185
-#define AMF_H264_CABAC_DESCRIPTION TEXT_AMF_H264("CABAC.Description")
186
-
187
-// System Properties
188
-#define AMF_H264_MEMORYTYPE TEXT_AMF_H264("MemoryType")
189
-#define AMF_H264_MEMORYTYPE_DESCRIPTION TEXT_AMF_H264("MemoryType.Description")
190
-#define AMF_H264_DEVICE TEXT_AMF_H264("Device")
191
-#define AMF_H264_DEVICE_DESCRIPTION TEXT_AMF_H264("Device.Description")
192
-#define AMF_H264_USE_OPENCL TEXT_AMF_H264("UseOpenCL")
193
-#define AMF_H264_USE_OPENCL_DESCRIPTION TEXT_AMF_H264("UseOpenCL.Description")
194
-#define AMF_H264_SURFACEFORMAT TEXT_AMF_H264("SurfaceFormat")
195
-#define AMF_H264_SURFACEFORMAT_DESCRIPTION TEXT_AMF_H264("SurfaceFormat.Description")
196
-#define AMF_H264_VIEW TEXT_AMF_H264("View")
197
-#define AMF_H264_VIEW_DESCRIPTION TEXT_AMF_H264("View.Description")
198
-#define AMF_H264_VIEW_BASIC TEXT_AMF_H264("View.Basic")
199
-#define AMF_H264_VIEW_ADVANCED TEXT_AMF_H264("View.Advanced")
200
-#define AMF_H264_VIEW_EXPERT TEXT_AMF_H264("View.Expert")
201
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources
Deleted
2
1
-(directory)
2
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale
Deleted
2
1
-(directory)
2
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/ca-ES.ini
Deleted
42
1
2
-AMF.H264.Usage.Transcoding="Transcodificació"
3
-AMF.H264.Usage.UltraLowLatency="Latència ultra baixa"
4
-AMF.H264.Usage.LowLatency="Latència baixa"
5
-AMF.H264.Profile="Perfil"
6
-AMF.H264.ProfileLevel="Nivell de perfil"
7
-AMF.H264.MaximumLTRFrames="Fotogrames màxims LTR"
8
-AMF.H264.RateControlMethod="Mètode de control del flux"
9
-AMF.H264.RateControlMethod.CQP="QP constant (CQP)"
10
-AMF.H264.RateControlMethod.CBR="Flux constant (CBR)"
11
-AMF.H264.RateControlMethod.VBR.Peak="Flux variable (pic restringit)(VBR)"
12
-AMF.H264.RateControlMethod.VBR.Latency="Flux variable (latència restringida) (VBR_LAT)"
13
-AMF.H264.Bitrate.Target="Tassa de bits desitjada"
14
-AMF.H264.Bitrate.Peak="Pic de tassa de bits"
15
-AMF.H264.QP.Minimum="QP mínim"
16
-AMF.H264.QP.Maximum="QP màxim"
17
-AMF.H264.QP.IFrame="I-Frame QP"
18
-AMF.H264.QP.PFrame="P-Frame QP"
19
-AMF.H264.QP.BFrame="B-Frame QP"
20
-AMF.H264.QP.BPictureDelta="B-Picture Delta QP"
21
-AMF.H264.QP.ReferenceBPictureDelta="QP Delta en B-Pictures de referencia"
22
-AMF.H264.FillerData="Dades a omplir"
23
-AMF.H264.FrameSkipping="Omissió de fotogrames"
24
-AMF.H264.EnforceHRDCompatibility="Força la compatibilitat amb HRD"
25
-AMF.H264.BPicture.Pattern="Patró B-Picture"
26
-AMF.H264.BPicture.Reference="Referència B-Picture"
27
-AMF.H264.DeblockingFilter="Filtre d'eliminació de blocs"
28
-AMF.H264.ScanType="Tipus d'exploració"
29
-AMF.H264.ScanType.Progressive="Progressiu"
30
-AMF.H264.ScanType.Interlaced="Entrellaçat"
31
-AMF.H264.QualityPreset="Qualitat del perfil"
32
-AMF.H264.QualityPreset.Speed="Velocitat"
33
-AMF.H264.QualityPreset.Balanced="Equilibrat"
34
-AMF.H264.QualityPreset.Quality="Qualitat"
35
-AMF.H264.CABAC="Codificació adaptativa segons el context binari aritmètic (CABAC)"
36
-AMF.H264.MemoryType="Tipus de memòria"
37
-AMF.H264.SurfaceFormat="Format de la superfície"
38
-AMF.Util.Default="Per defecte"
39
-AMF.Util.Automatic="Automàtic"
40
-AMF.Util.Toggle.Disabled="Desactivat"
41
-AMF.Util.Toggle.Enabled="Activat"
42
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/cs-CZ.ini
Deleted
62
1
2
-AMF.H264.Preset="Profil"
3
-AMF.H264.Preset.Recording="Nahrávání"
4
-AMF.H264.Preset.HighQuality="Vysoká kvalita"
5
-AMF.H264.Preset.Indistinguishable="Nerozeznatelné"
6
-AMF.H264.Preset.Lossless="Lossless"
7
-AMF.H264.Preset.Twitch="Twitch"
8
-AMF.H264.Preset.YouTube="YouTube"
9
-AMF.H264.Usage="Využití"
10
-AMF.H264.Usage.Transcoding="Kódování"
11
-AMF.H264.Usage.UltraLowLatency="Ultra nízká odezva"
12
-AMF.H264.Usage.LowLatency="Nízká odezva"
13
-AMF.H264.Profile="Profil"
14
-AMF.H264.ProfileLevel="Úroveň profilu"
15
-AMF.H264.RateControlMethod="Metoda řízení"
16
-AMF.H264.RateControlMethod.CQP="Konstantní QP (CQP)"
17
-AMF.H264.RateControlMethod.CBR="Konstantní bitrate (CBR)"
18
-AMF.H264.RateControlMethod.VBR.Peak="Proměnný bitrate (vázán špičkou) (VBR)"
19
-AMF.H264.RateControlMethod.VBR.Latency="Proměnný bitrate (vázán odezvou) (VBR_LAT)"
20
-AMF.H264.Bitrate.Target="Cílový bitrate"
21
-AMF.H264.Bitrate.Peak="Špičkový bitrate"
22
-AMF.H264.QP.Minimum="Minimální QP"
23
-AMF.H264.QP.Maximum="Maximální QP"
24
-AMF.H264.FillerData="Filtrovat data"
25
-AMF.H264.FrameSkipping="Přeskakování snímků"
26
-AMF.H264.EnforceHRDCompatibility="Vynutit kompatibilitu s HRD"
27
-AMF.H264.KeyframeInterval="Interval klíčový snímků"
28
-AMF.H264.KeyframeInterval.Description="Kolik vteřin by mělo být mezi ne-zahazovatelnými snímky.\nTaké ovládá velikost sekvence(GOP)."
29
-AMF.H264.IDRPeriod.Description="Kolik snímků by mělo být mezi ne-zahazovatelnými snímky.\nTaké ovládá velikost sekvence(GOP)."
30
-AMF.H264.ScanType="Typ skenování"
31
-AMF.H264.ScanType.Description="Určuje použitou metodu skenování, vždy ponechejte na 'Progresivní'."
32
-AMF.H264.ScanType.Progressive="Progresivní"
33
-AMF.H264.ScanType.Interlaced="Prokládané"
34
-AMF.H264.QualityPreset="Profil kvality"
35
-AMF.H264.QualityPreset.Speed="Rychlost"
36
-AMF.H264.QualityPreset.Balanced="Vyváženo"
37
-AMF.H264.QualityPreset.Quality="Kvalita"
38
-AMF.H264.MotionEstimation="Odhad pohybu"
39
-AMF.H264.MotionEstimation.Description="Odhad pohybu umožňuje enkodéru snížit požadovaný bitrate předpovídáním, kam se určitý pixel posunul."
40
-AMF.H264.MotionEstimation.None="Žádný"
41
-AMF.H264.MotionEstimation.Half="Polovina pixelu"
42
-AMF.H264.MotionEstimation.Quarter="Čtvrtina pixelu"
43
-AMF.H264.MotionEstimation.Both="Polovina & čtvrtina pixelu"
44
-AMF.H264.CABAC="CABAC"
45
-AMF.H264.MemoryType="Typ paměti"
46
-AMF.H264.SurfaceFormat="Formát povrchu"
47
-AMF.H264.View="Režim zobrazení"
48
-AMF.H264.View.Description="Které možnosti mají být zobrazeny. Nezískáte žádnou pomoc při použití módu 'Expert' či 'Master'."
49
-AMF.H264.View.Basic="Základní"
50
-AMF.H264.View.Advanced="Pokročilý"
51
-AMF.H264.View.Expert="Expert"
52
-AMF.H264.View.Master="Master"
53
-AMF.H264.UnlockProperties="Odblokovat vlastnosti"
54
-AMF.H264.UnlockProperties.Description="Odblokuje určité vlastnosti do jejich plného rozsahu místo omezování do určitého."
55
-AMF.H264.Debug="Ladění"
56
-AMF.H264.Debug.Description="Zapne rozšířené protokolování, mělo by být zapnuto, pokud pořebujete pomoci s tmto enkodérem."
57
-AMF.Util.Default="Výchozí"
58
-AMF.Util.Automatic="Automatické"
59
-AMF.Util.Manual="Manuální"
60
-AMF.Util.Toggle.Disabled="Zakázáno"
61
-AMF.Util.Toggle.Enabled="Povoleno"
62
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/da-DK.ini
Deleted
36
1
2
-AMF.H264.Usage.Transcoding="Transcoding"
3
-AMF.H264.Usage.UltraLowLatency="Ekstrem Lav Ventetid"
4
-AMF.H264.Usage.LowLatency="Lav Ventetid"
5
-AMF.H264.Profile="Profil"
6
-AMF.H264.ProfileLevel="Profil Niveau"
7
-AMF.H264.RateControlMethod="Rate Control Method"
8
-AMF.H264.RateControlMethod.CQP="Constant QP (CQP)"
9
-AMF.H264.RateControlMethod.CBR="Constant Bitrate (CBR)"
10
-AMF.H264.RateControlMethod.VBR.Peak="Variable Bitrate (Peak Constrained) (VBR)"
11
-AMF.H264.RateControlMethod.VBR.Latency="Variable Bitrate (Latency Constrained) (VBR_LAT)"
12
-AMF.H264.Bitrate.Target="Mål Bitrate"
13
-AMF.H264.Bitrate.Peak="Top Bitrate"
14
-AMF.H264.QP.Minimum="Minimum QP"
15
-AMF.H264.QP.Maximum="Maksimum QP"
16
-AMF.H264.QP.IFrame="I-Frame QP"
17
-AMF.H264.QP.PFrame="P-Frame QP"
18
-AMF.H264.QP.BFrame="B-Frame QP"
19
-AMF.H264.QP.BPictureDelta="B-Picture Delta QP"
20
-AMF.H264.FillerData="Filler Data"
21
-AMF.H264.FrameSkipping="Billede skip"
22
-AMF.H264.EnforceHRDCompatibility="Tving HRD Kompatibilitet"
23
-AMF.H264.BPicture.Pattern="B-Picture Pattern"
24
-AMF.H264.BPicture.Reference="B-Picture Reference"
25
-AMF.H264.DeblockingFilter="Deblocking Filter"
26
-AMF.H264.ScanType="Scan Type"
27
-AMF.H264.ScanType.Progressive="Progressive"
28
-AMF.H264.ScanType.Interlaced="Interlaced"
29
-AMF.H264.QualityPreset="Kvalitets profiler"
30
-AMF.H264.QualityPreset.Speed="Hastighed (Dårligste kvalitet)"
31
-AMF.H264.QualityPreset.Balanced="Balanceret (Mellem Kvalitet)"
32
-AMF.H264.QualityPreset.Quality="Kvalitet (Bedste Kvalitet)"
33
-AMF.Util.Default="Standard"
34
-AMF.Util.Toggle.Disabled="Deaktiveret"
35
-AMF.Util.Toggle.Enabled="Aktiveret"
36
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/de-DE.ini
Deleted
117
1
2
-AMF.H264.Preset="Voreinstellungen"
3
-AMF.H264.Preset.Recording="Aufnahme"
4
-AMF.H264.Preset.HighQuality="Hohe Qualität"
5
-AMF.H264.Preset.Indistinguishable="Ununterscheidbar"
6
-AMF.H264.Preset.Lossless="Verlustfrei"
7
-AMF.H264.Preset.Twitch="Twitch"
8
-AMF.H264.Preset.YouTube="YouTube"
9
-AMF.H264.Usage="Nutzungsart"
10
-AMF.H264.Usage.Description="Auf welche Nutzungsart AMF eingestellt werden soll:\n- 'Umwandeln' für generelle umwandlung (empfohlen),\n- 'Sehr Niedrige Latenz' für codierung mit sehr niedriger latenz,\n- 'Niedrige Latenz' ist ähnlich dem oberen mit leicht erhöhter latenz.\nNur 'Umwandeln' wird für das streamen unterstützt, alle anderen können für aufnahmen verwendet werden."
11
-AMF.H264.Usage.Transcoding="Umwandeln"
12
-AMF.H264.Usage.UltraLowLatency="Sehr Niedrige Latenz"
13
-AMF.H264.Usage.LowLatency="Niedrige Latenz"
14
-AMF.H264.Profile="Profil"
15
-AMF.H264.Profile.Description="Welches H.264 Profil für das Codieren verwendet werden soll:\n- 'Baseline' hat die größte Unterstützung,\n- 'Main' wird von ca 95% an Geräten unterstützt (empfohlen),\n- 'High' wird nur von Hoch-Performance Geräten unterstützt."
16
-AMF.H264.ProfileLevel="Profillevel"
17
-AMF.H264.ProfileLevel.Description="Welches H.264 Profil Level für das verarbeiten verwendet werden soll:\n- 'Automatisch' errechnet das beste Profil Level für die gegeben Frame Rate und Frame Größe,\n- '4.1' unterstützt 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS\n- '4.2' unterstützt 1920x1080 60FPS, 1280x720 120FPS, 960x540 172FPS\n- '5.0' unterstützt 1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS\n- '5.1' unterstützt 3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS\n- '5.2' unterstützt 3840x2160 60FPS, 1920x1080 172FPS, 1280x720 172FPS, 960x540 172FPS"
18
-AMF.H264.MaximumLTRFrames="Maximale Langzeitreferenz-Bilder"
19
-AMF.H264.MaximumLTRFrames.Description="Langzeitreferenz (LTR) Bilder ist ein feature das dem Codierer erlaubt, einige Bilder innerhalb einer Sequenz als referenzierbar zu markieren.\nDies kann einen positiven Effekt auf die Qualität haben sofern B-Bilder nicht unterstützt oder gewollt sind.\nLTR Bilder können nicht zusammen mit B-Bildern verwendet werden und der encoder wird B-Bilder deaktivieren sofern diese verwendet werden."
20
-AMF.H264.RateControlMethod="Ratenkontrollmethode"
21
-AMF.H264.RateControlMethod.Description="Welche Ratenkontrollmethode verwendet werden soll:\n- CQP setzt feste QP (Quantifizierungsparameter) werte für I-/P-/B- Bilder,\n- CBR bleibt auf der Zielbitrate (mithilfe von Füllungsdaten) (empfohlen für das Streamen),\n- VBR bleibt unter der Höchstbitrate,\n- VBR_LAT bleibt nahe der Zielbitrate sofern GPU-Latenz und GPU-Benutzung dies erlauben, ansonsten wird eine höhere Bitrate verwendet (empfohlen für Aufnamen).\nAlle Methoden bis auf CQP nutzen die Minimum und Maximum QP (Quantifizierungsparameter) Begrenzungen."
22
-AMF.H264.RateControlMethod.CQP="Konstante QP (CQP)"
23
-AMF.H264.RateControlMethod.CBR="Konstante Bitrate (CBR)"
24
-AMF.H264.RateControlMethod.VBR.Peak="Variable Bitrate (Eingeschränkt via Spitzenbitrate) (VBR)"
25
-AMF.H264.RateControlMethod.VBR.Latency="Variable Bitrate (Eingeschränkt via Latenz) (VBR_LAT)"
26
-AMF.H264.Bitrate.Target="Zielbitrate"
27
-AMF.H264.Bitrate.Target.Description="Bitrate die versucht werden soll zu erreichen in einer Sequenz.\nWird von CBR und VBR_LAT verwendet."
28
-AMF.H264.Bitrate.Peak="Spitzenbitrate"
29
-AMF.H264.Bitrate.Peak.Description="Maximale Bitrate in einer Sequenz.\nWird von VBR und VBR_LAT verwendet."
30
-AMF.H264.QP.Minimum="Minimale QP"
31
-AMF.H264.QP.Minimum.Description="Niedrigster QP wert der in einem Bild verwendet werden darf.\nWird von CBR, VBR und VBR_LAT verwendet."
32
-AMF.H264.QP.Maximum="Maximale QP"
33
-AMF.H264.QP.Maximum.Description="Größter QP wert der in einem Bild verwendet werden darf.\nWird von CBR, VBR und VBR_LAT verwendet."
34
-AMF.H264.QP.IFrame="I-Einzelbild QP"
35
-AMF.H264.QP.IFrame.Description="Festgelegter QP wert der für I-Bilder verwendet wird.\nNiedriger = größere Datei, bessere Qualität. Höher = Kleinere Datei, schlechtere Qualität.\nDer QP wert für I-Bilder sollte gleich oder höher als der für P- und B-Bilder sein.\nWird von CQP verwendet."
36
-AMF.H264.QP.PFrame="P-Einzelbild QP"
37
-AMF.H264.QP.PFrame.Description="Festgelegter QP wert der für P-Bilder verwendet wird.\nNiedriger = größere Datei, bessere Qualität. Höher = Kleinere Datei, schlechtere Qualität.\nDer QP wert für P-Bilder sollte gleich oder höher als der für B-Bilder sein.\nWird von CQP verwendet."
38
-AMF.H264.QP.BFrame="B-Einzelbild QP"
39
-AMF.H264.QP.BFrame.Description="Festgelegter QP wert der für B-Bilder verwendet wird.\nNiedriger = größere Datei, bessere Qualität. Höher = Kleinere Datei, schlechtere Qualität.\nWird von CQP verwendet."
40
-AMF.H264.QP.BPictureDelta="B-Bild Delta QP"
41
-AMF.H264.QP.BPictureDelta.Description="Delta QP wert zum letzten nicht-Referenz B-Bild."
42
-AMF.H264.QP.ReferenceBPictureDelta="Referenz B-Bild Delta QP"
43
-AMF.H264.QP.ReferenceBPictureDelta.Description="Delta QP wert zum letzten Referenz B-Bild."
44
-AMF.H264.VBVBuffer="VBV Buffer"
45
-AMF.H264.VBVBuffer.Description="Welche methode genutzt werden soll um die VBV-Puffergröße zu bestimmen:\n- 'Automatisch' errechnet diese mithilfe einer Strengeneinschränkung,\n- 'Manuell' erlaubt es dem Nutzer die Größe zu kontrollieren.\n
46
-VBV (Videopufferungsverifizierer) Puffer wird von verschiedenen Ratenkontrollmethoden genutzt um die gesamte Bitrate innerhalb der Begrenzungen zu halten."
47
-AMF.H264.VBVBuffer.Strictness="VBV Buffer Genauigkeit"
48
-AMF.H264.VBVBuffer.Strictness.Description="Wie streng der VBV Buffer sein soll, wobei 100% fast exakt die Zielbitrate und 0% komplett unbeschränkt ist."
49
-AMF.H264.VBVBuffer.Size="VBV Buffer Größe"
50
-AMF.H264.VBVBuffer.Size.Description="Die Größe des VBV Buffers der für die Bitratenkontrollen in einer Sequenz verwendet wird.\nEine kleine Größe ergibt eine fast perfekte Übereinstimmung mit der Bitrate aber hat einen größeren Performanzeinfluss.\nDie ideale (100% streng) VBV Buffer Größe ist Bitrate/Framerate."
51
-AMF.H264.VBVBuffer.Fullness="VBV Buffer Füllung"
52
-AMF.H264.VBVBuffer.Fullness.Description="Wie voll der VBV Buffer anfangs ist, hat nur einen Effekt auf die erste Sequenz beim codieren."
53
-AMF.H264.FillerData="Füllungsdaten"
54
-AMF.H264.FillerData.Description="Füllungsdaten sind leere/invalide Daten die der Decodierer ignoriert.\nWenn aktiv und CBR verwendet wird, dann wird der Codierer den verbleibenden Platz in einer Sequenz mit diesen Daten füllen."
55
-AMF.H264.FrameSkipping="Einzelbildüberspringung"
56
-AMF.H264.FrameSkipping.Description="Einzelbildüberspringung erlaubt es dem Codierer selektiv Bilder auszulassen sollten diese zu ähnlich sein oder zu lange zum codieren brauchen.\nSofern dies aktiv ist nutzt die Ausgabe Variable Frameraten, was die meiste Bearbeitungssoftware nicht unterstützt."
57
-AMF.H264.EnforceHRDCompatibility="Erzwinge HRD Kompatiblität"
58
-AMF.H264.EnforceHRDCompatibility.Description="Erzwinge Hypothetischer-Referenz-Decodierer Limitierungen welches die maximale Änderung des QP werts innerhalb eines Bildes begrenzt.\nNicht empfohlen für Aufname oder Streamen und sollte nur verwendet werden sofern das Ziel sehr alte Geräte mit einem Softwarereferenz Decodierer sind."
59
-AMF.H264.MaximumAccessUnitSize="Maximale Zugriffseinheitsgröße"
60
-AMF.H264.MaximumAccessUnitSize.Description="Größte Größe einer Zugriffseinheit für einen NAL. Ein Wert von 0 erlaubt es dem Codierer die beste Größte zu wählen."
61
-AMF.H264.KeyframeInterval="Schlüsselbilderintervall"
62
-AMF.H264.KeyframeInterval.Description="Wie viele Sekunden sollen zwischen nicht-auslassbaren Bildern sein.\nKontrolliert auf die Größe einer Sequenz (GOP)."
63
-AMF.H264.IDRPeriod="IDR Zeitraum"
64
-AMF.H264.IDRPeriod.Description="Wie viele Bilder sollen zwischen nicht-auslassbaren Bildern sein.\nKontrolliert auf die Größe einer Sequenz (GOP)."
65
-AMF.H264.HeaderInsertionSpacing="Dateikopfeinfügungsabstand"
66
-AMF.H264.HeaderInsertionSpacing.Description="Wie viele Bilder zwischen NAL-kopfzeilen sein sollen. Es wird nicht empfohlen dies von 0 (automatisch) zu ändern."
67
-AMF.H264.BPicture.Pattern="B-Bild Muster"
68
-AMF.H264.BPicture.Pattern.Description="Wie viele B-Bilder sollen erlaubt sein für das codieren. Dies hat einen positiven Einfluss auf Qualität und einen negativen Einfluss auf Performanz.\nWird nur von der 2. und 3. Generation an VCE-Karten unterstützt."
69
-AMF.H264.BPicture.Reference="B-Bild Referenz"
70
-AMF.H264.BPicture.Reference.Description="Erlaube B-Bilder andere B-Bilder zu verwenden.\nSehr großer Einfluss auf Performanz, wenig Einfluss auf Qualität."
71
-AMF.H264.DeblockingFilter="Entblockungsfilter"
72
-AMF.H264.DeblockingFilter.Description="Setze die Markierung dass der Decodierer einen Entblockungsfilter verwenden darf."
73
-AMF.H264.SlicesPerFrame="Slices pro Frame"
74
-AMF.H264.SlicesPerFrame.Description="Benutze eine feste anzahl an Schnitten anstatt einer dynamischen für das codieren.\nKann mit größeren Auflösungen und Frameraten helfen da dies dem Codierer erlaubt mehr Daten mit dem selben Profil-level zu speichern, hat aber oft einen negativen Effekt auf die Qualität."
75
-AMF.H264.IntraRefreshNumMBsPerSlot="Intra-Refresh Anzahl der Makroblöcke pro Slot"
76
-AMF.H264.IntraRefreshNumMBsPerSlot.Description="Wie viele Makroblöcke sollen pro Slot in der Intra-Refresh-Kodierung erlaubt sein?\nIntra-Refresh-Kodierung erlaubt schnelleres Durchsuchen und decodieren auf Kosten einer höheren Bitrate, da zusätzliche Daten gespeichert werden.\nBeim Streamen auf der Standardeinstellung lassen."
77
-AMF.H264.ScanType="Abtastverfahren"
78
-AMF.H264.ScanType.Description="Welches Abtastverfahren verwendet werden soll. Sollte immer 'Progressiv' sein."
79
-AMF.H264.ScanType.Progressive="Progressiv"
80
-AMF.H264.ScanType.Interlaced="Zeilensprung"
81
-AMF.H264.QualityPreset="Qualitätsvoreinstellung"
82
-AMF.H264.QualityPreset.Description="Welche Qualitätsvoreinstellungen AMF versuchen soll zu verwenden:\n- 'Geschwindigkeit' ist der schnellste aber hat die schlechteste Qualität,\n- 'Balanciert' ist zwischen 'Geschwindigkeit' und 'Qualität' und ergibt eine großartige balance zwischen beiden,\n- 'Qualität' gibt die beste Qualität für eine gegebene bitrate."
83
-AMF.H264.QualityPreset.Speed="Geschwindigkeit"
84
-AMF.H264.QualityPreset.Balanced="Ausgeglichen"
85
-AMF.H264.QualityPreset.Quality="Qualität"
86
-AMF.H264.MotionEstimation="Bewegungsschätzung"
87
-AMF.H264.MotionEstimation.Description="Bewegungsschätzung erlaubt des dem Codierer die gebrauchte Bitrate zu reduzieren durch das herausfinden wo ein Pixel hinbewegt wurde."
88
-AMF.H264.MotionEstimation.None="Keine"
89
-AMF.H264.MotionEstimation.Half="Halb-Pixel"
90
-AMF.H264.MotionEstimation.Quarter="Viertel-Pixel"
91
-AMF.H264.MotionEstimation.Both="Halb- & Viertel-Pixel"
92
-AMF.H264.CABAC="Kontextbasierende adaptive Binäre Arithmetische Kodierung (CABAC)"
93
-AMF.H264.CABAC.Description="Benutze CABAC (Kontextbasierende Adaptive Binäre Arithmetische Kodierung) anstatt von CALV.\nKein Einfluss auf Qualität aber hilft bei der Kompression. Im Durschnitt ist eine Verbesserung von 5% zu erwarten."
94
-AMF.H264.MemoryType="Speichertyp"
95
-AMF.H264.MemoryType.Description="Wie sollen Bilder bevor der Übertragung zum Codierer gespeichert werden:\n- 'Automatisch' wählt die beste verfügbare Speicher-methode aus,\n- Host verwendet Ram,\n- DirectX 9 verwendet DirectX Texturflächen,\n- DirectX 11 verwendet DirectX Texturflächen,\n- OpenGL verwendet OpenGL Texturflächen.\n\nHost ist gut genug für die meisten Systeme, aber DirectX kann gelegentlich bei hoher Last helfen."
96
-AMF.H264.Device="Gerät"
97
-AMF.H264.Device.Description="Welches Gerät für das codieren verwendet werden soll.\nBenötigt einen anderen Speichertyp als 'Host'."
98
-AMF.H264.UseOpenCL="Benutze OpenCL"
99
-AMF.H264.UseOpenCL.Description="Soll OpenCL verwendet werden um Einzelbilder zum Codierer zu senden?"
100
-AMF.H264.SurfaceFormat="Oberflächenformat"
101
-AMF.H264.SurfaceFormat.Description="Welches Oberflächenformat für das Codieren verwendet werden soll.\nNur NV12 wird nativ unterstützt, alle anderen müssen konvertiert werden."
102
-AMF.H264.View="Ansichtsmodus"
103
-AMF.H264.View.Description="Welche Einstellungen sichtbar sein sollen. Hilfe mit Einstellungen wird abgelehnt sofern 'Experte' oder 'Meister' als Ansichtsmodus verwendet wird."
104
-AMF.H264.View.Basic="Grundlegend"
105
-AMF.H264.View.Advanced="Erweitert"
106
-AMF.H264.View.Expert="Experte"
107
-AMF.H264.View.Master="Meister"
108
-AMF.H264.UnlockProperties="Entsperre Einstellungen"
109
-AMF.H264.UnlockProperties.Description="Entsperre einige Einstellungen so dass diese die volle Reichweite haben anstatt nur eine begrenzte."
110
-AMF.H264.Debug="Debug"
111
-AMF.H264.Debug.Description="Aktiviere erweiterte debug nachrichten, sollte aktiv sein wenn man Hilfe erwartet mit diesem encoder."
112
-AMF.Util.Default="Standard"
113
-AMF.Util.Automatic="Automatisch"
114
-AMF.Util.Manual="Manuell"
115
-AMF.Util.Toggle.Disabled="Deaktiviert"
116
-AMF.Util.Toggle.Enabled="Aktiviert"
117
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/en-US.ini
Deleted
124
1
2
-# Presets
3
-AMF.H264.Preset="Preset"
4
-AMF.H264.Preset.Recording="Recording"
5
-AMF.H264.Preset.HighQuality="High Quality"
6
-AMF.H264.Preset.Indistinguishable="Indistinguishable"
7
-AMF.H264.Preset.Lossless="Lossless"
8
-AMF.H264.Preset.Twitch="Twitch"
9
-AMF.H264.Preset.YouTube="YouTube"
10
-# Static Properties
11
-AMF.H264.Usage="Usage"
12
-AMF.H264.Usage.Description="What usage AMF should be tuned for:\n- 'Transcoding' is general purpose transcoding (recommended),\n- 'Ultra Low Latency' is for really low latency encoding,\n- 'Low Latency' is similar to above with a slightly higher latency.\nStreaming only supports 'Transcoding', all other values can be used for recording."
13
-AMF.H264.Usage.Transcoding="Transcoding"
14
-AMF.H264.Usage.UltraLowLatency="Ultra Low Latency"
15
-AMF.H264.Usage.LowLatency="Low Latency"
16
-AMF.H264.Profile="Profile"
17
-AMF.H264.Profile.Description="Which H.264 Profile to use for encoding:\n- 'Baseline' has the widest support,\n- 'Main' is supported by 95% of devices (recommended),\n- 'High' is only supported by high-end devices."
18
-AMF.H264.ProfileLevel="Profile Level"
19
-AMF.H264.ProfileLevel.Description="Which H.264 Profile Level to use for encoding:\n- 'Automatic' calculates the best profile level for the given Frame Rate and Frame Size,\n- '4.1' supports 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS\n- '4.2' supports 1920x1080 60FPS, 1280x720 120FPS, 960x540 172FPS\n- '5.0' supports 1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS\n- '5.1' supports 3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS\n- '5.2' supports 3840x2160 60FPS, 1920x1080 172FPS, 1280x720 172FPS, 960x540 172FPS"
20
-AMF.H264.MaximumLTRFrames="Maximum LTR Frames"
21
-AMF.H264.MaximumLTRFrames.Description="Long Term Reference (LTR) Frames are a feature that allows the encoder to flag certain frames in a sequence as referencable.\nThis can have a positive effect on quality when B-Pictures are not support or wanted.\nLTR Frames can't be used with B-Pictures and the encoder will disable B-Pictures if these are used."
22
-# Rate Control Properties
23
-AMF.H264.RateControlMethod="Rate Control Method"
24
-AMF.H264.RateControlMethod.Description="What rate control method should be used:\n- CQP assigns fixed I-/P-/B-Frame QP (Quantization Parameter) values,\n- CBR stays at the given Target Bitrate (using Filler Data) (recommended for streaming),\n- VBR stays below the given Peak Bitrate,\n- VBR_LAT stays close to the Target Bitrate if GPU latency and load allow for it, otherwise will use higher bitrate (recommended for recording).\nAll Methods but CQP use Minimum and Maximum QP (Quantization Parameter) constraints."
25
-AMF.H264.RateControlMethod.CQP="Constant QP (CQP)"
26
-AMF.H264.RateControlMethod.CBR="Constant Bitrate (CBR)"
27
-AMF.H264.RateControlMethod.VBR.Peak="Variable Bitrate (Peak Constrained) (VBR)"
28
-AMF.H264.RateControlMethod.VBR.Latency="Variable Bitrate (Latency Constrained) (VBR_LAT)"
29
-AMF.H264.Bitrate.Target="Target Bitrate"
30
-AMF.H264.Bitrate.Target.Description="Bitrate to attempt to achieve in the overall sequence.\nUsed by CBR and VBR_LAT."
31
-AMF.H264.Bitrate.Peak="Peak Bitrate"
32
-AMF.H264.Bitrate.Peak.Description="Bitrate to attempt to maximally peak to in the overall sequence.\nUsed by VBR and VBR_LAT."
33
-AMF.H264.QP.Minimum="Minimum QP"
34
-AMF.H264.QP.Minimum.Description="Lowest QP (Quantization Parameter) value to use in a frame.\nUsed by CBR, VBR and VBR_LAT."
35
-AMF.H264.QP.Maximum="Maximum QP"
36
-AMF.H264.QP.Maximum.Description="Highest QP (Quantization Parameter) value to use in a frame.\nUsed by CBR, VBR and VBR_LAT."
37
-AMF.H264.QP.IFrame="I-Frame QP"
38
-AMF.H264.QP.IFrame.Description="Fixed QP (Quantization Parameter) value to use for I-Frames.\nLower = Bigger File, Better Quality. Higher = Smaller File, Worse Quality.\nI-Frame QP should be at or higher than P- and B-Frame QP.\nUsed by CQP."
39
-AMF.H264.QP.PFrame="P-Frame QP"
40
-AMF.H264.QP.PFrame.Description="Fixed QP (Quantization Parameter) value to use for P-Frames.\nLower = Bigger File, Better Quality. Higher = Smaller File, Worse Quality.\nP-Frame QP should be at or higher than B-Frame QP.\nUsed by CQP."
41
-AMF.H264.QP.BFrame="B-Frame QP"
42
-AMF.H264.QP.BFrame.Description="Fixed QP (Quantization Parameter) value to use for B-Frames.\nLower = Bigger File, Better Quality. Higher = Smaller File, Worse Quality.\nUsed by CQP."
43
-AMF.H264.QP.BPictureDelta="B-Picture Delta QP"
44
-AMF.H264.QP.BPictureDelta.Description="Delta QP (Quantization Parameter) value to the last non-reference B-Picture."
45
-AMF.H264.QP.ReferenceBPictureDelta="Reference B-Picture Delta QP"
46
-AMF.H264.QP.ReferenceBPictureDelta.Description="Delta QP (Quantization Parameter) value to the last reference B-Picture."
47
-AMF.H264.VBVBuffer="VBV Buffer"
48
-AMF.H264.VBVBuffer.Description="What method should be used to determine the VBV Buffer Size:\n- 'Automatic' calculates the size using a strictness constraint,\n- 'Manual' allows the user to control the size.\nVBV (Video Buffering Verifier) Buffer is used by certain Rate Control Methods to keep the overall bitrate within the given constraints."
49
-AMF.H264.VBVBuffer.Strictness="VBV Buffer Strictness"
50
-AMF.H264.VBVBuffer.Strictness.Description="How strict the VBV Buffer is, with 100% being almost exactly the targetted Bitrate and 0% being unrestricted."
51
-AMF.H264.VBVBuffer.Size="VBV Buffer Size"
52
-AMF.H264.VBVBuffer.Size.Description="The size of the VBV Buffer which is used for Bitrate control in a sequence.\nA small size results in an almost perfect bitrate match but has a larger performance impact.\nThe ideal (100% strict) VBV Buffer size is Bitrate/Framerate."
53
-AMF.H264.VBVBuffer.Fullness="VBV Buffer Fullness"
54
-AMF.H264.VBVBuffer.Fullness.Description="How full the VBV Buffer initially is, will only affect the initial sequence of encoding."
55
-AMF.H264.FillerData="Filler Data"
56
-AMF.H264.FillerData.Description="Filler Data is empty/invalid data that the decoder ignores.\nIf enabled and using CBR the encoder will fill up the remaining space in a sequence up with this data."
57
-AMF.H264.FrameSkipping="Frame Skipping"
58
-AMF.H264.FrameSkipping.Description="Frame Skipping allows the encoder to selectively skip over frames if they are very similar or would take too long to encode.\nEnabling this will make the output file be in variable framerate, which most editing software does not support."
59
-AMF.H264.EnforceHRDCompatibility="Enforce HRD Compatibility"
60
-AMF.H264.EnforceHRDCompatibility.Description="Enforce Hypothetical Reference Decoder restrictions which limit the maximum QP value change within a frame.\nNot recommended for recording or streaming and should only be used for targeting very old devices that only have reference software decoders."
61
-AMF.H264.MaximumAccessUnitSize="Maximum Access Unit Size"
62
-AMF.H264.MaximumAccessUnitSize.Description="Largest Size of an Access Unit for a NAL. A value of 0 allows the encoder to pick the best one."
63
-# Picture Control Properties
64
-AMF.H264.KeyframeInterval="Keyframe Interval"
65
-AMF.H264.KeyframeInterval.Description="How many seconds should be between non-droppable Frames.\nAlso controls sequence(GOP) size."
66
-AMF.H264.IDRPeriod="IDR Period"
67
-AMF.H264.IDRPeriod.Description="How many frames should be between non-droppable Frames.\nAlso controls sequence(GOP) size."
68
-AMF.H264.HeaderInsertionSpacing="Header Insertion Spacing"
69
-AMF.H264.HeaderInsertionSpacing.Description="How many frames should be between NAL headers. It is not recommended to change this from 0 (automatic)."
70
-AMF.H264.BPicture.Pattern="B-Picture Pattern"
71
-AMF.H264.BPicture.Pattern.Description="How many B-Pictures should be allowed for encoding, has a positive impact on quality and negative impact on performance.\nSupported by 2nd and 3rd Generation VCE cards."
72
-AMF.H264.BPicture.Reference="B-Picture Reference"
73
-AMF.H264.BPicture.Reference.Description="Allow B-Pictures to reference other B-Pictures additionally to P- and I-Frames.\nHuge performance impact, low quality improvement."
74
-AMF.H264.DeblockingFilter="Deblocking Filter"
75
-AMF.H264.DeblockingFilter.Description="Sets the flag that the decoder is allowed to use a Deblocking Filter for the encoded stream."
76
-AMF.H264.SlicesPerFrame="Slices Per Frame"
77
-AMF.H264.SlicesPerFrame.Description="Use fixed slice encoding instead of dynamic slice encoding.\nCan help with large resolutions and framerates as it allows for more data to be stored in the same profile level but will have a negative effect on quality most of the time."
78
-AMF.H264.IntraRefreshNumMBsPerSlot="Intra-Refresh Number of Macroblocks Per Slot"
79
-AMF.H264.IntraRefreshNumMBsPerSlot.Description="How many Macroblocks should be allowed per slot in Intra-Refresh encoding.\nIntra-Refresh encoding allows faster seeking and decoding at the cost of a higher bitrate due to additional data being stored.\nLeave at default for streaming."
80
-# Miscellaneous Properties
81
-AMF.H264.ScanType="Scan Type"
82
-AMF.H264.ScanType.Description="Which scanning method to use, always leave this on 'Progressive'."
83
-AMF.H264.ScanType.Progressive="Progressive"
84
-AMF.H264.ScanType.Interlaced="Interlaced"
85
-AMF.H264.QualityPreset="Quality Preset"
86
-AMF.H264.QualityPreset.Description="What Quality Preset AMF should attempt to target:\n- 'Speed' is the fastest but has the worst quality,\n- 'Balanced' is between 'Speed' and 'Quality' and offers a great balance between both,\n- 'Quality' gives the best quality for a given bitrate."
87
-AMF.H264.QualityPreset.Speed="Speed"
88
-AMF.H264.QualityPreset.Balanced="Balanced"
89
-AMF.H264.QualityPreset.Quality="Quality"
90
-AMF.H264.MotionEstimation="Motion Estimation"
91
-AMF.H264.MotionEstimation.Description="Motion Estimation allows the encoder to reduce needed bitrate by estimating where a pixel went."
92
-AMF.H264.MotionEstimation.None="None"
93
-AMF.H264.MotionEstimation.Half="Half-Pixel"
94
-AMF.H264.MotionEstimation.Quarter="Quarter-Pixel"
95
-AMF.H264.MotionEstimation.Both="Half- & Quarter-Pixel"
96
-AMF.H264.CABAC="CABAC"
97
-AMF.H264.CABAC.Description="Use CABAC (Context Adaptive Binary Arithmetic Coding) instead of CALV.\nNo impact on Quality but helps with compression. On average, 5% better compression can be expected."
98
-# System Properties
99
-AMF.H264.MemoryType="Memory Type"
100
-AMF.H264.MemoryType.Description="How Frames should be stored before submission to the encoder:\n- 'Automatic' picks the best available memory backend type available,\n- Host uses system memory,\n- DirectX 9 uses DirectX surfaces for submission,\n- DirectX 11 uses DirectX surfaces for submission,\n- OpenGL uses OpenGL surfaces for submission.\n\n'Host' is good enough for most systems but DirectX can occasionally help with high load situations."
101
-AMF.H264.Device="Device"
102
-AMF.H264.Device.Description="Which Device to use for encoding.\nRequires Memory Type to not be set to 'Host'."
103
-AMF.H264.UseOpenCL="Use OpenCL"
104
-AMF.H264.UseOpenCL.Description="Should the Encoder use OpenCL to submit the individual frames?"
105
-AMF.H264.SurfaceFormat="Surface Format"
106
-AMF.H264.SurfaceFormat.Description="What Surface Format to use for encoding.\nOnly NV12 is natively supported, other types require conversion."
107
-AMF.H264.View="View Mode"
108
-AMF.H264.View.Description="What properties should be visible. You will receive no support when using 'Expert' or 'Master' view mode."
109
-AMF.H264.View.Basic="Basic"
110
-AMF.H264.View.Advanced="Advanced"
111
-AMF.H264.View.Expert="Expert"
112
-AMF.H264.View.Master="Master"
113
-AMF.H264.UnlockProperties="Unlock Properties"
114
-AMF.H264.UnlockProperties.Description="Unlock certain properties to their full range instead of limiting them to a partial range."
115
-AMF.H264.Debug="Debug"
116
-AMF.H264.Debug.Description="Enable additional Debug logging, should be active whenever you need support with this encoder."
117
-# Utility
118
-AMF.Util.Default="Default"
119
-AMF.Util.Automatic="Automatic"
120
-AMF.Util.Manual="Manual"
121
-AMF.Util.Toggle.Disabled="Disabled"
122
-AMF.Util.Toggle.Enabled="Enabled"
123
\ No newline at end of file
124
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/es-ES.ini
Deleted
81
1
2
-AMF.H264.Preset="Preajuste"
3
-AMF.H264.Preset.Recording="Grabación"
4
-AMF.H264.Preset.HighQuality="Alta Calidad"
5
-AMF.H264.Preset.Indistinguishable="Indistinguible"
6
-AMF.H264.Preset.Lossless="Sin pérdidas"
7
-AMF.H264.Preset.Twitch="Twitch"
8
-AMF.H264.Preset.YouTube="YouTube"
9
-AMF.H264.Usage="Uso"
10
-AMF.H264.Usage.Transcoding="Codificación"
11
-AMF.H264.Usage.UltraLowLatency="Latencia ultra baja"
12
-AMF.H264.Usage.LowLatency="Latencia baja"
13
-AMF.H264.Profile="Perfil del Códec"
14
-AMF.H264.ProfileLevel="Nivel del Perfil"
15
-AMF.H264.ProfileLevel.Description="Nivel de perfil H.264 a utilizar para la codificación:\n- 'Automático' calcula el mejor nivel de perfil para cierta velocidad y tamaño de fotogramas,\n- '4.1' soporta 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS\n- '4.2' soporta 1920x1080 60FPS, 1280x720 120FPS, 960x540 172FPS\n- '5.0' soporta 1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS\n- '5.1' soporta 3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS\n- '5.2' soporta 3840x2160 60FPS, 1920x1080 172FPS, 1280x720 172FPS, 960x540 172FPS"
16
-AMF.H264.MaximumLTRFrames="Fotogramas LTR máximos"
17
-AMF.H264.RateControlMethod="Método de control del flujo"
18
-AMF.H264.RateControlMethod.CQP="QP constante (CQP)"
19
-AMF.H264.RateControlMethod.CBR="Flujo constante (CBR)"
20
-AMF.H264.RateControlMethod.VBR.Peak="Flujo variable (pico restringido) (VBR)"
21
-AMF.H264.RateControlMethod.VBR.Latency="Flujo variable (latencia restringida) (VBR_LAT)"
22
-AMF.H264.Bitrate.Target="Tasa de bits deseada"
23
-AMF.H264.Bitrate.Peak="Pico de tasa de bits"
24
-AMF.H264.QP.Minimum="QP Mínimo"
25
-AMF.H264.QP.Maximum="QP Máximo"
26
-AMF.H264.QP.IFrame="I-Frame QP"
27
-AMF.H264.QP.PFrame="P-Frame QP"
28
-AMF.H264.QP.BFrame="B-Frame QP"
29
-AMF.H264.QP.BPictureDelta="QP Delta en B-Pictures"
30
-AMF.H264.QP.BPictureDelta.Description="QP Delta del último B-Picture que no es de referencia."
31
-AMF.H264.QP.ReferenceBPictureDelta="QP Delta en B-Pictures de referencia"
32
-AMF.H264.QP.ReferenceBPictureDelta.Description="QP Delta del último B-Picture de referencia."
33
-AMF.H264.VBVBuffer="Buffer VBV"
34
-AMF.H264.VBVBuffer.Strictness="Estricticidad del Buffer VBV"
35
-AMF.H264.VBVBuffer.Size="Tamaño de buffer VBV"
36
-AMF.H264.VBVBuffer.Fullness="Amplitud del Buffer VBV"
37
-AMF.H264.FillerData="Datos de relleno"
38
-AMF.H264.FrameSkipping="Omisión de fotogramas"
39
-AMF.H264.EnforceHRDCompatibility="Forzar compatibilidad con HRD"
40
-AMF.H264.MaximumAccessUnitSize="Tamaño máximo de la unidad de acceso"
41
-AMF.H264.KeyframeInterval="Intervalo de fotogramas clave"
42
-AMF.H264.IDRPeriod="Periodo IDR"
43
-AMF.H264.HeaderInsertionSpacing="Espaciado de inserción de cabeceras (Frames)"
44
-AMF.H264.BPicture.Pattern="Patron de B-Pictures"
45
-AMF.H264.BPicture.Reference="B-Pictures de referencia"
46
-AMF.H264.DeblockingFilter="Filtro de eliminación de bloques"
47
-AMF.H264.SlicesPerFrame="Porciones por fotograma"
48
-AMF.H264.IntraRefreshNumMBsPerSlot="Numero de macrobloques intra-refresh por Slot"
49
-AMF.H264.ScanType="Tipo de escaneo"
50
-AMF.H264.ScanType.Progressive="Progresivo"
51
-AMF.H264.ScanType.Interlaced="Entrelazado"
52
-AMF.H264.QualityPreset="Calidad del perfil"
53
-AMF.H264.QualityPreset.Speed="Velocidad"
54
-AMF.H264.QualityPreset.Balanced="Equilibrado"
55
-AMF.H264.QualityPreset.Quality="Calidad"
56
-AMF.H264.MotionEstimation="Estimación de movimiento"
57
-AMF.H264.MotionEstimation.Description="Estimación de movimiento permite al codificador reducir el flujo de datos necesario estimando de donde vienen los pixeles."
58
-AMF.H264.MotionEstimation.None="Ninguno"
59
-AMF.H264.MotionEstimation.Half="Mitad de Pixel"
60
-AMF.H264.MotionEstimation.Quarter="Cuarto de Pixel"
61
-AMF.H264.MotionEstimation.Both="Mitad y cuarto de Pixel"
62
-AMF.H264.CABAC="Codificación adaptativa según el contexto binario aritmético (CABAC)"
63
-AMF.H264.CABAC.Description="Usar CABAC (Codificación aritmética binaria adaptable al contexto) en vez de CALV.\nNo afecta a la calidad pero ayuda en la compresión. De media, podemos esperar un 5% mejor compersión."
64
-AMF.H264.MemoryType="Tipo de memoria"
65
-AMF.H264.SurfaceFormat="Formato de la superficie"
66
-AMF.H264.View="Modo de Vista"
67
-AMF.H264.View.Description="Que propiedades deben ser visibles. No recibirás soporte si usas el modo de vista 'Experto' o 'Maestro'."
68
-AMF.H264.View.Basic="Básico"
69
-AMF.H264.View.Advanced="Avanzado"
70
-AMF.H264.View.Expert="Experto"
71
-AMF.H264.View.Master="Maestro"
72
-AMF.H264.UnlockProperties="Desbloquear propiedades"
73
-AMF.H264.UnlockProperties.Description="Desbloquea ciertas propiedades a su maxima capacidad en lugar de limitarlas de forma parcial."
74
-AMF.H264.Debug="Depurar"
75
-AMF.H264.Debug.Description="Habilita el registro de información de depuración adicional, debe ser activado cuando necesites ayuda con este codificador."
76
-AMF.Util.Default="Por defecto"
77
-AMF.Util.Automatic="Automático"
78
-AMF.Util.Manual="Manual"
79
-AMF.Util.Toggle.Disabled="Deshabilitado"
80
-AMF.Util.Toggle.Enabled="Habilitado"
81
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/eu-ES.ini
Deleted
77
1
2
-AMF.H264.Preset="Aurrezarrita"
3
-AMF.H264.Preset.Recording="Grabatzen"
4
-AMF.H264.Preset.HighQuality="Kalitate handia"
5
-AMF.H264.Preset.Indistinguishable="Sumaezina"
6
-AMF.H264.Preset.Lossless="Galerarik gabe"
7
-AMF.H264.Preset.Twitch="Twitch"
8
-AMF.H264.Preset.YouTube="YouTube"
9
-AMF.H264.Usage="Erabilpena"
10
-AMF.H264.Usage.Description="AMFrentzat zer erabilerak aukeratu behar dira:\n- 'Transcoding' oro har proposatzen da transmisiorako (gomendatua),\n- 'Ultra Low Latency' latentzia oso baxuko kodetzerako,\n- 'Low Latency' aurrekoaren antzekoa da latentzia apur bat handiagoarekin.\nStreaming bakarrik onartzen du 'Transcoding', gainerako balio guztiak erabili daitezke grabaziorako."
11
-AMF.H264.Usage.Transcoding="Kodeketa"
12
-AMF.H264.Usage.UltraLowLatency="Latentzia oso txikia"
13
-AMF.H264.Usage.LowLatency="Latentzia txikia"
14
-AMF.H264.Profile="Profila"
15
-AMF.H264.Profile.Description="Zein H.264 profila erabili kodetzeko:\n- 'Baseline' dauka soporterik zabalena,\n- 'Main' gailuen %95ak onartzen du (gomendatua),\n- 'High' bakarrik gama handiko gailuek onartzen dute."
16
-AMF.H264.ProfileLevel="Profilaren maila"
17
-AMF.H264.ProfileLevel.Description="H.264 profilaren zein maila erabili behar da kodetzeko:\n- 'Automatic' automatikoki kalkulatzen du emandako abiadura eta fotogramen tamainarako egokiena,\n- '4.1'-ek onartzen du 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS\n- '4.2'-k onartzen du 1920x1080 60FPS, 1280x720 120FPS\n- '5.0'-k onartzen du 1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS\n- '5.1'-k onartzen du 3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS\n- '5.2'-k onartzen du 3840x2160 60FPS, 1920x1080 172FPS, 1280x720 172FPS, 960x540 172FPS"
18
-AMF.H264.MaximumLTRFrames="Gehienezko LTR fotogramak"
19
-AMF.H264.MaximumLTRFrames.Description="Long Term Reference (LTR) Fotogramak aukera ematen dio kodegailuari sekuentzia baten hainbat fotograma erreferente moduan markatzeko.\nHonek kalitatean eragin positiboa izan dezake B-Pictures onartzen ez direnean.\nLTR Fotogramak ezin dira B-Pictures-ekin erabili eta kodegailuak B-Pictures-ak desgaituko ditu hauek erabiltzean."
20
-AMF.H264.RateControlMethod="Emaria kontrolatzeko metodoa"
21
-AMF.H264.RateControlMethod.CQP="Konstantea QP (CQP)"
22
-AMF.H264.RateControlMethod.CBR="Bit emari konstantea (CBR)"
23
-AMF.H264.RateControlMethod.VBR.Peak="Bit emari aldakorra (gailur mugatuak) (VBR)"
24
-AMF.H264.RateControlMethod.VBR.Latency="Bit emari aldakorra (Latentzia mugatua) (VBR_LAT)"
25
-AMF.H264.Bitrate.Target="Bit emari helburua"
26
-AMF.H264.Bitrate.Peak="Gehienezko gailurra"
27
-AMF.H264.QP.Minimum="Gutxieneko QP"
28
-AMF.H264.QP.Maximum="Gehienezko QP"
29
-AMF.H264.QP.IFrame="I-Frame QP"
30
-AMF.H264.QP.PFrame="P-Frame QP"
31
-AMF.H264.QP.BFrame="B-Frame QP"
32
-AMF.H264.QP.BPictureDelta="B-Picture Delta QP"
33
-AMF.H264.QP.ReferenceBPictureDelta="B-Picture Delta QP erreferentzia"
34
-AMF.H264.VBVBuffer="VBV bufferra"
35
-AMF.H264.VBVBuffer.Strictness="VBV bufferraren zorroztasuna"
36
-AMF.H264.VBVBuffer.Size="VBV bufferraren tamaina"
37
-AMF.H264.VBVBuffer.Fullness="VBV bufferraren betetasuna"
38
-AMF.H264.FillerData="Datu betegarria"
39
-AMF.H264.FrameSkipping="Fotogramen saltoa"
40
-AMF.H264.EnforceHRDCompatibility="Behartu HRD bateragarritasuna"
41
-AMF.H264.MaximumAccessUnitSize="Sarbide unitatearen gehienezko tamaina"
42
-AMF.H264.KeyframeInterval="Gako fotogramen tartea"
43
-AMF.H264.IDRPeriod="IDR periodoa"
44
-AMF.H264.HeaderInsertionSpacing="Goiburuak txertatzeko tartea"
45
-AMF.H264.BPicture.Pattern="B-Picture eredua"
46
-AMF.H264.BPicture.Reference="B-Picture erreferentzia"
47
-AMF.H264.DeblockingFilter="Desblokeoko iragazkia"
48
-AMF.H264.SlicesPerFrame="Zatiak fotogramako"
49
-AMF.H264.IntraRefreshNumMBsPerSlot="Makroblokeen barne freskatze kopura erreteneko"
50
-AMF.H264.ScanType="Eskaneatze mota"
51
-AMF.H264.ScanType.Progressive="Progresiboa"
52
-AMF.H264.ScanType.Interlaced="Gurutzelarkatua"
53
-AMF.H264.QualityPreset="Aurrezarritako kalitatea"
54
-AMF.H264.QualityPreset.Speed="Abiadura"
55
-AMF.H264.QualityPreset.Balanced="Orekatua"
56
-AMF.H264.QualityPreset.Quality="Kalitatea"
57
-AMF.H264.MotionEstimation="Mugimenduaren estimazioa"
58
-AMF.H264.MotionEstimation.None="Ezer ez"
59
-AMF.H264.MotionEstimation.Half="Pixel erdia"
60
-AMF.H264.MotionEstimation.Quarter="Pixel laurdena"
61
-AMF.H264.MotionEstimation.Both="Pixel erdia eta laurdena"
62
-AMF.H264.CABAC="Testuinguru moldakorreko kodeketa bitar aritmetikoa (CABAC)"
63
-AMF.H264.MemoryType="Memoria mota"
64
-AMF.H264.SurfaceFormat="Gainazalaren formatua"
65
-AMF.H264.View="Ikuspegia"
66
-AMF.H264.View.Basic="Oinarrizkoa"
67
-AMF.H264.View.Advanced="Aurreratua"
68
-AMF.H264.View.Expert="Aditu"
69
-AMF.H264.View.Master="Maixu"
70
-AMF.H264.UnlockProperties="Desblokeatu propietateak"
71
-AMF.H264.Debug="Garbiketa"
72
-AMF.Util.Default="Lehenetsia"
73
-AMF.Util.Automatic="Automatikoa"
74
-AMF.Util.Manual="Eskuz"
75
-AMF.Util.Toggle.Disabled="Ezgaituta"
76
-AMF.Util.Toggle.Enabled="Gaituta"
77
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/fi-FI.ini
Deleted
61
1
2
-AMF.H264.Preset="Esiasetus"
3
-AMF.H264.Preset.Recording="Tallennus"
4
-AMF.H264.Preset.HighQuality="Korkea laatu"
5
-AMF.H264.Preset.Indistinguishable="Erottamaton"
6
-AMF.H264.Preset.Lossless="Häviötön"
7
-AMF.H264.Preset.Twitch="Twitch"
8
-AMF.H264.Preset.YouTube="YouTube"
9
-AMF.H264.Usage="Käyttö"
10
-AMF.H264.Usage.Transcoding="Transkoodaus"
11
-AMF.H264.Usage.UltraLowLatency="Erittäin alhainen latenssi"
12
-AMF.H264.Usage.LowLatency="Alhainen latenssi"
13
-AMF.H264.Profile="Profiili"
14
-AMF.H264.ProfileLevel="Profiilin taso"
15
-AMF.H264.RateControlMethod="Rate Control -tapa"
16
-AMF.H264.RateControlMethod.CQP="Pysyvä QP (CQP)"
17
-AMF.H264.RateControlMethod.CBR="Jatkuva bitrate (CBR)"
18
-AMF.H264.RateControlMethod.VBR.Peak="Vaihteleva bitrate (Piikkiin sidottu) (VBR)"
19
-AMF.H264.RateControlMethod.VBR.Latency="Vaihteleva bitrate (Latenssiin sidottu) (VBR_LAT)"
20
-AMF.H264.Bitrate.Target="Bitrate-tavoite"
21
-AMF.H264.Bitrate.Peak="Bitrate-piikki"
22
-AMF.H264.QP.Minimum="Minimi QP"
23
-AMF.H264.QP.Maximum="Maksimi QP"
24
-AMF.H264.QP.IFrame="I-Frame QP"
25
-AMF.H264.QP.PFrame="P-Frame QP"
26
-AMF.H264.QP.BFrame="B-Frame QP"
27
-AMF.H264.QP.BPictureDelta="B-Picture Delta QP"
28
-AMF.H264.QP.ReferenceBPictureDelta="Reference B-Picture Delta QP"
29
-AMF.H264.VBVBuffer="VBV-puskuri"
30
-AMF.H264.VBVBuffer.Size="VBV-puskurin koko"
31
-AMF.H264.FillerData="Täyttödata"
32
-AMF.H264.FrameSkipping="Ruudun ohitus"
33
-AMF.H264.EnforceHRDCompatibility="Pakota HRD-yhteensopivuus"
34
-AMF.H264.BPicture.Pattern="B-Picture Pattern"
35
-AMF.H264.BPicture.Reference="B-Picture Reference"
36
-AMF.H264.DeblockingFilter="Deblocking filtteri"
37
-AMF.H264.ScanType="Skannaustyyppi"
38
-AMF.H264.ScanType.Progressive="Progressiivinen"
39
-AMF.H264.ScanType.Interlaced="Lomitettu"
40
-AMF.H264.QualityPreset="Laatuasetus"
41
-AMF.H264.QualityPreset.Speed="Nopeus"
42
-AMF.H264.QualityPreset.Balanced="Tasapainotettu"
43
-AMF.H264.QualityPreset.Quality="Laatu"
44
-AMF.H264.MotionEstimation="Liikkeen ennakointi"
45
-AMF.H264.MotionEstimation.None="Ei mitään"
46
-AMF.H264.CABAC="Context Adaptive Binary Arithmetic Coding (CABAC)"
47
-AMF.H264.MemoryType="Memory Type"
48
-AMF.H264.SurfaceFormat="Surface Format"
49
-AMF.H264.View="Näyttötila"
50
-AMF.H264.View.Basic="Yksinkertainen"
51
-AMF.H264.View.Advanced="Kehittynyt"
52
-AMF.H264.View.Expert="Expertti"
53
-AMF.H264.View.Master="Jumalallinen"
54
-AMF.H264.UnlockProperties="Avaa ominaisuudet"
55
-AMF.H264.Debug="Debug"
56
-AMF.Util.Default="Oletusarvo"
57
-AMF.Util.Automatic="Automaattinen"
58
-AMF.Util.Manual="Manuaalinen"
59
-AMF.Util.Toggle.Disabled="Pois käytöstä"
60
-AMF.Util.Toggle.Enabled="Käytössä"
61
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/fr-FR.ini
Deleted
65
1
2
-AMF.H264.Usage.Transcoding="Transcodage"
3
-AMF.H264.Usage.UltraLowLatency="Très faible latence"
4
-AMF.H264.Usage.LowLatency="Faible latence"
5
-AMF.H264.Profile="Profil"
6
-AMF.H264.ProfileLevel="Niveau de profil"
7
-AMF.H264.ProfileLevel.Description="Quel niveau de profil H.264 utiliser pour l'encodage :\n- \"Automatique\" laisse l'encodeur déterminer le meilleur profil en fonction de la résolution d'image et du nombre d'images par seconde.\n- \"4.1\" supporte les formats suivants : 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS\n- \"4.2\" supporte les formats suivants : 1920x1080 60FPS, 1280x720 120FPS, 960x540 172FPS\n- \"5.0\" supporte les formats suivants : 1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS\n- \"5.1\" supporte les formats suivants : 3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS\n- \"5.2\" supporte les formats suivants : 3840x2160 60FPS, 1920x1080 172FPS, 1280x720 172FPS, 960x540 172FPS"
8
-AMF.H264.MaximumLTRFrames="Maximum de trames LTR"
9
-AMF.H264.RateControlMethod="Méthode de contrôle du débit"
10
-AMF.H264.RateControlMethod.CQP="QP constant (CQP)"
11
-AMF.H264.RateControlMethod.CBR="Débit constant (CBR)"
12
-AMF.H264.RateControlMethod.VBR.Peak="Débit Variable (maximum) (VBR)"
13
-AMF.H264.RateControlMethod.VBR.Latency="Débit Variable (latence limitée) (VBR_LAT)"
14
-AMF.H264.Bitrate.Target="Débit cible"
15
-AMF.H264.Bitrate.Peak="Débit maximal"
16
-AMF.H264.QP.Minimum="QP minimal"
17
-AMF.H264.QP.Maximum="QP maximal"
18
-AMF.H264.QP.IFrame="QP I-Frame"
19
-AMF.H264.QP.PFrame="QP P-Frame"
20
-AMF.H264.QP.BFrame="QP B-Frame"
21
-AMF.H264.QP.BPictureDelta="QP B-Image Delta"
22
-AMF.H264.QP.ReferenceBPictureDelta="Delta QP de l'image B de référence"
23
-AMF.H264.VBVBuffer="Tampon VBV"
24
-AMF.H264.VBVBuffer.Strictness="Respect du tampon VBV"
25
-AMF.H264.VBVBuffer.Size="Taille du tampon VBV"
26
-AMF.H264.VBVBuffer.Fullness="Remplissage du tampon VBV"
27
-AMF.H264.FillerData="Données de remplissage"
28
-AMF.H264.FrameSkipping="Saut d'images"
29
-AMF.H264.EnforceHRDCompatibility="Appliquer la compatibilité avec l'HRD"
30
-AMF.H264.MaximumAccessUnitSize="Taille max. d'une Access Unit"
31
-AMF.H264.KeyframeInterval="Intervalle d'images-clé"
32
-AMF.H264.IDRPeriod="Périodicité des trames IDR"
33
-AMF.H264.HeaderInsertionSpacing="Intervalle d'insertion de l'en-tête de stream"
34
-AMF.H264.BPicture.Pattern="Modèle d'image B"
35
-AMF.H264.BPicture.Reference="Référence d'image B"
36
-AMF.H264.DeblockingFilter="Filtre de dégroupage"
37
-AMF.H264.SlicesPerFrame="Tranches par image"
38
-AMF.H264.ScanType="Balayage"
39
-AMF.H264.ScanType.Progressive="Progressif"
40
-AMF.H264.ScanType.Interlaced="Entrelacé"
41
-AMF.H264.QualityPreset="Préréglages de qualité"
42
-AMF.H264.QualityPreset.Speed="Vitesse"
43
-AMF.H264.QualityPreset.Balanced="Equilibré"
44
-AMF.H264.QualityPreset.Quality="Qualité"
45
-AMF.H264.MotionEstimation="Estimation de mouvement"
46
-AMF.H264.MotionEstimation.None="Aucun"
47
-AMF.H264.MotionEstimation.Half="Demi-pixel"
48
-AMF.H264.MotionEstimation.Quarter="Quart de pixel"
49
-AMF.H264.MotionEstimation.Both="Demi-pixel & quart de pixel"
50
-AMF.H264.CABAC="Codage adaptif (CABAC)"
51
-AMF.H264.MemoryType="Type de mémoire"
52
-AMF.H264.SurfaceFormat="Format de la surface"
53
-AMF.H264.View="Mode de visualisation"
54
-AMF.H264.View.Basic="Basique"
55
-AMF.H264.View.Advanced="Avancé"
56
-AMF.H264.View.Expert="Expert"
57
-AMF.H264.View.Master="Maître"
58
-AMF.H264.UnlockProperties="Débloquer les propriétés"
59
-AMF.H264.Debug="Débogage"
60
-AMF.Util.Default="Défaut"
61
-AMF.Util.Automatic="Automatique"
62
-AMF.Util.Manual="Manuel"
63
-AMF.Util.Toggle.Disabled="Désactivé"
64
-AMF.Util.Toggle.Enabled="Activé"
65
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/hr-HR.ini
Deleted
41
1
2
-AMF.H264.Usage.Transcoding="Transkodiranje"
3
-AMF.H264.Usage.UltraLowLatency="Ultra nisko kašnjenje"
4
-AMF.H264.Usage.LowLatency="Nisko kašnjenje"
5
-AMF.H264.Profile="Profil"
6
-AMF.H264.ProfileLevel="Nivo profila"
7
-AMF.H264.RateControlMethod="Metoda kontrole protoka"
8
-AMF.H264.RateControlMethod.CQP="Konstantan kvalitet (CQP)"
9
-AMF.H264.RateControlMethod.CBR="Konstantan protok (CBR)"
10
-AMF.H264.RateControlMethod.VBR.Peak="Promenjivi protok (sa gornjom granicom) (VBR)"
11
-AMF.H264.RateControlMethod.VBR.Latency="Promenjivi protok (sa granicom kašnjenja) (VBR_LAT)"
12
-AMF.H264.Bitrate.Target="Ciljani protok"
13
-AMF.H264.Bitrate.Peak="Granica protoka"
14
-AMF.H264.QP.Minimum="Minimalni QP"
15
-AMF.H264.QP.Maximum="Maksimalni QP"
16
-AMF.H264.QP.IFrame="I-Frejm QP"
17
-AMF.H264.QP.PFrame="P-Frejm QP"
18
-AMF.H264.QP.BFrame="B-Frejm QP"
19
-AMF.H264.QP.BPictureDelta="B-Promena slike QP"
20
-AMF.H264.QP.ReferenceBPictureDelta="Referenca B-Promena slike QP"
21
-AMF.H264.FillerData="Data za popunjavanje"
22
-AMF.H264.FrameSkipping="Preskakanje frejmova"
23
-AMF.H264.EnforceHRDCompatibility="Prisilna HRD kompatibilnost"
24
-AMF.H264.BPicture.Pattern="B-Šablonska slika"
25
-AMF.H264.BPicture.Reference="B-Referentna slika"
26
-AMF.H264.DeblockingFilter="Odblokirajući filter"
27
-AMF.H264.ScanType="Vrsta skeniranja"
28
-AMF.H264.ScanType.Progressive="Progresivno"
29
-AMF.H264.ScanType.Interlaced="Isprekidano"
30
-AMF.H264.QualityPreset="Šablon kvaliteta"
31
-AMF.H264.QualityPreset.Speed="Brzina"
32
-AMF.H264.QualityPreset.Balanced="Izbalansirano"
33
-AMF.H264.QualityPreset.Quality="Kvalitet"
34
-AMF.H264.CABAC="Binarno aritmetičko kodiranje prilagodljivo sadržaju (CABAC)"
35
-AMF.H264.MemoryType="Vrsta memorije"
36
-AMF.H264.SurfaceFormat="Format površine"
37
-AMF.Util.Default="Podrazumevano"
38
-AMF.Util.Automatic="Automatski"
39
-AMF.Util.Toggle.Disabled="Onemogućeno"
40
-AMF.Util.Toggle.Enabled="Omogućeno"
41
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/hu-HU.ini
Deleted
69
1
2
-AMF.H264.Preset="Készlet"
3
-AMF.H264.Preset.Recording="Felvétel"
4
-AMF.H264.Preset.HighQuality="Kiváló minőség"
5
-AMF.H264.Preset.Indistinguishable="Megkülönböztethetetlen"
6
-AMF.H264.Preset.Lossless="Veszteségmentes"
7
-AMF.H264.Preset.Twitch="Twitch"
8
-AMF.H264.Preset.YouTube="YouTube"
9
-AMF.H264.Usage="Használat"
10
-AMF.H264.Usage.Transcoding="Transzkódolás"
11
-AMF.H264.Usage.UltraLowLatency="Nagyon alacsony késleltesésű"
12
-AMF.H264.Usage.LowLatency="Alacsony késleltetésű"
13
-AMF.H264.Profile="Enkóder profil"
14
-AMF.H264.ProfileLevel="Profil szint"
15
-AMF.H264.MaximumLTRFrames="Maximális LTR képkocka"
16
-AMF.H264.RateControlMethod="Bitráta vezérlés"
17
-AMF.H264.RateControlMethod.CQP="Erőltetett QP (CQP)"
18
-AMF.H264.RateControlMethod.CBR="Konstans bitráta (CBR)"
19
-AMF.H264.RateControlMethod.VBR.Peak="Változó bitráta (Csúcsértéket betartva) (VBR)"
20
-AMF.H264.RateControlMethod.VBR.Latency="Változó bitráta (Késleltetés kényszerítése) (VBR_LAT)"
21
-AMF.H264.Bitrate.Target="Bitráta (Bitben)"
22
-AMF.H264.Bitrate.Peak="Csúcs bitráta (Bitben)"
23
-AMF.H264.QP.Minimum="Minimum QP"
24
-AMF.H264.QP.Maximum="Maximum QP"
25
-AMF.H264.QP.IFrame="I-Képkocka QP"
26
-AMF.H264.QP.PFrame="P-Képkocka QP"
27
-AMF.H264.QP.BFrame="B-Képkocka QP"
28
-AMF.H264.QP.BPictureDelta="B-Képkocka Delta QP"
29
-AMF.H264.QP.ReferenceBPictureDelta="Referencia B-képkocka Delta QP"
30
-AMF.H264.VBVBuffer="VBV puffer"
31
-AMF.H264.VBVBuffer.Strictness="VBV Puffer kötöttség"
32
-AMF.H264.VBVBuffer.Size="VBV pufferméret"
33
-AMF.H264.VBVBuffer.Fullness="VBV puffer telítettség"
34
-AMF.H264.FillerData="Filler adat"
35
-AMF.H264.FrameSkipping="Képkocka kihagyás"
36
-AMF.H264.EnforceHRDCompatibility="HRD Kompatibilitás kényszerítése"
37
-AMF.H264.KeyframeInterval="Kulcsképkocka időköze"
38
-AMF.H264.IDRPeriod="IDR időköz"
39
-AMF.H264.BPicture.Pattern="B-képkockák száma"
40
-AMF.H264.BPicture.Reference="B-képkocka referencia"
41
-AMF.H264.DeblockingFilter="Deblocking Filter"
42
-AMF.H264.SlicesPerFrame="Szeletelés képkockánként"
43
-AMF.H264.ScanType="Rögzítés módja"
44
-AMF.H264.ScanType.Progressive="Progreszív"
45
-AMF.H264.ScanType.Interlaced="Interlaced (Kísérleti)"
46
-AMF.H264.QualityPreset="Minőségi profil"
47
-AMF.H264.QualityPreset.Speed="Gyors"
48
-AMF.H264.QualityPreset.Balanced="Kiegyenlített"
49
-AMF.H264.QualityPreset.Quality="Minőségi"
50
-AMF.H264.MotionEstimation="Mozgásbecslés"
51
-AMF.H264.MotionEstimation.None="Semmi"
52
-AMF.H264.MotionEstimation.Half="Fél-pixel"
53
-AMF.H264.MotionEstimation.Quarter="Negyed-pixel"
54
-AMF.H264.MotionEstimation.Both="Fél-&negyed-pixel"
55
-AMF.H264.CABAC="Kontextus adaptív bináris aritmetikus kódolás (CABAC)"
56
-AMF.H264.MemoryType="Memória típus"
57
-AMF.H264.SurfaceFormat="Felület formátum"
58
-AMF.H264.View="Nézet mód"
59
-AMF.H264.View.Basic="Alap"
60
-AMF.H264.View.Advanced="Haladó"
61
-AMF.H264.View.Expert="Szakértő"
62
-AMF.H264.View.Master="Mester"
63
-AMF.H264.Debug="Hibakeresés"
64
-AMF.Util.Default="Alapértelmezett"
65
-AMF.Util.Automatic="Automatikus"
66
-AMF.Util.Manual="Manuális"
67
-AMF.Util.Toggle.Disabled="Letiltva"
68
-AMF.Util.Toggle.Enabled="Engedélyezve"
69
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/it-IT.ini
Deleted
66
1
2
-AMF.H264.Usage.Transcoding="Transcodifica"
3
-AMF.H264.Usage.UltraLowLatency="Latenza ultra bassa"
4
-AMF.H264.Usage.LowLatency="Bassa latenza"
5
-AMF.H264.Profile="Profilo"
6
-AMF.H264.ProfileLevel="Livello profilo"
7
-AMF.H264.ProfileLevel.Description="Quale livello di profilo H.264 usare per l'encoding:\n- 'Automatico' calcola il miglior livello per il dato Frame Rate e Frame Size,\n- '4.1' supporta 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS\n- '4.2' supporta 1920x1080 60FPS, 1280x720 120FPS, 960x540 172FPS\n- '5.0' supporta 1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS\n- '5.1' supporta 3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS\n- '5.2' supporta 3840x2160 60FPS, 1920x1080 172FPS, 1280x720 172FPS, 960x540 172FPS"
8
-AMF.H264.MaximumLTRFrames="Fotogrammi LTR Massimi"
9
-AMF.H264.RateControlMethod="Metodo di controllo della frequenza"
10
-AMF.H264.RateControlMethod.CQP="QP Costante (QPC)"
11
-AMF.H264.RateControlMethod.CBR="Bitrate costante (CBR)"
12
-AMF.H264.RateControlMethod.VBR.Peak="Bitrate Variabile (Peak Constrained) (VBR)"
13
-AMF.H264.RateControlMethod.VBR.Latency="Bitrate variabile (latenza vincolata) (VBR_LAT)"
14
-AMF.H264.Bitrate.Target="Bitrate di destinazione"
15
-AMF.H264.Bitrate.Peak="Picco Bitrate"
16
-AMF.H264.QP.Minimum="QP Minimo"
17
-AMF.H264.QP.Maximum="QP Massimo"
18
-AMF.H264.QP.IFrame="I-Frame QP"
19
-AMF.H264.QP.PFrame="P-Frame QP"
20
-AMF.H264.QP.BFrame="B-Frame QP"
21
-AMF.H264.QP.BPictureDelta="B-Picture Delta QP"
22
-AMF.H264.QP.ReferenceBPictureDelta="Riferimento B-Picture Delta QP"
23
-AMF.H264.VBVBuffer="Buffer VBV"
24
-AMF.H264.VBVBuffer.Strictness="Strettezza Buffer VBV"
25
-AMF.H264.VBVBuffer.Size="Dimensione Buffer VBV"
26
-AMF.H264.VBVBuffer.Fullness="Larghezza Buffer VBV"
27
-AMF.H264.FillerData="Dati di riempimento"
28
-AMF.H264.FrameSkipping="Frame Skipping"
29
-AMF.H264.EnforceHRDCompatibility="Forza compatibilità HRD"
30
-AMF.H264.MaximumAccessUnitSize="Massima dimensione di unità d'accesso"
31
-AMF.H264.KeyframeInterval="Intervallo Keyframe"
32
-AMF.H264.IDRPeriod="Periodo IDR"
33
-AMF.H264.HeaderInsertionSpacing="Spaziatura di inserimento di intestazione"
34
-AMF.H264.BPicture.Pattern="Modello B-Picture"
35
-AMF.H264.BPicture.Reference="Riferimento B-Picture"
36
-AMF.H264.DeblockingFilter="Filtro di deblock"
37
-AMF.H264.SlicesPerFrame="Slices Per Frame"
38
-AMF.H264.IntraRefreshNumMBsPerSlot="Intra-Refresh Number of Macroblocks Per Slot"
39
-AMF.H264.ScanType="Tipo di scansione"
40
-AMF.H264.ScanType.Progressive="Progressivo"
41
-AMF.H264.ScanType.Interlaced="Interlacciato"
42
-AMF.H264.QualityPreset="Qualità Preset"
43
-AMF.H264.QualityPreset.Speed="Velocità"
44
-AMF.H264.QualityPreset.Balanced="Bilanciato"
45
-AMF.H264.QualityPreset.Quality="Qualità"
46
-AMF.H264.MotionEstimation="Stima Movimento"
47
-AMF.H264.MotionEstimation.None="Nessuno"
48
-AMF.H264.MotionEstimation.Half="Metà-Pixel"
49
-AMF.H264.MotionEstimation.Quarter="Quarto-Pixel"
50
-AMF.H264.MotionEstimation.Both="Meta- & Quarto-Pixel"
51
-AMF.H264.CABAC="CABAC"
52
-AMF.H264.MemoryType="Tipo Memoria"
53
-AMF.H264.SurfaceFormat="Formato di superficie"
54
-AMF.H264.View="Modalità di visualizzazione"
55
-AMF.H264.View.Basic="Basico"
56
-AMF.H264.View.Advanced="Avanzate"
57
-AMF.H264.View.Expert="Esperto"
58
-AMF.H264.View.Master="Master"
59
-AMF.H264.UnlockProperties="Sblocca proprietà"
60
-AMF.H264.Debug="Debug"
61
-AMF.Util.Default="Predefinito"
62
-AMF.Util.Automatic="Automatico"
63
-AMF.Util.Manual="Manuale"
64
-AMF.Util.Toggle.Disabled="Disabilitato"
65
-AMF.Util.Toggle.Enabled="Attivo"
66
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/ja-JP.ini
Deleted
90
1
2
-AMF.H264.Preset="プリセット"
3
-AMF.H264.Preset.Recording="録画中"
4
-AMF.H264.Preset.HighQuality="高品質"
5
-AMF.H264.Preset.Indistinguishable="区別不能品質"
6
-AMF.H264.Preset.Lossless="無損失品質"
7
-AMF.H264.Preset.Twitch="Twitch"
8
-AMF.H264.Preset.YouTube="YouTube"
9
-AMF.H264.Usage="用途"
10
-AMF.H264.Usage.Transcoding="変換"
11
-AMF.H264.Usage.UltraLowLatency="超低遅延"
12
-AMF.H264.Usage.LowLatency="低遅延"
13
-AMF.H264.Profile="プロファイル"
14
-AMF.H264.Profile.Description="エンコードに使用する H.264 プロファイル:\n- 'Baseline' は最も広くサポートされており、\n- 'Main' は95%のデバイスでサポートされており (推奨)、\n- 'High' は高性能デバイスのみでサポートされている。"
15
-AMF.H264.ProfileLevel="プロファイルレベル"
16
-AMF.H264.ProfileLevel.Description="エンコードに使用する H.264 プロファイルレベル:\n- '自動' は与えられたフレームレートと解像度に対して最適なプロファイルレベルを計算し、\n- '4.1' は 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS をサポートし、\n- '4.2' は 1920x1080 60FPS, 1280x720 120FPS, 960x540 172FPS をサポートし、\n- '5.0' は 1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS をサポートし、\n- '5.1' は 3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS をサポートし、\n- '5.2' は 3840x2160 60FPS、1920 x 1080 172FPS, 1280 x 720 172FPS, 960 x 540 172FPS をサポートします。"
17
-AMF.H264.MaximumLTRFrames="最大 LTR フレーム"
18
-AMF.H264.RateControlMethod="レート制御方式"
19
-AMF.H264.RateControlMethod.CQP="固定QP (CQP)"
20
-AMF.H264.RateControlMethod.CBR="固定ビットレート (CBR)"
21
-AMF.H264.RateControlMethod.VBR.Peak="可変ビットレート (ピーク制約) (VBR)"
22
-AMF.H264.RateControlMethod.VBR.Latency="可変ビットレート (遅延制約) (VBR_LAT)"
23
-AMF.H264.Bitrate.Target="目標ビットレート"
24
-AMF.H264.Bitrate.Target.Description="全体的なシーケンスで達成しようとするビットレート。\nCBR と VBR_LAT で使用されます。"
25
-AMF.H264.Bitrate.Peak="最大ビットレート"
26
-AMF.H264.Bitrate.Peak.Description="全体的なシーケンスでピークを最大にしようとするビットレート。\nVBR と VBR_LAT で使用されます。"
27
-AMF.H264.QP.Minimum="最小QP"
28
-AMF.H264.QP.Minimum.Description="フレームで使用する最小QP値。\nCBR, VBR および VBR_LAT で使用される。"
29
-AMF.H264.QP.Maximum="最大QP"
30
-AMF.H264.QP.Maximum.Description="フレームで使用する最大QP値。\nCBR, VBR および VBR_LAT で使用される。"
31
-AMF.H264.QP.IFrame="I-フレーム QP"
32
-AMF.H264.QP.PFrame="P-フレーム QP"
33
-AMF.H264.QP.BFrame="B-フレーム QP"
34
-AMF.H264.QP.BPictureDelta="B-画像デルタ QP"
35
-AMF.H264.QP.BPictureDelta.Description="最後の非参照B-画像のデルタQPです。"
36
-AMF.H264.QP.ReferenceBPictureDelta="B-画像参照のデルタQP"
37
-AMF.H264.QP.ReferenceBPictureDelta.Description="最後の参照B-画像のデルタQPです。"
38
-AMF.H264.VBVBuffer="VBV バッファ"
39
-AMF.H264.VBVBuffer.Strictness="VBV バッファ厳密性"
40
-AMF.H264.VBVBuffer.Size="VBV バッファサイズ"
41
-AMF.H264.VBVBuffer.Fullness="VBV バッファ充満"
42
-AMF.H264.FillerData="フィラーデータ"
43
-AMF.H264.FrameSkipping="フレームスキップ"
44
-AMF.H264.EnforceHRDCompatibility="HRD 互換性を強制"
45
-AMF.H264.MaximumAccessUnitSize="最大アクセスユニットサイズ"
46
-AMF.H264.KeyframeInterval="キーフレーム間隔"
47
-AMF.H264.KeyframeInterval.Description="ドロップ不可能なフレーム間の秒数。\nGOPのサイズも制御します。"
48
-AMF.H264.IDRPeriod="IDR 周期"
49
-AMF.H264.IDRPeriod.Description="ドロップ不可能なフレーム間のフレーム数。\nGOPのサイズも制御します。"
50
-AMF.H264.HeaderInsertionSpacing="ヘッダー挿入間隔"
51
-AMF.H264.BPicture.Pattern="B-画像パターン"
52
-AMF.H264.BPicture.Reference="B-画像参照"
53
-AMF.H264.DeblockingFilter="デブロックフィルタ"
54
-AMF.H264.DeblockingFilter.Description="デコーダがエンコードされたストリームに対してデブロックフィルタの使用を許可されているかのフラグを設定します。"
55
-AMF.H264.SlicesPerFrame="フレームあたりのスライス"
56
-AMF.H264.IntraRefreshNumMBsPerSlot="スロットごとのマクロブロックのイントラリフレッシュ数"
57
-AMF.H264.ScanType="スキャンの種類"
58
-AMF.H264.ScanType.Description="どのスキャン方法が使用されるか、'プログレッシブ'を常にこのままにしておきます。"
59
-AMF.H264.ScanType.Progressive="プログレッシブ"
60
-AMF.H264.ScanType.Interlaced="インターレース"
61
-AMF.H264.QualityPreset="品質プリセット"
62
-AMF.H264.QualityPreset.Speed="速度"
63
-AMF.H264.QualityPreset.Balanced="バランス"
64
-AMF.H264.QualityPreset.Quality="品質"
65
-AMF.H264.MotionEstimation="動き推定"
66
-AMF.H264.MotionEstimation.Description="動き推定はピクセルがどこに移動したかを推定することによってエンコーダが必要とするビットレートを削減します。"
67
-AMF.H264.MotionEstimation.None="未設定"
68
-AMF.H264.MotionEstimation.Half="1/2ピクセル"
69
-AMF.H264.MotionEstimation.Quarter="1/4ピクセル"
70
-AMF.H264.MotionEstimation.Both="ハーフ & クォーターピクセル"
71
-AMF.H264.CABAC="コンテキスト適応型のバイナリ演算コーディング (CABAC)"
72
-AMF.H264.MemoryType="メモリの種類"
73
-AMF.H264.Device="デバイス"
74
-AMF.H264.UseOpenCL="OpenCL を使用する"
75
-AMF.H264.SurfaceFormat="カラーフォーマット"
76
-AMF.H264.View="表示モード"
77
-AMF.H264.View.Description="どのプロパティが表示されるか。 'エキスパート' または 'マスター' の表示モードを使用する場合はサポートを受けられません。"
78
-AMF.H264.View.Basic="基本"
79
-AMF.H264.View.Advanced="詳細設定"
80
-AMF.H264.View.Expert="エキスパート"
81
-AMF.H264.View.Master="マスター"
82
-AMF.H264.UnlockProperties="プロパティのロック解除"
83
-AMF.H264.Debug="デバッグ"
84
-AMF.H264.Debug.Description="追加のデバッグログ出力を有効にし、これはこのエンコーダでサポートが必要なときにアクティブにする必要があります。"
85
-AMF.Util.Default="既定値"
86
-AMF.Util.Automatic="自動"
87
-AMF.Util.Manual="手動"
88
-AMF.Util.Toggle.Disabled="無効"
89
-AMF.Util.Toggle.Enabled="有効"
90
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/ko-KR.ini
Deleted
109
1
2
-AMF.H264.Preset="사전 설정"
3
-AMF.H264.Preset.Recording="녹화"
4
-AMF.H264.Preset.HighQuality="우수한 품질"
5
-AMF.H264.Preset.Indistinguishable="무손실과 거의 구분 불가"
6
-AMF.H264.Preset.Lossless="무손실"
7
-AMF.H264.Preset.Twitch="트위치"
8
-AMF.H264.Preset.YouTube="유튜브"
9
-AMF.H264.Usage="용도"
10
-AMF.H264.Usage.Description="용도에 따라 AMF을 조율합니다:\n- '트랜스코딩'은 일반적인 용도에 적합한 설정입니다(추천).\n- '매우 낮은 지연시간'은 아주 낮은 인코딩 레이턴시를 의미합니다.\n- '낮은 지연시간'은 그 수준이 조금 더 높습니다.\n방송 목적으로는 '트랜스코딩'만 지원됩니다. 모든 다른 설정값은 녹화 용도에만 사용됩니다."
11
-AMF.H264.Usage.Transcoding="트랜스코딩"
12
-AMF.H264.Usage.UltraLowLatency="매우 낮은 지연 시간"
13
-AMF.H264.Usage.LowLatency="낮은 지연 시간"
14
-AMF.H264.Profile="사전설정"
15
-AMF.H264.Profile.Description="인코딩에 사용하는 H.264프로파일을 설정합니다.\n- 'Baseline'은 가장 많은 환경 및 기기에서 지원가능한 수준입니다.\n- 'Main'은 시장에서 95%의 기기가 지원합니다(추천).\n- 'High'는 고급 기기에만 지원되는 설정입니다."
16
-AMF.H264.ProfileLevel="프로필 수준"
17
-AMF.H264.ProfileLevel.Description="인코딩으로 사용할 H.264 프로파일 수준을 지정합니다:\n-'자동'은 설정된 프레임과 그 크기에 맞춰 가장 좋은 수준을 계산합니다,\n-'4.1'은 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS을 지원합니다,\n-'4.2'는 1920x1080 60FPS, 1280x720 120FPS, 960x540 172FPS을 지원합니다,\n- '5.0'은 1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS을 지원합니다,\n- '5.1'은 3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS을 지원합니다,\n- '5.2'은 3840x2160 60FPS, 1920x1080 172FPS, 1280x720 172FPS, 960x540 172FPS을 지원합니다."
18
-AMF.H264.MaximumLTRFrames="최대 장기참조 프레임"
19
-AMF.H264.MaximumLTRFrames.Description="장기참조 프레임(LTR)은 인코더가 특정 프레임을 참조 가능하게 만들어 줍니다.\n이 설정은 B-화면 기능이 지원되지 않거나 필요한 경우 품질을 올리는데 도움이 될 수 있습니다.\n장기참조 프레임은 B-화면과 동시에 사용할 수 없습니다."
20
-AMF.H264.RateControlMethod="속도 제어 방식"
21
-AMF.H264.RateControlMethod.CQP="고정 QP (CQP)"
22
-AMF.H264.RateControlMethod.CBR="고정 비트레이트 (CBR)"
23
-AMF.H264.RateControlMethod.VBR.Peak="가변 비트레이트 (최대 비트레이트 제약) (VBR)"
24
-AMF.H264.RateControlMethod.VBR.Latency="가변 비트레이트(지연율 제약) (VBR_LAT)"
25
-AMF.H264.Bitrate.Target="목표 비트레이트"
26
-AMF.H264.Bitrate.Target.Description="전반적인 영상 장면을 구성하기 위한 비트레이트.\nCBR과 VBR_LAT에 사용됨."
27
-AMF.H264.Bitrate.Peak="최대 비트레이트"
28
-AMF.H264.Bitrate.Peak.Description="전반적인 영상 장면을 구성할 때 최대로 사용할 수 있는 비트레이트.\nVBR과 VBR_LAT에 사용."
29
-AMF.H264.QP.Minimum="최소 QP"
30
-AMF.H264.QP.Minimum.Description="프레임 하나에 사용하는 최저 QP 값.\n CBR, VBR 그리고 VBR_LAT에 사용됨."
31
-AMF.H264.QP.Maximum="최대 QP"
32
-AMF.H264.QP.Maximum.Description="프레임 하나에 사용하는 최대 QP 값.\n CBR, VBR 그리고 VBR_LAT에 사용됨."
33
-AMF.H264.QP.IFrame="I-프레임 QP"
34
-AMF.H264.QP.IFrame.Description="I-화면에 사용하는 고정 QP 값.\n 낮음= 더 큰 파일, 더 좋은 품질. 높음 = 더 작은 파일, 더 나쁜 품질.\nI-화면 QP는 P-,B-화면 QP값 수치보다 높아야함.\nCQP에서 사용."
35
-AMF.H264.QP.PFrame="P-프레임 QP"
36
-AMF.H264.QP.PFrame.Description="P-화면에 사용하는 고정 QP 값.\n 낮음= 더 큰 파일, 더 좋은 품질. 높음 = 더 작은 파일, 더 나쁜 품질.\nP-화면 QP는 B-화면 QP값 수치보다 같거나 높아야함.\nCQP에서 사용."
37
-AMF.H264.QP.BFrame="BP-프레임 QP"
38
-AMF.H264.QP.BFrame.Description="B-화면에 사용하는 고정 QP 값.\n 낮음= 더 큰 파일, 더 좋은 품질. 높음 = 더 작은 파일, 더 나쁜 품질.\nCQP에서 사용."
39
-AMF.H264.QP.BPictureDelta="B-화면 델타 QP"
40
-AMF.H264.QP.BPictureDelta.Description="마지막 비참조 B-화면의 델타 QP."
41
-AMF.H264.QP.ReferenceBPictureDelta="참조 B-화면 델타 QP"
42
-AMF.H264.QP.ReferenceBPictureDelta.Description="마지막 참조 B-화면의 델타 QP."
43
-AMF.H264.VBVBuffer="VBV 버퍼"
44
-AMF.H264.VBVBuffer.Strictness="VBV 버퍼 엄격도"
45
-AMF.H264.VBVBuffer.Strictness.Description="VBV 버퍼가 어떤 수준으로 제어될지 결정합니다. 100%에는 목표로 정한 비트레이트와 거의 일치하도록 조절하며 0%에서는 제약이 사라집니다."
46
-AMF.H264.VBVBuffer.Size="VBV 버퍼 크기"
47
-AMF.H264.VBVBuffer.Size.Description="한 장면의 비트레이트 제어에 사용하는 VBV 버퍼 크기를 의미합니다.\n작은 크기는 지정한 비트레이트 값과 일치하는 결과를 가져오지만 작업에 더 많은 자원을 요구합니다.\n이상적인 (100% 엄격) VBV버퍼 크기는 비트레이트/프레임율입니다."
48
-AMF.H264.VBVBuffer.Fullness="VBV 버퍼 충만도"
49
-AMF.H264.VBVBuffer.Fullness.Description="초기 VBV버퍼가 얼마나 충만한지는 오로지 인코딩의 초반에만 영향을 미칩니다."
50
-AMF.H264.FillerData="채우기 정보"
51
-AMF.H264.FillerData.Description="채우기 정보는 디코더가 무시하는 빈 혹은 잘못된 데이터입니다.\n만약 이 설정이 활성화되어있고 CBR을 사용할 경우 인코더가 남은 공간을 이 것으로 채워둡니다."
52
-AMF.H264.FrameSkipping="프레임 생략"
53
-AMF.H264.FrameSkipping.Description="프레임 생략은 프레임이 아주 유사하거나 작업이 너무 오래 소요할 경우, 인코더가 선택적으로 그것을 생략할 수 있게 합니다.\n이 설정을 활성화하면 파일은 가변 프레임율로 출력이 되며 대다수 편집 소프트웨어는 지원하지 않습니다."
54
-AMF.H264.EnforceHRDCompatibility="HDR 호환모드 적용"
55
-AMF.H264.EnforceHRDCompatibility.Description="이론적 기본 디코더 강제는 프레임 하나의 최대 QP값 변화를 제한하는 설정입니다.\n녹화나 방송에는 적합하지 않고 기본 소프트웨어 디코더만 사용 가능한 매우 낡은 장치에서 영상을 재생할 때 사용합니다."
56
-AMF.H264.MaximumAccessUnitSize="최대 접근 유닛 크기"
57
-AMF.H264.MaximumAccessUnitSize.Description="NAL 장치에서 단일 접근 유닛의 가장 큰 크기를 결정합니다. 0 값은 인코더가 최적화된 수치를 결정하도록 허용합니다."
58
-AMF.H264.KeyframeInterval="키프레임 간격"
59
-AMF.H264.KeyframeInterval.Description="손실이 불가능한 프레임 사이에 얼마나 많은 시간(초)이 필요한지 설정합니다.\n또한 영상(GOP) 크기도 제어합니다."
60
-AMF.H264.IDRPeriod="IDR 주기"
61
-AMF.H264.IDRPeriod.Description="손실이 불가능한 프레임 사이에 얼마나 많은 프레임이 필요한지 설정합니다.\n또한 영상(GOP) 크기도 제어합니다."
62
-AMF.H264.HeaderInsertionSpacing="헤더 삽입 간격"
63
-AMF.H264.HeaderInsertionSpacing.Description="NAL 헤더 사이에 얼마나 많은 프레임이 필요한지 설정합니다. 0(자동)에서 바꾸는 것은 추천하지 않습니다."
64
-AMF.H264.BPicture.Pattern="B-화면 양식"
65
-AMF.H264.BPicture.Reference="B-화면 참조"
66
-AMF.H264.BPicture.Reference.Description="다른 B-화면뿐만 아니라 P-/I-화면에도 B-화면을 참조할 수 있도록 허용합니다.\n높은 성능이 요구되지만 품질 개선에는 그리 큰 효과가 없습니다."
67
-AMF.H264.DeblockingFilter="디블록 필터"
68
-AMF.H264.DeblockingFilter.Description="디코더가 인코딩된 작업에 디블록 필터를 사용할 수 있도록 허용합니다."
69
-AMF.H264.SlicesPerFrame="조각 당 프레임"
70
-AMF.H264.SlicesPerFrame.Description="동적 대신 고정식 분할 인코딩을 사용합니다.\n높은 해상도와 초당 프레임 환경에서 도움이 될 수 있습니다. 이 설정으로 동일한 프로파일 수준을 유지하면서 더 많은 데이터를 저장할 수 있습니다. 하지만 품질에 부정적인 영향을 미칠 수 있습니다."
71
-AMF.H264.IntraRefreshNumMBsPerSlot="슬롯 당 매크로블록의 인트라-리프레시 수"
72
-AMF.H264.IntraRefreshNumMBsPerSlot.Description="인트라-리프레시 인코딩에서 슬롯마다 얼마나 많은 수의 매크로블록이 필요한지 설정합니다.\n인트라-리프레시 인코딩은 높은 비트레이트를 기반으로 추가 정보를 저장하여 빠른 탐색과 디코딩을 허용합니다.\n방송할 때는 기본으로 두십시오."
73
-AMF.H264.ScanType="스캔 형식"
74
-AMF.H264.ScanType.Description="주사 방식을 설정합니다. 항상 '프로그레시브'로 두십시오."
75
-AMF.H264.ScanType.Progressive="프로그레시브"
76
-AMF.H264.ScanType.Interlaced="인터레이스"
77
-AMF.H264.QualityPreset="품질 사전 설정"
78
-AMF.H264.QualityPreset.Description="AMF 품질을 결정할 때 어떤 수준을 목표로 할지 결정합니다:\n-'속도'는 가장 빠르지만, 품질이 가장 나쁘며,\n- '균형'은 '속도'와 '품질' 사이의 수준을 제공합니다.\n- '품질'은 주어진 비트레이트 내에서 가장 뛰어난 품질을 제공합니다."
79
-AMF.H264.QualityPreset.Speed="속도"
80
-AMF.H264.QualityPreset.Balanced="균형"
81
-AMF.H264.QualityPreset.Quality="품질"
82
-AMF.H264.MotionEstimation="동작 예측"
83
-AMF.H264.MotionEstimation.Description="동작 추정은 픽셀의 움직임을 추정하여 필요한 비트레이트를 줄일 수 있게 합니다."
84
-AMF.H264.MotionEstimation.None="없음"
85
-AMF.H264.MotionEstimation.Half="1/2 화소"
86
-AMF.H264.MotionEstimation.Quarter="1/4 화소"
87
-AMF.H264.MotionEstimation.Both="1/2 & 1/4 화소"
88
-AMF.H264.CABAC="Context Adaptive Binary Arithmetic Coding (CABAC)"
89
-AMF.H264.CABAC.Description="CALV대신 CABAC (Context Adaptive Binary Arithmetic Coding)을 사용합니다.\n품질엔 영향을 주지 않지만 압축에 도움이 됩니다. 평균적으로 5% 정도 더 나은 압축률을 보여줍니다."
90
-AMF.H264.MemoryType="메모리 유형"
91
-AMF.H264.MemoryType.Description="인코더에 제출하기 전에 얼마나 많은 프레임을 저장할지 설정합니다:\n- '자동'은 후위처리 형식 내에 기억장치가 가용할 수 있는 최댓값을 선택합니다.\n- Host는 시스템 메모리를 사용합니다,\n- DirectX 9은 DirectX 표면을 제출에 사용합니다,\n- DirectX 11은 DirectX 표면을 제출에 사용합니다,\n- OpenGL은 OpenGL 표면을 제출에 사용합니다,\n\n'Host''는 대다수 시스템에서 충분하지만, DirectX는 종종 높은 부하가 일어날 때 도움이 될 수 있습니다."
92
-AMF.H264.SurfaceFormat="표면 형식"
93
-AMF.H264.SurfaceFormat.Description="인코딩에 사용할 표면 형식을 설정합니다.\n오로지 NV12만 기본적으로 지원이 되며 다른 형식은 전환 작업이 필요합니다."
94
-AMF.H264.View="보기 모드"
95
-AMF.H264.View.Description="어떤 설정을 표시할지 결정합니다. '숙련' 혹은 '달인' 표시 모드에서는 지원을 받을 수 없습니다."
96
-AMF.H264.View.Basic="기본"
97
-AMF.H264.View.Advanced="고급"
98
-AMF.H264.View.Expert="숙련"
99
-AMF.H264.View.Master="달인"
100
-AMF.H264.UnlockProperties="속성 잠금해제"
101
-AMF.H264.UnlockProperties.Description="특정 설정을 부분적이 아닌 전체 범위를 다룰 수 있도록 잠금을 해제합니다."
102
-AMF.H264.Debug="디버그"
103
-AMF.H264.Debug.Description="추가적인 디버그 기록을 활성화하여 이 인코더에 대한 지원이 필요할 때 제출하십시오."
104
-AMF.Util.Default="기본값"
105
-AMF.Util.Automatic="자동"
106
-AMF.Util.Manual="수동"
107
-AMF.Util.Toggle.Disabled="비활성화"
108
-AMF.Util.Toggle.Enabled="활성화"
109
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/nb-NO.ini
Deleted
21
1
2
-AMF.H264.Usage.Transcoding="Transkoding"
3
-AMF.H264.Usage.UltraLowLatency="Ultra-lav latens"
4
-AMF.H264.Usage.LowLatency="Lav latens"
5
-AMF.H264.Profile="Profil"
6
-AMF.H264.ProfileLevel="Profilnivå"
7
-AMF.H264.Bitrate.Target="Mål Bitrate"
8
-AMF.H264.Bitrate.Peak="Maks bitrate"
9
-AMF.H264.QP.Minimum="Minste QP"
10
-AMF.H264.QP.Maximum="Maksimal QP"
11
-AMF.H264.EnforceHRDCompatibility="Håndheve HRD kompatibilitet"
12
-AMF.H264.ScanType="Skanne Type"
13
-AMF.H264.QualityPreset="Kvalitet forhåndsinnstilling"
14
-AMF.H264.QualityPreset.Speed="Hastighet"
15
-AMF.H264.QualityPreset.Balanced="Balansert"
16
-AMF.H264.QualityPreset.Quality="Kvalitet"
17
-AMF.Util.Default="Standard"
18
-AMF.Util.Automatic="Automatisk"
19
-AMF.Util.Toggle.Disabled="Deaktivert"
20
-AMF.Util.Toggle.Enabled="Aktivert"
21
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/nl-NL.ini
Deleted
37
1
2
-AMF.H264.Usage.Transcoding="Transcoding"
3
-AMF.H264.Usage.UltraLowLatency="Ultra Low Latency"
4
-AMF.H264.Usage.LowLatency="Low Latency"
5
-AMF.H264.Profile="Profiel"
6
-AMF.H264.ProfileLevel="Profielniveau"
7
-AMF.H264.RateControlMethod="Rate control methode"
8
-AMF.H264.RateControlMethod.CQP="Constant QP (CQP)"
9
-AMF.H264.RateControlMethod.CBR="Constant Bitrate (CBR)"
10
-AMF.H264.RateControlMethod.VBR.Peak="Variable Bitrate (Peak Constrained) (VBR)"
11
-AMF.H264.RateControlMethod.VBR.Latency="Variable Bitrate (Latency Constrained) (VBR_LAT)"
12
-AMF.H264.Bitrate.Target="Doelbitrate"
13
-AMF.H264.Bitrate.Peak="Maximale bitrate"
14
-AMF.H264.QP.Minimum="Minimale QP"
15
-AMF.H264.QP.Maximum="Maximale QP"
16
-AMF.H264.QP.IFrame="I-Frame QP"
17
-AMF.H264.QP.PFrame="P-Frame QP"
18
-AMF.H264.QP.BFrame="B-Frame QP"
19
-AMF.H264.QP.BPictureDelta="B-Picture Delta QP"
20
-AMF.H264.FillerData="Opvuldata"
21
-AMF.H264.FrameSkipping="Frames overslaan"
22
-AMF.H264.EnforceHRDCompatibility="Forceer HDR compatibiliteit"
23
-AMF.H264.BPicture.Pattern="B-Picture patroon"
24
-AMF.H264.BPicture.Reference="B-Picture referentie"
25
-AMF.H264.DeblockingFilter="Deblocking Filter"
26
-AMF.H264.ScanType="Scantype"
27
-AMF.H264.ScanType.Progressive="Progressive"
28
-AMF.H264.ScanType.Interlaced="Interlaced"
29
-AMF.H264.QualityPreset="Kwaliteitsinstelling"
30
-AMF.H264.QualityPreset.Speed="Snelheid"
31
-AMF.H264.QualityPreset.Balanced="Gebalanceerd"
32
-AMF.H264.QualityPreset.Quality="Kwaliteit"
33
-AMF.H264.CABAC="Context Adaptive Binary Arithmetic Coding (CABAC)"
34
-AMF.Util.Default="Standaard"
35
-AMF.Util.Toggle.Disabled="Uitgeschakeld"
36
-AMF.Util.Toggle.Enabled="Ingeschakeld"
37
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/pl-PL.ini
Deleted
49
1
2
-AMF.H264.Preset="Profil"
3
-AMF.H264.Preset.Recording="Nagrywanie"
4
-AMF.H264.Preset.HighQuality="Wysoka jakość"
5
-AMF.H264.Preset.Indistinguishable="Nie do odróżnienia"
6
-AMF.H264.Preset.Lossless="Bezstratny"
7
-AMF.H264.Preset.Twitch="Twitch"
8
-AMF.H264.Preset.YouTube="YouTube"
9
-AMF.H264.Usage="Sposób użycia"
10
-AMF.H264.Usage.Transcoding="Konwersja"
11
-AMF.H264.Usage.UltraLowLatency="Bardzo niskie opóźnienie"
12
-AMF.H264.Usage.LowLatency="Niskie opóźnienie"
13
-AMF.H264.Profile="Profil"
14
-AMF.H264.ProfileLevel="Profil"
15
-AMF.H264.RateControlMethod="Metoda kontroli przepływności"
16
-AMF.H264.RateControlMethod.CQP="Stała QP (CQP)"
17
-AMF.H264.RateControlMethod.CBR="Stała przepływność (CBR)"
18
-AMF.H264.RateControlMethod.VBR.Peak="Zmienna przepływność (z ograniczeniem górnym) (VBR)"
19
-AMF.H264.RateControlMethod.VBR.Latency="Zmienna przepływność (z ograniczeniem opóźnieniem) (VBR_LAT)"
20
-AMF.H264.Bitrate.Target="Przepływność docelowa"
21
-AMF.H264.Bitrate.Peak="Przepływność szczytowa"
22
-AMF.H264.QP.Minimum="Minimalna QP"
23
-AMF.H264.QP.Maximum="Maksymalna QP"
24
-AMF.H264.QP.IFrame="I-Frame QP"
25
-AMF.H264.QP.PFrame="P-Frame QP"
26
-AMF.H264.QP.BFrame="B-Frame QP"
27
-AMF.H264.QP.BPictureDelta="B-Picture Delta QP"
28
-AMF.H264.QP.ReferenceBPictureDelta="Referencyjne B-Picture Delta QP"
29
-AMF.H264.FillerData="Filler Data"
30
-AMF.H264.FrameSkipping="Pomijanie klatek"
31
-AMF.H264.EnforceHRDCompatibility="Wymuszanie zgodności HRD"
32
-AMF.H264.BPicture.Pattern="Schemat B-Picture"
33
-AMF.H264.BPicture.Reference="Referencyjny B-Picture"
34
-AMF.H264.DeblockingFilter="Filtr niwelujacy bloki obrazu"
35
-AMF.H264.ScanType="Metoda skanowania"
36
-AMF.H264.ScanType.Progressive="Progresywne"
37
-AMF.H264.ScanType.Interlaced="Z przeplotem"
38
-AMF.H264.QualityPreset="Ustawienie jakości"
39
-AMF.H264.QualityPreset.Speed="Szybkość"
40
-AMF.H264.QualityPreset.Balanced="Zrównoważone"
41
-AMF.H264.QualityPreset.Quality="Jakość"
42
-AMF.H264.CABAC="Kodowanie Context Adaptive Binary Arithmetic Coding (CABAC)"
43
-AMF.H264.MemoryType="Typ pamięci"
44
-AMF.H264.SurfaceFormat="Format powierzchni"
45
-AMF.Util.Default="Domyślne"
46
-AMF.Util.Automatic="Automatycznie"
47
-AMF.Util.Toggle.Disabled="Wyłączone"
48
-AMF.Util.Toggle.Enabled="Włączone"
49
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/ru-RU.ini
Deleted
100
1
2
-AMF.H264.Preset="Предустановка"
3
-AMF.H264.Preset.Recording="Запись"
4
-AMF.H264.Preset.HighQuality="Высокое качество"
5
-AMF.H264.Preset.Indistinguishable="Незаметные потери"
6
-AMF.H264.Preset.Lossless="Без потерь"
7
-AMF.H264.Preset.Twitch="Twitch"
8
-AMF.H264.Preset.YouTube="YouTube"
9
-AMF.H264.Usage="Назначение"
10
-AMF.H264.Usage.Description="На какой режим использования должен быть настроен AMF:\n- 'Перекодировка' — для перекодировки общего назначения (рекомендуется),\n- 'Очень низкая задержка' — для кодировки с очень низкой задержкой,\n- 'Низкая задержка' похожа на пункт выше, но с немного большей задержкой.\nТрансляции поддерживают только 'перекодировку', все остальные значения могут быть использованы для записи."
11
-AMF.H264.Usage.Transcoding="Транскодирование"
12
-AMF.H264.Usage.UltraLowLatency="Очень низкая задержка"
13
-AMF.H264.Usage.LowLatency="Низкая задержка"
14
-AMF.H264.Profile="Профиль кодирования"
15
-AMF.H264.Profile.Description="Какой профиль H.264 следует использовать для кодирования:\n- 'Базовый' поддерживается наибольшим количеством платформ,\n- 'Основной' поддерживается 95% устройств (рекомендуется),\n- 'Высокий' поддерживается только устройствами высокого класса."
16
-AMF.H264.ProfileLevel="Уровень профиля"
17
-AMF.H264.ProfileLevel.Description="Какой уровень профиля H.264 использовать для кодирования:\n- 'Автоматически' выбирает наиболее подходящий уровень под выбранную частоту и размер кадра,\n- '4.1' поддерживает 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS\n- '4.2' поддерживает 1920x1080 60FPS, 1280x720 120FPS, 960x540 172FPS\n- '5.0' поддерживает 1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS\n- '5.1' поддерживает 3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS\n- '5.2' поддерживает 3840x2160 60FPS, 1920x1080 172FPS, 1280x720 172FPS, 960x540 172FPS"
18
-AMF.H264.MaximumLTRFrames="Максимум LTR-кадров"
19
-AMF.H264.MaximumLTRFrames.Description="Long Term Reference (LTR) Frames - функция позволяющая кодировщику помечать определенные кадры в последовательности как ссылаемые.\nЭта функция может поднять качество, если функция B-Pictrues не поддерживается или не желательна.\nФункция LTR Frames не может использоваться вместе с функцией B-Pictrues и кодировщик отключит функцию B-Pictrues если таковая используется."
20
-AMF.H264.RateControlMethod="Метод кодирования"
21
-AMF.H264.RateControlMethod.CQP="CQP: постоянное качество"
22
-AMF.H264.RateControlMethod.CBR="CBR: постоянный битрейт"
23
-AMF.H264.RateControlMethod.VBR.Peak="VBR: переменный битрейт (Ограничение пиков)"
24
-AMF.H264.RateControlMethod.VBR.Latency="VBR: переменный битрейт (Ограничение задержки)"
25
-AMF.H264.Bitrate.Target="Битрейт"
26
-AMF.H264.Bitrate.Target.Description="Желаемый для получения битрейт всего потока.\nИспользуется с CBR и VBR_LAT."
27
-AMF.H264.Bitrate.Peak="Пиковый битрейт"
28
-AMF.H264.Bitrate.Peak.Description="Битрейт работает на максимально пике в общей последовательности.\nИспользуется VBR и VBR_LAT."
29
-AMF.H264.QP.Minimum="Минимальное QP"
30
-AMF.H264.QP.Minimum.Description="Наименьшее значение QP для использования в кадре.\nИспользуется CBR, VBR и VBR_LAT."
31
-AMF.H264.QP.Maximum="Максимальное QP"
32
-AMF.H264.QP.Maximum.Description="Наибольшее значение QP для использования в кадре.\nИспользуется CBR, VBR и VBR_LAT."
33
-AMF.H264.QP.IFrame="I-кадр QP"
34
-AMF.H264.QP.IFrame.Description="Фиксированное значение QP для использования в I-кадрах.\nМеньше = больше файл, лучше качество. Выше = меньше файл, хуже качество.\nQP у I-кадров должно быть больше или равно QP у P- и B-кадров.\nИспользуется CQP."
35
-AMF.H264.QP.PFrame="P-кадр QP"
36
-AMF.H264.QP.PFrame.Description="Фиксированное значение QP для использования в P-кадрах.\nМеньше = больше файл, лучше качество. Выше = меньше файл, хуже качество.\nQP у P-кадров должно быть больше или равно QP у B-кадров.\nИспользуется CQP."
37
-AMF.H264.QP.BFrame="B-кадр QP"
38
-AMF.H264.QP.BFrame.Description="Фиксированное значение QP для использования в B-кадрах.\nМеньше = больше файл, лучше качество. Больше = меньше файл, хуже качество.\nИспользуется CQP."
39
-AMF.H264.QP.BPictureDelta="B-кадры дельта QP"
40
-AMF.H264.QP.BPictureDelta.Description="Дельта QP до последнего не референсного B-кадра."
41
-AMF.H264.QP.ReferenceBPictureDelta="Референсные B-кадры дельта QP"
42
-AMF.H264.QP.ReferenceBPictureDelta.Description="Дельта QP до последнего референсного B-кадра."
43
-AMF.H264.VBVBuffer="Буфер VBV"
44
-AMF.H264.VBVBuffer.Strictness="Строгость буфера VBV"
45
-AMF.H264.VBVBuffer.Strictness.Description="Насколько строго должен быть ограничен буфер VBV: 100% — почти полное соответствие целевому битрейту, 0% — без ограничений."
46
-AMF.H264.VBVBuffer.Size="Размер буфера VBV"
47
-AMF.H264.VBVBuffer.Fullness="Заполнение буфера VBV"
48
-AMF.H264.FillerData="Данные наполнителя"
49
-AMF.H264.FrameSkipping="Пропуск кадров"
50
-AMF.H264.EnforceHRDCompatibility="Принудительная HRD совместимость"
51
-AMF.H264.MaximumAccessUnitSize="Максимальный Размер Блока Доступа"
52
-AMF.H264.KeyframeInterval="Интервал ключевых кадров"
53
-AMF.H264.KeyframeInterval.Description="Сколько секунд должен быть просадок кадров.\nТакже контролирует GOP Size."
54
-AMF.H264.IDRPeriod="Период IDR"
55
-AMF.H264.IDRPeriod.Description="Сколько кадров должно быть что-бы не было просадка кадров.\nТакже контролирует GOP Size."
56
-AMF.H264.HeaderInsertionSpacing="Расстояние вставки заголовка"
57
-AMF.H264.BPicture.Pattern="Патерн B-кадра"
58
-AMF.H264.BPicture.Reference="Референс B-кадра"
59
-AMF.H264.BPicture.Reference.Description="Разрешает B-Кадрам ссылаться на другие B-Кадры как и на P- и I-Кадры.\nОгромный урон производительности, исправление низкого качества."
60
-AMF.H264.DeblockingFilter="Фильтр деблокинга"
61
-AMF.H264.DeblockingFilter.Description="Устанавливает флаг, что декодер может использовать фильтр удаления блочности для прямой трансляции."
62
-AMF.H264.SlicesPerFrame="Количество частей на кадр"
63
-AMF.H264.IntraRefreshNumMBsPerSlot="Интра-обновить Количество Макроблоков в слот"
64
-AMF.H264.ScanType="Развертка"
65
-AMF.H264.ScanType.Description="Какой режим сканирования использовать; всегда оставляется этот параметр на 'прогрессивном'."
66
-AMF.H264.ScanType.Progressive="Прогрессивная"
67
-AMF.H264.ScanType.Interlaced="Чересстрочная"
68
-AMF.H264.QualityPreset="Предустановки качества"
69
-AMF.H264.QualityPreset.Description="К какому пресету качества AMF нужно стремиться:\n-'Speed' самый быстрый, но имеет самое низкое качество,\n-'Balanced' между 'Speed' и 'Quality', предоставляет хорошее соотношение между скоростью и качеством,\n-'Quality' предоставляет наилучшее качество для предоставленного битрейта."
70
-AMF.H264.QualityPreset.Speed="Скорость"
71
-AMF.H264.QualityPreset.Balanced="Баланс"
72
-AMF.H264.QualityPreset.Quality="Качество"
73
-AMF.H264.MotionEstimation="Оценка движения"
74
-AMF.H264.MotionEstimation.Description="Оценки движения позволяет кодировщику необходимость уменьшить Битрейт, оценивая, где пиксель прошел."
75
-AMF.H264.MotionEstimation.None="Нет"
76
-AMF.H264.MotionEstimation.Half="Пол-пиксельная"
77
-AMF.H264.MotionEstimation.Quarter="Четверть-пиксельная"
78
-AMF.H264.MotionEstimation.Both="Пол- & Четверть-пиксельная"
79
-AMF.H264.CABAC="Контекстно-адаптивное двоичное арифметическое кодирование (CABAC)"
80
-AMF.H264.CABAC.Description="Использовать CABAC (Контекстно-адаптивное двоичное арифметическое кодирование) вместо CALV.\nНе влияет на качество, но помогает со сжатием. В среднем можно ожидать улучшение сжатия на 5%."
81
-AMF.H264.MemoryType="Тип памяти"
82
-AMF.H264.MemoryType.Description="Как кадры должны быть сохранены перед передачей кодировщику:\n-'Автоматически' выбирает наилучший доступный источник памяти,\n-Host использует системную память,\n-DirectX 9 использует DirectX для передачи,\n-DirectX 11 использует DirectX для передачи,\n-OpenGL использует OpenGL для передачи.\n\n'Host' хороший выбор для большинства систем, но порой DirectX может помочь в ситуациях высокой нагрузки."
83
-AMF.H264.SurfaceFormat="Формат поверхности"
84
-AMF.H264.SurfaceFormat.Description="Какой формат использоваться для кодирования.\nТолько NV12 изначально поддерживается, другие типы требуют преобразования."
85
-AMF.H264.View="Режим просмотра"
86
-AMF.H264.View.Description="Какие параметры должны быть видны. Вы не будете получать поддержку при использовании режимов 'Эксперт' и 'Мастер'."
87
-AMF.H264.View.Basic="Обычный"
88
-AMF.H264.View.Advanced="Расширенный"
89
-AMF.H264.View.Expert="Эксперт"
90
-AMF.H264.View.Master="Мастер"
91
-AMF.H264.UnlockProperties="Разблокировать параметры"
92
-AMF.H264.UnlockProperties.Description="Разблокировать определённые параметры до их полного, неограниченного диапазона."
93
-AMF.H264.Debug="Отладка"
94
-AMF.H264.Debug.Description="Включить дополнительные логи для отладки; следует включить, если вам нужна поддержка с этим кодировщиком."
95
-AMF.Util.Default="По умолчанию"
96
-AMF.Util.Automatic="Автоматически"
97
-AMF.Util.Manual="Руководство"
98
-AMF.Util.Toggle.Disabled="Выключено"
99
-AMF.Util.Toggle.Enabled="Включено"
100
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/sr-CS.ini
Deleted
41
1
2
-AMF.H264.Usage.Transcoding="Transkodiranje"
3
-AMF.H264.Usage.UltraLowLatency="Ultra nisko kašnjenje"
4
-AMF.H264.Usage.LowLatency="Nisko kašnjenje"
5
-AMF.H264.Profile="Profil"
6
-AMF.H264.ProfileLevel="Nivo profila"
7
-AMF.H264.RateControlMethod="Metoda kontrole protoka"
8
-AMF.H264.RateControlMethod.CQP="Konstantan kvalitet (CQP)"
9
-AMF.H264.RateControlMethod.CBR="Konstantan protok (CBR)"
10
-AMF.H264.RateControlMethod.VBR.Peak="Promenjivi protok (sa gornjom granicom) (VBR)"
11
-AMF.H264.RateControlMethod.VBR.Latency="Promenjivi protok (sa granicom kašnjenja) (VBR_LAT)"
12
-AMF.H264.Bitrate.Target="Ciljani protok"
13
-AMF.H264.Bitrate.Peak="Granica protoka"
14
-AMF.H264.QP.Minimum="Minimalni QP"
15
-AMF.H264.QP.Maximum="Maksimalni QP"
16
-AMF.H264.QP.IFrame="I-Frejm QP"
17
-AMF.H264.QP.PFrame="P-Frejm QP"
18
-AMF.H264.QP.BFrame="B-Frejm QP"
19
-AMF.H264.QP.BPictureDelta="B-Promena slike QP"
20
-AMF.H264.QP.ReferenceBPictureDelta="Referenca B-Promena slike QP"
21
-AMF.H264.FillerData="Podaci za popunjavanje"
22
-AMF.H264.FrameSkipping="Preskakanje frejmova"
23
-AMF.H264.EnforceHRDCompatibility="Prisilna HRD kompatibilnost"
24
-AMF.H264.BPicture.Pattern="B-Šablonska slika"
25
-AMF.H264.BPicture.Reference="B-Referentna slika"
26
-AMF.H264.DeblockingFilter="Odblokirajući filter"
27
-AMF.H264.ScanType="Vrsta skeniranja"
28
-AMF.H264.ScanType.Progressive="Progresivno"
29
-AMF.H264.ScanType.Interlaced="Isprekidano"
30
-AMF.H264.QualityPreset="Šablon kvaliteta"
31
-AMF.H264.QualityPreset.Speed="Brzina"
32
-AMF.H264.QualityPreset.Balanced="Izbalansirano"
33
-AMF.H264.QualityPreset.Quality="Kvalitet"
34
-AMF.H264.CABAC="Binarno aritmetičko kodiranje prilagodljivo sadržaju (CABAC)"
35
-AMF.H264.MemoryType="Vrsta memorije"
36
-AMF.H264.SurfaceFormat="Format površine"
37
-AMF.Util.Default="Podrazumevano"
38
-AMF.Util.Automatic="Automatski"
39
-AMF.Util.Toggle.Disabled="Onemogućeno"
40
-AMF.Util.Toggle.Enabled="Omogućeno"
41
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/sr-SP.ini
Deleted
41
1
2
-AMF.H264.Usage.Transcoding="Транскодирање"
3
-AMF.H264.Usage.UltraLowLatency="Ултра ниско кашњење"
4
-AMF.H264.Usage.LowLatency="Ниско кашњење"
5
-AMF.H264.Profile="Профил"
6
-AMF.H264.ProfileLevel="Ниво профила"
7
-AMF.H264.RateControlMethod="Метода контроле протока"
8
-AMF.H264.RateControlMethod.CQP="Константан квалитет (CQP)"
9
-AMF.H264.RateControlMethod.CBR="Константан проток (CBR)"
10
-AMF.H264.RateControlMethod.VBR.Peak="Промењиви проток (са горњом границом) (VBR)"
11
-AMF.H264.RateControlMethod.VBR.Latency="Промењиви проток (са границом кашњења) (VBR_LAT)"
12
-AMF.H264.Bitrate.Target="Циљани проток"
13
-AMF.H264.Bitrate.Peak="Граница протока"
14
-AMF.H264.QP.Minimum="Минимални QP"
15
-AMF.H264.QP.Maximum="Максимални QP"
16
-AMF.H264.QP.IFrame="I-Фрејм QP"
17
-AMF.H264.QP.PFrame="P-Фрејм QP"
18
-AMF.H264.QP.BFrame="B-Фрејм QP"
19
-AMF.H264.QP.BPictureDelta="B-Промена слике QP"
20
-AMF.H264.QP.ReferenceBPictureDelta="Референца B-Промена слике QP"
21
-AMF.H264.FillerData="Подаци за попуњавање"
22
-AMF.H264.FrameSkipping="Прескакање фрејмова"
23
-AMF.H264.EnforceHRDCompatibility="Присилна HRD компатибилност"
24
-AMF.H264.BPicture.Pattern="B-Шаблонска слика"
25
-AMF.H264.BPicture.Reference="B-Референтна слика"
26
-AMF.H264.DeblockingFilter="Одблокирајући филтер"
27
-AMF.H264.ScanType="Врста скенирања"
28
-AMF.H264.ScanType.Progressive="Прогресивно"
29
-AMF.H264.ScanType.Interlaced="Испрекидано"
30
-AMF.H264.QualityPreset="Шаблон квалитета"
31
-AMF.H264.QualityPreset.Speed="Брзина"
32
-AMF.H264.QualityPreset.Balanced="Избалансирано"
33
-AMF.H264.QualityPreset.Quality="Квалитет"
34
-AMF.H264.CABAC="Бинарно аритметичко кодирање прилагодљиво садржају (CABAC)"
35
-AMF.H264.MemoryType="Врста меморије"
36
-AMF.H264.SurfaceFormat="Формат површине"
37
-AMF.Util.Default="Подразумевано"
38
-AMF.Util.Automatic="Аутоматски"
39
-AMF.Util.Toggle.Disabled="Онемогућено"
40
-AMF.Util.Toggle.Enabled="Омогућено"
41
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/sv-SE.ini
Deleted
43
1
2
-AMF.H264.Preset="Förinställning"
3
-AMF.H264.Preset.HighQuality="Hög kvalitet"
4
-AMF.H264.Preset.Indistinguishable="Oskiljbar"
5
-AMF.H264.Preset.Lossless="Förlustfri"
6
-AMF.H264.Preset.Twitch="Twitch"
7
-AMF.H264.Preset.YouTube="YouTube"
8
-AMF.H264.Usage="Användning"
9
-AMF.H264.Usage.Transcoding="Omkodning"
10
-AMF.H264.Usage.UltraLowLatency="Ultralåg latens"
11
-AMF.H264.Usage.LowLatency="Låg latens"
12
-AMF.H264.Profile="Profil"
13
-AMF.H264.ProfileLevel="Profilnivå"
14
-AMF.H264.RateControlMethod.CQP="Konstant QP (CQP)"
15
-AMF.H264.RateControlMethod.CBR="Konstant bithastighet (CBR)"
16
-AMF.H264.Bitrate.Target="Målets bithastighet"
17
-AMF.H264.Bitrate.Peak="Maximal bithastighet"
18
-AMF.H264.QP.Minimum="Minimal QP"
19
-AMF.H264.QP.Maximum="Maximal QP"
20
-AMF.H264.FrameSkipping="Hoppa över bildrutor"
21
-AMF.H264.EnforceHRDCompatibility="Tvinga HRD-kompatibilitet"
22
-AMF.H264.DeblockingFilter="Avblockningsfilter"
23
-AMF.H264.ScanType="Typ av skanning"
24
-AMF.H264.ScanType.Progressive="Progressiv"
25
-AMF.H264.ScanType.Interlaced="Sammanflätad"
26
-AMF.H264.QualityPreset="Kvalitetsförinställning"
27
-AMF.H264.QualityPreset.Speed="Hastighet"
28
-AMF.H264.QualityPreset.Balanced="Balanserad"
29
-AMF.H264.QualityPreset.Quality="Kvalitet"
30
-AMF.H264.MotionEstimation.None="Ingen"
31
-AMF.H264.MemoryType="Minnestyp"
32
-AMF.H264.View="Visningsläge"
33
-AMF.H264.View.Basic="Grundläggande"
34
-AMF.H264.View.Advanced="Avancerad"
35
-AMF.H264.View.Expert="Expert"
36
-AMF.H264.View.Master="Master"
37
-AMF.H264.Debug="Felsök"
38
-AMF.Util.Default="Standard"
39
-AMF.Util.Automatic="Automatisk"
40
-AMF.Util.Manual="Manuell"
41
-AMF.Util.Toggle.Disabled="Inaktiverad"
42
-AMF.Util.Toggle.Enabled="Aktiverad"
43
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/uk-UA.ini
Deleted
78
1
2
-AMF.H264.Preset="Шаблон"
3
-AMF.H264.Preset.Recording="Звичайний запис"
4
-AMF.H264.Preset.HighQuality="Висока якість"
5
-AMF.H264.Preset.Indistinguishable="Якість майже без втрат"
6
-AMF.H264.Preset.Lossless="Без втрат якості"
7
-AMF.H264.Preset.Twitch="Twitch"
8
-AMF.H264.Preset.YouTube="YouTube"
9
-AMF.H264.Usage="Використання"
10
-AMF.H264.Usage.Description="Тип використання AMF або напрямок його використання, тобто:\n 'Для перекодування' - загальний тип налаштувань (рекомендований).\n 'З ультра-низькою затримкою' - тип лише для дійсно низької затримки під час кодування.\n 'З низькою затримкою' - схожий на зазначений вище, але з трохи більшою затримкою.\n\nТрансляції підтримують лише напрямок використання 'Для перекодування'."
11
-AMF.H264.Usage.Transcoding="Для перекодування"
12
-AMF.H264.Usage.UltraLowLatency="З ультра-низькою затримкою"
13
-AMF.H264.Usage.LowLatency="З низькою затримкою"
14
-AMF.H264.Profile="Профіль"
15
-AMF.H264.ProfileLevel="Рівень профілю"
16
-AMF.H264.MaximumLTRFrames="Кількість LTR-кадрів контрольованих користувачем"
17
-AMF.H264.MaximumLTRFrames.Description="Long-Term Reference (LTR) кадри дозволяють при кодуванні маркувати декілька кадрів як опорні для інших.\nЦе може поліпшити якість у разі відсутності підтримки B-кадрів або небажаності їх використання.\nЯкщо 'Кількість LTR-кадрів контрольованих користувачем' вказано, то енкодер не підтримуватиме B-кадри у відео."
18
-AMF.H264.RateControlMethod.CQP="Фіксований QP (CQP)"
19
-AMF.H264.RateControlMethod.CBR="Постійний бітрейт (CBR)"
20
-AMF.H264.RateControlMethod.VBR.Peak="Змінний бітрейт (максимальний бітрейт обмежено) (VBR)"
21
-AMF.H264.RateControlMethod.VBR.Latency="Змінний бітрейт (затримку обмежено) (VBR_LAT)"
22
-AMF.H264.Bitrate.Target="Бажаний бітрейт"
23
-AMF.H264.Bitrate.Peak="Максимальний бітрейт"
24
-AMF.H264.QP.Minimum="Мінімальний QP"
25
-AMF.H264.QP.Maximum="Максимальний QP"
26
-AMF.H264.QP.IFrame="QP для I-кадрів"
27
-AMF.H264.QP.PFrame="QP для P-кадрів"
28
-AMF.H264.QP.BFrame="QP для B-кадрів"
29
-AMF.H264.QP.BPictureDelta="B-кадри, відхил QP"
30
-AMF.H264.QP.ReferenceBPictureDelta="Опорні B-кадри, відхил QP"
31
-AMF.H264.VBVBuffer="Буфер VBV"
32
-AMF.H264.VBVBuffer.Size="Розмір VBV буфера"
33
-AMF.H264.VBVBuffer.Fullness="Початкова повнота буферу VBV"
34
-AMF.H264.VBVBuffer.Fullness.Description="Визначає початкову заповнюваність Буферу VBV, діє лише на початку кодування."
35
-AMF.H264.FillerData="Заповнювати пустоти у бітрейту"
36
-AMF.H264.FrameSkipping="Пропускати кадри"
37
-AMF.H264.EnforceHRDCompatibility="Застосувати примусову сумісність з HRD"
38
-AMF.H264.MaximumAccessUnitSize="Максимальний розмір Access Unit"
39
-AMF.H264.KeyframeInterval="Інтервал ключових кадрів"
40
-AMF.H264.IDRPeriod="IDR, період (кадрів)"
41
-AMF.H264.HeaderInsertionSpacing="Заголовки потоку, період (кадрів)"
42
-AMF.H264.BPicture.Pattern="Послідовні B-кадри"
43
-AMF.H264.BPicture.Reference="B-кадри як опорні"
44
-AMF.H264.DeblockingFilter="Деблокінг-фільтр"
45
-AMF.H264.SlicesPerFrame="Фрагментів на кадр"
46
-AMF.H264.IntraRefreshNumMBsPerSlot="Кількість Intra-Refresh макроблоків на слот"
47
-AMF.H264.ScanType="Вид розгортки"
48
-AMF.H264.ScanType.Progressive="Прогресивна"
49
-AMF.H264.ScanType.Interlaced="Черезрядкова"
50
-AMF.H264.QualityPreset="Шаблон якості"
51
-AMF.H264.QualityPreset.Speed="Швидкість"
52
-AMF.H264.QualityPreset.Balanced="Збалансований"
53
-AMF.H264.QualityPreset.Quality="Якість"
54
-AMF.H264.MotionEstimation="Оцінка руху"
55
-AMF.H264.MotionEstimation.Description="Оцінка руху дозволяє енкодеру зменшити вимоги до бітрейту завдяки розрахункам з переміщення пікселів."
56
-AMF.H264.MotionEstimation.None="Немає"
57
-AMF.H264.MotionEstimation.Half="Пів-пікселя"
58
-AMF.H264.MotionEstimation.Quarter="Чверть-пікселя"
59
-AMF.H264.MotionEstimation.Both="Пів-пікселя та Чверть-пікселя"
60
-AMF.H264.CABAC="CABAC кодування"
61
-AMF.H264.MemoryType="Пам'ять адресується"
62
-AMF.H264.MemoryType.Description="Визначає як кадри зберігатимуться перед надсиланням до енкодеру:\n 'Автоматично' - програма обирає найкращий спосіб самостійно;\n 'Host' - буде використано системну пам'ять;\n 'DirectX 9' - використовуються поверхні DirectX9 (Windows), пам'ять\nграфічного адаптера;\n 'DirectX 11' - використовуються поверхні DirectX11 (для Windows 8.1\nта новіших), пам'ять графічного адаптера;\n 'OpenGL' - використовуються поверхні OpenGL, пам'ять графічного\nадаптера.\n\nHost - достатньо гарний вибір для багатьох систем, хоча DirectX можна\nвикористати у край навантажених ситуаціях обміну даними (інколи допомагає)."
63
-AMF.H264.SurfaceFormat="Формат поверхні (або кольору)"
64
-AMF.H264.SurfaceFormat.Description="Визначає Формат поверхні (кольору) що використовується для кодування.\nЛише NV12 має вбудовану підтримку, інші типи потребують додаткового перетворення."
65
-AMF.H264.View="Вид для налаштувань"
66
-AMF.H264.View.Description="Визначає кількість наявних опцій для налаштування. Навряд чи розробник вам допомагатиме, якщо ви оберете рівень 'Експерт' або 'Бог енкодерів'."
67
-AMF.H264.View.Basic="Базовий"
68
-AMF.H264.View.Advanced="Розширений"
69
-AMF.H264.View.Expert="Експерт"
70
-AMF.H264.View.Master="Бог енкодерів"
71
-AMF.H264.Debug="Відладка"
72
-AMF.H264.Debug.Description="Вмикає занесення до лог-файлу додаткової інформації про процес кодування. Корисно у випадку коли ви бажаєте звернутися за допомогою до розробника енкодера."
73
-AMF.Util.Default="За замовчанням"
74
-AMF.Util.Automatic="Автоматично"
75
-AMF.Util.Manual="Вручну"
76
-AMF.Util.Toggle.Disabled="Вимкнено"
77
-AMF.Util.Toggle.Enabled="Увімкнено"
78
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/vi-VN.ini
Deleted
66
1
2
-AMF.H264.Preset="Mẫu thiết lập"
3
-AMF.H264.Preset.Recording="Quay video"
4
-AMF.H264.Preset.HighQuality="Chất lượng cao"
5
-AMF.H264.Preset.Indistinguishable="Không thể phân biệt"
6
-AMF.H264.Preset.Lossless="Lossless"
7
-AMF.H264.Preset.Twitch="Twitch"
8
-AMF.H264.Preset.YouTube="YouTube"
9
-AMF.H264.Usage.Transcoding="Chuyển mã"
10
-AMF.H264.Usage.UltraLowLatency="Độ trễ cực thấp"
11
-AMF.H264.Usage.LowLatency="Độ trễ thấp"
12
-AMF.H264.Profile="Profile"
13
-AMF.H264.ProfileLevel="Profile Level"
14
-AMF.H264.MaximumLTRFrames="LTR Frames tối đa"
15
-AMF.H264.RateControlMethod="Cách kiểm soát Bitrate"
16
-AMF.H264.RateControlMethod.CQP="QP Không thay đổi (CQP)"
17
-AMF.H264.RateControlMethod.CBR="Bitrate Không thay đổi (CBR)"
18
-AMF.H264.RateControlMethod.VBR.Peak="Bitrate Thay đổi được (Phụ thuộc vào Bitrate Cao nhất) (VBR)"
19
-AMF.H264.RateControlMethod.VBR.Latency="Bitrate Thay đổi được (Phụ thuộc vào độ trễ) (VBR_LAT)"
20
-AMF.H264.Bitrate.Target="Bitrate Mục tiêu"
21
-AMF.H264.Bitrate.Peak="Bitrate Cao nhất"
22
-AMF.H264.QP.Minimum="QP Thấp nhất"
23
-AMF.H264.QP.Maximum="QP Cao nhất"
24
-AMF.H264.QP.IFrame="I-Frame QP"
25
-AMF.H264.QP.PFrame="P-Frame QP"
26
-AMF.H264.QP.BFrame="B-Frame QP"
27
-AMF.H264.QP.BPictureDelta="B-Picture Delta QP"
28
-AMF.H264.QP.ReferenceBPictureDelta="Reference B-Picture Delta QP"
29
-AMF.H264.FillerData="Filler Data (Thêm data cho đủ bitrate)"
30
-AMF.H264.FrameSkipping="Frame Skipping"
31
-AMF.H264.EnforceHRDCompatibility="Enforce HRD Compatibility"
32
-AMF.H264.KeyframeInterval="Thời gian đặt keyframe"
33
-AMF.H264.BPicture.Pattern="B-Picture Pattern"
34
-AMF.H264.BPicture.Reference="B-Picture Reference"
35
-AMF.H264.DeblockingFilter="De-blocking Filter (Lọc chống nhiễu ảnh)"
36
-AMF.H264.SlicesPerFrame="Lát cho mỗi khung hình"
37
-AMF.H264.ScanType="Quét hình loại"
38
-AMF.H264.ScanType.Progressive="Quét nguyên ảnh (Progressive)"
39
-AMF.H264.ScanType.Interlaced="Quét 1/2 ảnh (Interlaced)"
40
-AMF.H264.QualityPreset="Quality Preset"
41
-AMF.H264.QualityPreset.Speed="Tốc độ"
42
-AMF.H264.QualityPreset.Balanced="Cân bằng"
43
-AMF.H264.QualityPreset.Quality="Chất lượng"
44
-AMF.H264.MotionEstimation="Dự đoán bù trừ chuyển động"
45
-AMF.H264.MotionEstimation.Description="Dự toán chuyển động cho phép bộ mã hóa giảm bitrate cần thiết bằng cách ước tính một pixel sẽ đi đâu."
46
-AMF.H264.MotionEstimation.None="Không"
47
-AMF.H264.MotionEstimation.Half="1/2 Pixel"
48
-AMF.H264.MotionEstimation.Quarter="1/4 Pixel"
49
-AMF.H264.MotionEstimation.Both="1/2 và 1/4 Pixel"
50
-AMF.H264.CABAC="Nén lossless theo tình huống (CABAC)"
51
-AMF.H264.CABAC.Description="Sử dụng CABAC (Context Adaptive Binary Arithmethic Coding) thay vì CALV.\nKhông ảnh hưởng đến chất lượng nhưng tăng khả năng nén. Trung bình có thể nén được 5% tổng dung lượng."
52
-AMF.H264.MemoryType="Loại bộ nhớ"
53
-AMF.H264.SurfaceFormat="Định dạng bề mặt"
54
-AMF.H264.View="Chế độ xem"
55
-AMF.H264.View.Basic="Cơ bản"
56
-AMF.H264.View.Advanced="Nâng cao"
57
-AMF.H264.View.Expert="Chuyên gia"
58
-AMF.H264.View.Master="Bật cả tính năng ẩn"
59
-AMF.H264.UnlockProperties="Mở khóa Properties"
60
-AMF.H264.Debug="Gỡ lỗi"
61
-AMF.Util.Default="Mặc định"
62
-AMF.Util.Automatic="Tự động"
63
-AMF.Util.Manual="Thủ công"
64
-AMF.Util.Toggle.Disabled="Tắt"
65
-AMF.Util.Toggle.Enabled="Bật"
66
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/zh-CN.ini
Deleted
109
1
2
-AMF.H264.Preset="预设"
3
-AMF.H264.Preset.Recording="录像"
4
-AMF.H264.Preset.HighQuality="高质量"
5
-AMF.H264.Preset.Indistinguishable="无法区分"
6
-AMF.H264.Preset.Lossless="无损"
7
-AMF.H264.Preset.Twitch="Twitch"
8
-AMF.H264.Preset.YouTube="YouTube"
9
-AMF.H264.Usage="使用"
10
-AMF.H264.Usage.Description="AMF 应调整为什么用法:\n-'转码' 是通用转码(推荐), \n '超低延迟' 对于真的低延迟编码,\n-'低延迟' 类似于上面稍高的延迟.\n 推流仅支持 '转码', 所有其他值可以用于录制."
11
-AMF.H264.Usage.Transcoding="转码"
12
-AMF.H264.Usage.UltraLowLatency="超低延迟"
13
-AMF.H264.Usage.LowLatency="低延迟"
14
-AMF.H264.Profile="配置文件"
15
-AMF.H264.Profile.Description="使用哪个 H.264 Profile 来编码:\n-'Baseline' 最广泛支持,\n-'Main'被 95% 设备支持(推荐),\n-'High' 只被高端设备支持."
16
-AMF.H264.ProfileLevel="配置等级"
17
-AMF.H264.ProfileLevel.Description="对于编码使用哪种 H.264 Profile Level:\n-'Automatic' 根据给定的帧率和帧大小计算最优的 profile level,\n-'4.1' 支持 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS\n-'4.2' 支持 1920x1080 60FPS, 1280x720 120FPS, 960x540 172FPS\n-'5.0' 支持 1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS\n-'5.1' 支持 3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS\n-'5.2' 支持 3840x2160 60FPS, 1920x1080 172FPS, 1280x720 172FPS, 960x540 172FPS"
18
-AMF.H264.MaximumLTRFrames="最大的 LTR 帧"
19
-AMF.H264.MaximumLTRFrames.Description="长期参考帧(LTR) 是一个特性允许编码器来标记在一个序列的一些帧作为参考帧.\n这会使当 B 帧不支持或者不需要时提高质量.\nLTR真不能和 B 帧一起使用, 并且当使用LTR时, 编码器会禁用 B 帧."
20
-AMF.H264.RateControlMethod="速率控制方法"
21
-AMF.H264.RateControlMethod.CQP="恒定 QP (CQP)"
22
-AMF.H264.RateControlMethod.CBR="固定比特率 (CBR)"
23
-AMF.H264.RateControlMethod.VBR.Peak="变比特率 (峰值约束) (VBR)"
24
-AMF.H264.RateControlMethod.VBR.Latency="变比特率 (延迟约束) (VBR_LAT)"
25
-AMF.H264.Bitrate.Target="目标比特率"
26
-AMF.H264.Bitrate.Target.Description="比特率尝试在整个序列获得.\n用于 CBR 和 VBR_LAT."
27
-AMF.H264.Bitrate.Peak="峰值比特率"
28
-AMF.H264.Bitrate.Peak.Description="比特率尝试最大峰值在整个序列.\n 用于 VBR 和 VBR_LAT"
29
-AMF.H264.QP.Minimum="最低 QP"
30
-AMF.H264.QP.Minimum.Description="在一个帧中的追的 QP 值.\n 用于 CBR, VBR 和 VBR_LAT."
31
-AMF.H264.QP.Maximum="最高 QP"
32
-AMF.H264.QP.Maximum.Description="在一个帧中的最高 QP 值.\n 用于 CBR, VBR 和 VBR_LAT."
33
-AMF.H264.QP.IFrame="I 帧 QP"
34
-AMF.H264.QP.IFrame.Description="用于 I 帧的固定 QP 值.\n 较低 = 较大的文件, 较好的资料. 较高 = 较小的文件, 较差的质量.\nI 帧 QP 应该等于或者大于 P 和 B 帧的 QP 值.\n 用于 CQP."
35
-AMF.H264.QP.PFrame="P 帧 QP"
36
-AMF.H264.QP.PFrame.Description="固定的 QP 值用于 P 帧.\n 较低 = 较大的文件, 较高的质量. 较高 = 较小的文件, 较差的质量.\nP 帧 QP 值应该等于或者高于 B 帧的 QP 值.\n用于 CQP."
37
-AMF.H264.QP.BFrame="B 帧 QP"
38
-AMF.H264.QP.BFrame.Description="用于 B 帧的固定的 QP 值.\n 较小 = 较大的文件, 较好的质量. 较大 = 较小的文件, 较差的质量.\n 用于 CQP."
39
-AMF.H264.QP.BPictureDelta="B 图片 差值 QP"
40
-AMF.H264.QP.BPictureDelta.Description="相对于上一个非参考 B 帧的差值 QP 值."
41
-AMF.H264.QP.ReferenceBPictureDelta="参考 B 图片 差值 QP"
42
-AMF.H264.QP.ReferenceBPictureDelta.Description="相对于上一个参考 B 帧的差值 QP 值."
43
-AMF.H264.VBVBuffer="VBV 缓存"
44
-AMF.H264.VBVBuffer.Strictness="VBV 缓存规范性"
45
-AMF.H264.VBVBuffer.Strictness.Description="VBV 缓存应该怎样严格, 100% 几乎完全和目标比特率一致和 0% 不受限制的."
46
-AMF.H264.VBVBuffer.Size="VBV 缓存大小"
47
-AMF.H264.VBVBuffer.Size.Description="VBV 缓存大小用于在一个序列中的比特率控制.\n体积小会产生几乎完美的比特率控制但有较大的性能影响.\n理想的(100% 严格) VBV 缓存大小是比特率/帧率."
48
-AMF.H264.VBVBuffer.Fullness="VBV 缓冲满"
49
-AMF.H264.VBVBuffer.Fullness.Description="VBV 缓存最初应该多满, 将只会影响最初的序列的编码."
50
-AMF.H264.FillerData="填充数据"
51
-AMF.H264.FillerData.Description="填充数据是解码器忽略的空/无效数据.\n如果启用和使用 CBR, 编码器将会塞满序列中的剩余空间此数据."
52
-AMF.H264.FrameSkipping="跳过的帧"
53
-AMF.H264.FrameSkipping.Description="跳过的帧允许编码器有选择地跳过帧, 如果他们非常相似, 或太长时间编码.\n编码这个将使输出文件为可变帧率, 这样大多数编辑软件不支持."
54
-AMF.H264.EnforceHRDCompatibility="强制 HRD 兼容"
55
-AMF.H264.EnforceHRDCompatibility.Description="强制假设的参考解码器限制在一个帧内的最大的 QP 值更改.\n不推荐用于录制或推流, 并且应仅用于面向只有参考软件解码器的很老的设备."
56
-AMF.H264.MaximumAccessUnitSize="最大访问单元大小"
57
-AMF.H264.MaximumAccessUnitSize.Description="一个 NAL 的访问单元的最大大小. 值 0 允许编码器挑选最好的一个."
58
-AMF.H264.KeyframeInterval="关键帧间隔"
59
-AMF.H264.KeyframeInterval.Description="非丢弃帧之间应该多少秒.\n也控制序列(GOP) 的大小."
60
-AMF.H264.IDRPeriod="IDR 周期"
61
-AMF.H264.IDRPeriod.Description="非丢弃帧之间应该多少帧.\n也控制序列(GOP) 的大小."
62
-AMF.H264.HeaderInsertionSpacing="头部插入空白"
63
-AMF.H264.HeaderInsertionSpacing.Description="NAL 头之间应该多少帧. 不推荐改为非零(自动) 值."
64
-AMF.H264.BPicture.Pattern="B 图片模式"
65
-AMF.H264.BPicture.Reference="B 图片参考"
66
-AMF.H264.BPicture.Reference.Description="允许 B 帧参考 P 帧和 I 帧之外的其他 B 帧.\n 巨大的性能影响, 较小的质量提高."
67
-AMF.H264.DeblockingFilter="去块滤波"
68
-AMF.H264.DeblockingFilter.Description="设置解码器允许使用的标记, 用于编码流去块滤波器."
69
-AMF.H264.SlicesPerFrame="每帧的切片数"
70
-AMF.H264.SlicesPerFrame.Description="使用固定切片编码而不动态切片编码.\n可以帮助用大分辨率和帧率, 由于它允许更多的数据存储在相同的 profile level, 但大多时候会对质量有负面影响."
71
-AMF.H264.IntraRefreshNumMBsPerSlot="每个槽的内部宏块刷新数量"
72
-AMF.H264.IntraRefreshNumMBsPerSlot.Description="应该允许每个插槽中多少个宏块用于帧内刷新编码.\n帧内刷新编码允许更快的寻找和解码, 以一个较高的比特率为代价, 由于需要存储额外的数据.\n 推流时保持为默认值."
73
-AMF.H264.ScanType="扫描类型"
74
-AMF.H264.ScanType.Description="使用哪种扫描方法, 通常设置为'Progressive'."
75
-AMF.H264.ScanType.Progressive="渐进"
76
-AMF.H264.ScanType.Interlaced="交错"
77
-AMF.H264.QualityPreset="质量预设"
78
-AMF.H264.QualityPreset.Description="哪种质量预设 AMF 应该尝试对于目标:\n-'速度' 是最快但有最差的质量,\n-'平衡' 是 '速度' 和 '质量' 之间, 提供一个两者之间的较好的平衡,\n-'质量' 给出了最好的质量对于给定的比特率."
79
-AMF.H264.QualityPreset.Speed="速度"
80
-AMF.H264.QualityPreset.Balanced="平衡"
81
-AMF.H264.QualityPreset.Quality="质量"
82
-AMF.H264.MotionEstimation="移动侦测"
83
-AMF.H264.MotionEstimation.Description="运动侦测允许编码器通过估计一个像素去了哪里来降低比特率."
84
-AMF.H264.MotionEstimation.None="无"
85
-AMF.H264.MotionEstimation.Half="半像素"
86
-AMF.H264.MotionEstimation.Quarter="四分之一像素"
87
-AMF.H264.MotionEstimation.Both="半&四分之一像素"
88
-AMF.H264.CABAC="上下文自适应二进制算术编码 (CABAC)"
89
-AMF.H264.CABAC.Description="使用 CABAC(Context Adaptive Binary Arithmethic Coding) 取代 CALV.\n 不影响质量但是对压缩有帮助. 平均, 可以预期有 5% 更好的压缩率."
90
-AMF.H264.MemoryType="内存类型"
91
-AMF.H264.MemoryType.Description="在提交给编码器之前应该如何存储帧:\n-'自动' 选择最佳可用内存后端类型,\n- '主机' 使用系统内存,\n- 'DirectX 9' 使用 DirectX 接口来提交, \n- 'DirectX 11' 使用 DirectX 来提交, \n 'OpenGL' 使用 OpenGL 接口来提交.\n\n 'Host' 对于大多数系统不够好, 但 DirectX 可以偶尔缓解高负载的情况."
92
-AMF.H264.SurfaceFormat="表面格式"
93
-AMF.H264.SurfaceFormat.Description="什么接口格式用于编码.\n 只有 NV12 本地支持, 其他类型需要转换."
94
-AMF.H264.View="查看模式"
95
-AMF.H264.View.Description="哪些属性应该是可见的. 当使用 '专家' 或者 '大师' 模式时, 您将不会得到支持."
96
-AMF.H264.View.Basic="基本"
97
-AMF.H264.View.Advanced="高级"
98
-AMF.H264.View.Expert="专家"
99
-AMF.H264.View.Master="主"
100
-AMF.H264.UnlockProperties="解锁属性"
101
-AMF.H264.UnlockProperties.Description="解锁给他们完整范围的某些属性, 而不是将他们局限到一定范围内."
102
-AMF.H264.Debug="调试"
103
-AMF.H264.Debug.Description="启用附加调试日志记录, 应该是启用的, 无论何时您需要此编码器的支持."
104
-AMF.Util.Default="默认"
105
-AMF.Util.Automatic="自动"
106
-AMF.Util.Manual="手动"
107
-AMF.Util.Toggle.Disabled="禁用"
108
-AMF.Util.Toggle.Enabled="启用"
109
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Resources/locale/zh-TW.ini
Deleted
41
1
2
-AMF.H264.Usage.Transcoding="轉碼"
3
-AMF.H264.Usage.UltraLowLatency="超低延遲"
4
-AMF.H264.Usage.LowLatency="低延遲"
5
-AMF.H264.Profile="設定檔"
6
-AMF.H264.ProfileLevel="設定檔級別"
7
-AMF.H264.RateControlMethod="速率控制方法"
8
-AMF.H264.RateControlMethod.CQP="固定 QP (CQP)"
9
-AMF.H264.RateControlMethod.CBR="固定位元率 (CBR)"
10
-AMF.H264.RateControlMethod.VBR.Peak="可變位元率 (限制最大位元率) (VBR)"
11
-AMF.H264.RateControlMethod.VBR.Latency="可變位元率 (限制延遲) (VBR)"
12
-AMF.H264.Bitrate.Target="目標位元率"
13
-AMF.H264.Bitrate.Peak="最大位元率"
14
-AMF.H264.QP.Minimum="最低 QP 值"
15
-AMF.H264.QP.Maximum="最大 QP 值"
16
-AMF.H264.QP.IFrame="I-訊框 QP"
17
-AMF.H264.QP.PFrame="P-訊框 QP"
18
-AMF.H264.QP.BFrame="B-訊框 QP"
19
-AMF.H264.QP.BPictureDelta="B-Picture Delta QP"
20
-AMF.H264.QP.ReferenceBPictureDelta="Reference B-Picture Delta QP"
21
-AMF.H264.FillerData="填充資料"
22
-AMF.H264.FrameSkipping="省略訊框"
23
-AMF.H264.EnforceHRDCompatibility="與 HRD 相容"
24
-AMF.H264.BPicture.Pattern="B-Picture 模式"
25
-AMF.H264.BPicture.Reference="B-Picture 參照"
26
-AMF.H264.DeblockingFilter="去塊狀色斑濾鏡"
27
-AMF.H264.ScanType="掃描類型"
28
-AMF.H264.ScanType.Progressive="漸進式"
29
-AMF.H264.ScanType.Interlaced="交错式"
30
-AMF.H264.QualityPreset="預設品質"
31
-AMF.H264.QualityPreset.Speed="速度"
32
-AMF.H264.QualityPreset.Balanced="平衡"
33
-AMF.H264.QualityPreset.Quality="品質"
34
-AMF.H264.CABAC="前文參考之適應性二元算術編碼 (CABAC)"
35
-AMF.H264.MemoryType="記憶體類型"
36
-AMF.H264.SurfaceFormat="表面格式"
37
-AMF.Util.Default="預設"
38
-AMF.Util.Automatic="自動"
39
-AMF.Util.Toggle.Disabled="停用"
40
-AMF.Util.Toggle.Enabled="啟用"
41
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Source
Deleted
2
1
-(directory)
2
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Source/amd-amf-vce-capabilities.cpp
Deleted
201
1
2
-/*
3
-MIT License
4
-
5
-Copyright (c) 2016 Michael Fabian Dirks
6
-
7
-Permission is hereby granted, free of charge, to any person obtaining a copy
8
-of this software and associated documentation files (the "Software"), to deal
9
-in the Software without restriction, including without limitation the rights
10
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
-copies of the Software, and to permit persons to whom the Software is
12
-furnished to do so, subject to the following conditions:
13
-
14
-The above copyright notice and this permission notice shall be included in all
15
-copies or substantial portions of the Software.
16
-
17
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
-SOFTWARE.
24
-*/
25
-
26
-#pragma once
27
-
28
-//////////////////////////////////////////////////////////////////////////
29
-// Includes
30
-//////////////////////////////////////////////////////////////////////////
31
-#include <string>
32
-#include <sstream>
33
-
34
-#include "amd-amf-vce-capabilities.h"
35
-
36
-//////////////////////////////////////////////////////////////////////////
37
-// Code
38
-//////////////////////////////////////////////////////////////////////////
39
-
40
-std::shared_ptr<Plugin::AMD::VCECapabilities> Plugin::AMD::VCECapabilities::GetInstance() {
41
- static std::shared_ptr<VCECapabilities> __instance = std::make_shared<VCECapabilities>();
42
- static std::mutex __mutex;
43
-
44
- try {
45
- const std::lock_guard<std::mutex> lock(__mutex);
46
- return __instance;
47
- } catch (...) {
48
- return nullptr;
49
- }
50
-}
51
-
52
-void Plugin::AMD::VCECapabilities::ReportCapabilities() {
53
- static std::vector<char> msgBuf(8192);
54
-
55
- //////////////////////////////////////////////////////////////////////////
56
- // Report Capabilities to log file first.
57
- //////////////////////////////////////////////////////////////////////////
58
- #pragma region Capability Reporting
59
-
60
- AMF_LOG_INFO("Gathering Capability Information...");
61
- auto caps = VCECapabilities::GetInstance();
62
-
63
- AMF_LOG_INFO(" %4s | %8s | %11s | %8s | %11s | %9s | %7s | %11s | %7s | %3s | %10s ",
64
- "Type",
65
- "Acc.Type",
66
- "Max Bitrate",
67
- "Stream #",
68
- "Max Profile",
69
- "Max Level",
70
- "BFrames",
71
- "Ref. Frames",
72
- "Layer #",
73
- "FSM",
74
- "Instance #");
75
-
76
- VCECapabilities::EncoderCaps* capsEnc[] = { &caps->m_AVCCaps, &caps->m_SVCCaps, &caps->m_HEVCCaps };
77
- for (uint8_t i = 0; i < 3; i++) {
78
- // Encoder Acceleration
79
- char* accelType = "";
80
- switch (capsEnc[i]->acceleration_type) {
81
- case amf::AMF_ACCEL_NOT_SUPPORTED:
82
- accelType = "None";
83
- break;
84
- case amf::AMF_ACCEL_HARDWARE:
85
- accelType = "Hardware";
86
- break;
87
- case amf::AMF_ACCEL_GPU:
88
- accelType = "GPU";
89
- break;
90
- case amf::AMF_ACCEL_SOFTWARE:
91
- accelType = "Software";
92
- break;
93
- }
94
-
95
- // Print to log
96
- sprintf_s(msgBuf.data(), msgBuf.size(),
97
- " %4s | %8s | %11d | %8d | %11d | %9d | %7s | %4d - %4d | %7d | %3s | %10d ",
98
- (i == 0 ? "AVC" : (i == 1 ? "SVC" : "HEVC")),
99
- accelType,
100
- capsEnc[i]->maxBitrate,
101
- capsEnc[i]->maxNumOfStreams,
102
- capsEnc[i]->maxProfile,
103
- capsEnc[i]->maxProfileLevel,
104
- capsEnc[i]->supportsBFrames ? "Yes" : "No",
105
- capsEnc[i]->minReferenceFrames, capsEnc[i]->maxReferenceFrames,
106
- capsEnc[i]->maxTemporalLayers,
107
- capsEnc[i]->supportsFixedSliceMode ? "Yes" : "No",
108
- capsEnc[i]->maxNumOfHwInstances);
109
- AMF_LOG_INFO("%s", msgBuf.data());
110
- }
111
-
112
- // Type | Flow | Min. Res. | Max. Res. | S.I | Align | Formats | Surface Types
113
- // | Input | 64x 64 | 4096x4096 | Yes | 8 | ... | ...
114
- // | Output | 64x 64 | 4096x4096 | No | 8 | ... | ...
115
- AMF_LOG_INFO(" %4s | %6s | %9s | %9s | %3s | %5s | %7s | %12s",
116
- "Type",
117
- "Flow",
118
- "Min. Res.",
119
- "Max. Res.",
120
- "S.I",
121
- "Align",
122
- "Formats",
123
- "Memory Types");
124
- for (uint8_t i = 0; i < 3; i++) {
125
- VCECapabilities::EncoderCaps::IOCaps* capsIO[2] = { &capsEnc[i]->input, &capsEnc[i]->output };
126
- for (uint8_t j = 0; j < 2; j++) {
127
- std::shared_ptr<AMF> t_amf = AMF::GetInstance();
128
- std::stringstream formats, memtypes;
129
-
130
- // Surface Formats
131
- for (uint32_t k = 0; k < capsIO[j]->formats.size(); k++) {
132
- wcstombs(msgBuf.data(), t_amf->GetTrace()->SurfaceGetFormatName(capsIO[j]->formats[k].first), 1024);
133
- formats << msgBuf.data();
134
- if (capsIO[j]->formats[k].second)
135
- formats << " (Native)";
136
- if (k < capsIO[j]->formats.size() - 1)
137
- formats << ", ";
138
- }
139
-
140
- // Memory Types
141
- for (uint32_t k = 0; k < capsIO[j]->memoryTypes.size(); k++) {
142
- wcstombs(msgBuf.data(), t_amf->GetTrace()->GetMemoryTypeName(capsIO[j]->memoryTypes[k].first), 1024);
143
- memtypes << msgBuf.data();
144
- if (capsIO[j]->memoryTypes[k].second)
145
- memtypes << " (Native)";
146
- if (k < capsIO[j]->memoryTypes.size() - 1)
147
- memtypes << ", ";
148
- }
149
-
150
- // Print to log
151
- sprintf_s(msgBuf.data(), msgBuf.size(),
152
- " %4s | %6s | %4dx%4d | %4dx%4d | %3s | %5d | %7s | %12s",
153
- (i == 0 ? "AVC" : (i == 1 ? "SVC" : "HEVC")),
154
- (j == 0 ? "Input" : "Output"),
155
- capsIO[j]->minWidth, capsIO[j]->minHeight,
156
- capsIO[j]->maxWidth, capsIO[j]->maxHeight,
157
- capsIO[j]->isInterlacedSupported ? "Yes" : "No",
158
- capsIO[j]->verticalAlignment,
159
- formats.str().c_str(),
160
- memtypes.str().c_str());
161
- AMF_LOG_INFO("%s", msgBuf.data());
162
- }
163
- }
164
- #pragma endregion
165
-}
166
-
167
-Plugin::AMD::VCECapabilities::VCECapabilities() {
168
- RefreshCapabilities();
169
-}
170
-
171
-Plugin::AMD::VCECapabilities::~VCECapabilities() {
172
-
173
-}
174
-
175
-bool Plugin::AMD::VCECapabilities::RefreshCapabilities() {
176
- AMF_RESULT res;
177
-
178
- std::shared_ptr<AMD::AMF> l_AMF = AMD::AMF::GetInstance();
179
- amf::AMFFactory* l_AMFFactory = l_AMF->GetFactory();
180
- amf::AMFContextPtr l_AMFContext;
181
- res = l_AMFFactory->CreateContext(&l_AMFContext);
182
- if (res != AMF_OK) {
183
- AMF_LOG_ERROR("Failed to gather Capabilities, error code %d.", res);
184
- return false;
185
- }
186
-
187
- //////////////////////////////////////////////////////////////////////////
188
- // Get Encoder Capabilities
189
- //////////////////////////////////////////////////////////////////////////
190
- EncoderCaps* caps[] = { &m_AVCCaps, &m_SVCCaps, &m_HEVCCaps };
191
- const wchar_t* capsString[] = { AMFVideoEncoderVCE_AVC , AMFVideoEncoderVCE_SVC, L"AMFVideoEncoderHW_HEVC" };
192
- for (uint8_t capsIndex = 0; capsIndex < 3; capsIndex++) {
193
- // Null Values
194
- caps[capsIndex]->acceleration_type = amf::AMF_ACCEL_NOT_SUPPORTED;
195
- caps[capsIndex]->maxBitrate =
196
- caps[capsIndex]->maxNumOfStreams =
197
- caps[capsIndex]->maxProfile =
198
- caps[capsIndex]->maxProfileLevel =
199
- caps[capsIndex]->minReferenceFrames =
200
- caps[capsIndex]->maxReferenceFrames =
201
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Source/amd-amf-vce.cpp
Deleted
201
1
2
-/*
3
-MIT License
4
-
5
-Copyright (c) 2016 Michael Fabian Dirks
6
-
7
-Permission is hereby granted, free of charge, to any person obtaining a copy
8
-of this software and associated documentation files (the "Software"), to deal
9
-in the Software without restriction, including without limitation the rights
10
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
-copies of the Software, and to permit persons to whom the Software is
12
-furnished to do so, subject to the following conditions:
13
-
14
-The above copyright notice and this permission notice shall be included in all
15
-copies or substantial portions of the Software.
16
-
17
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
-SOFTWARE.
24
-*/
25
-
26
-//////////////////////////////////////////////////////////////////////////
27
-// Includes
28
-//////////////////////////////////////////////////////////////////////////
29
-#include "amd-amf-vce.h"
30
-#include "amd-amf-vce-capabilities.h"
31
-#include "misc-util.cpp"
32
-
33
-#ifdef _WIN32
34
-#include <windows.h>
35
-#include <VersionHelpers.h>
36
-
37
-#include "api-d3d9.h"
38
-#include "api-d3d11.h"
39
-#endif
40
-
41
-//////////////////////////////////////////////////////////////////////////
42
-// Code
43
-//////////////////////////////////////////////////////////////////////////
44
-
45
-// Logging and Exception Helpers
46
-static void FormatTextWithAMFError(std::vector<char>* buffer, const char* format, AMF_RESULT res) {
47
- sprintf(buffer->data(), format, Plugin::AMD::AMF::GetInstance()->GetTrace()->GetResultText(res), res);
48
-}
49
-
50
-template<typename _T>
51
-static void FormatTextWithAMFError(std::vector<char>* buffer, const char* format, _T other, AMF_RESULT res) {
52
- sprintf(buffer->data(), format, other, Plugin::AMD::AMF::GetInstance()->GetTrace()->GetResultText(res), res);
53
-}
54
-
55
-// Class
56
-void Plugin::AMD::VCEEncoder::InputThreadMain(Plugin::AMD::VCEEncoder* p_this) {
57
- p_this->InputThreadLogic();
58
-}
59
-
60
-void Plugin::AMD::VCEEncoder::OutputThreadMain(Plugin::AMD::VCEEncoder* p_this) {
61
- p_this->OutputThreadLogic();
62
-}
63
-
64
-Plugin::AMD::VCEEncoder::VCEEncoder(VCEEncoderType p_Type,
65
- VCESurfaceFormat p_SurfaceFormat /*= VCESurfaceFormat_NV12*/,
66
- VCEMemoryType p_MemoryType /*= VCEMemoryType_Auto*/,
67
- bool p_UseOpenCL /*= false*/, std::string p_DeviceUniqueId /*= ""*/) {
68
- AMF_RESULT res;
69
-
70
- AMF_LOG_INFO("<Plugin::AMD::VCEEncoder::VCEEncoder> Initializing...");
71
-
72
- // Solve the optimized away issue.
73
- m_EncoderType = p_Type;
74
- m_SurfaceFormat = p_SurfaceFormat;
75
- m_MemoryType = p_MemoryType;
76
- m_UseOpenCL = p_UseOpenCL;
77
- m_Flag_IsStarted = false;
78
- m_Flag_Threading = true;
79
- m_FrameSize.first = 64; m_FrameSize.second = 64;
80
- m_FrameRate.first = 30; m_FrameRate.second = 1;
81
- m_FrameRateDivisor = ((double_t)m_FrameRate.first / (double_t)m_FrameRate.second);
82
- m_FrameRateReverseDivisor = ((double_t)m_FrameRate.second / (double_t)m_FrameRate.first);
83
- m_InputQueueLimit = (uint32_t)(m_FrameRateDivisor * 3);
84
- m_InputQueueLastSize = 0;
85
- m_TimerPeriod = 1;
86
-
87
- // AMF
88
- m_AMF = AMF::GetInstance();
89
- m_AMFFactory = m_AMF->GetFactory();
90
- /// AMF Context
91
- res = m_AMFFactory->CreateContext(&m_AMFContext);
92
- if (res != AMF_OK) {
93
- ThrowExceptionWithAMFError("<Plugin::AMD::VCEEncoder::VCEEncoder> Creating a context object failed with error %ls (code %ld).", res);
94
- }
95
-
96
- // Initialize Memory
97
- if (m_MemoryType == VCEMemoryType_Auto) { /// Autodetect best setting depending on platform.
98
- #if (defined _WIN32) | (defined _WIN64)
99
- if (IsWindows8OrGreater()) {
100
- m_MemoryType = VCEMemoryType_DirectX11;
101
- } else if (IsWindowsXPOrGreater()) {
102
- m_MemoryType = VCEMemoryType_DirectX9;
103
- } else {
104
- m_MemoryType = VCEMemoryType_Host;
105
- }
106
- #else
107
- m_MemoryType = VCEMemoryType_OpenGL;
108
- #endif
109
- }
110
-
111
- switch (m_MemoryType) {
112
- case VCEMemoryType_Host:
113
- res = AMF_OK;
114
- break;
115
- #ifdef _WIN32
116
- case VCEMemoryType_OpenGL:
117
- if (p_DeviceUniqueId.empty()) {
118
- res = m_AMFContext->InitOpenGL(nullptr, nullptr, nullptr);
119
- } else {
120
- /*m_APIDevice = Plugin::API::OpenGL(Plugin::API::OpenGL::GetDeviceForUniqueId(p_DeviceUniqueId));
121
- res = m_AMFContext->InitOpenGL(m_APIDevice.GetContext(), nullptr, nullptr);*/
122
- }
123
- break;
124
- case VCEMemoryType_DirectX11:
125
- if (IsWindows8OrGreater()) {
126
- if (p_DeviceUniqueId.empty()) {
127
- res = m_AMFContext->InitDX11(nullptr);
128
- } else {
129
- m_APIDevice = Plugin::API::Direct3D11(Plugin::API::Direct3D11::GetDeviceForUniqueId(p_DeviceUniqueId));
130
- res = m_AMFContext->InitDX11(m_APIDevice.GetContext());
131
- }
132
- } else {
133
- AMF_LOG_ERROR("<Plugin::AMD::VCEEncoder::VCEEncoder> DirectX 11 is only supported on Windows 8 or newer, using Host Memory Type instead.");
134
- m_MemoryType = VCEMemoryType_Host;
135
- }
136
- break;
137
- case VCEMemoryType_DirectX9:
138
- if (IsWindowsXPOrGreater()) {
139
- if (p_DeviceUniqueId.empty()) {
140
- res = m_AMFContext->InitDX9(nullptr);
141
- } else {
142
- m_APIDevice = Plugin::API::Direct3D9(Plugin::API::Direct3D9::GetDeviceForUniqueId(p_DeviceUniqueId));
143
- res = m_AMFContext->InitDX9(m_APIDevice.GetContext());
144
- }
145
- } else {
146
- AMF_LOG_ERROR("<Plugin::AMD::VCEEncoder::VCEEncoder> DirectX 11 is only supported on Windows 8 or newer, using Host Memory Type instead.");
147
- m_MemoryType = VCEMemoryType_Host;
148
- }
149
- break;
150
- #endif
151
- }
152
- if (res != AMF_OK)
153
- ThrowExceptionWithAMFError("<Plugin::AMD::VCEEncoder::VCEEncoder> Initializing 3D queue failed with error %ls (code %ld).", res);
154
-
155
- if (m_UseOpenCL) {
156
- if (m_MemoryType == VCEMemoryType_Host)
157
- ThrowExceptionWithAMFError("<Plugin::AMD::VCEEncoder::VCEEncoder> Use of OpenCL without DirectX or OpenGL is not supported, error %ls (code %d).", AMF_NOT_SUPPORTED);
158
-
159
- res = m_AMFContext->InitOpenCL(nullptr);
160
- if (res != AMF_OK)
161
- ThrowExceptionWithAMFError("<Plugin::AMD::VCEEncoder::VCEEncoder> InitOpenCL failed with error %ls (code %ld).", res);
162
- m_AMFContext->GetCompute(amf::AMF_MEMORY_OPENCL, &m_AMFCompute);
163
- }
164
-
165
- /// AMF Component (Encoder)
166
- switch (p_Type) {
167
- case VCEEncoderType_AVC:
168
- res = m_AMFFactory->CreateComponent(m_AMFContext, AMFVideoEncoderVCE_AVC, &m_AMFEncoder);
169
- break;
170
- case VCEEncoderType_SVC:
171
- res = m_AMFFactory->CreateComponent(m_AMFContext, AMFVideoEncoderVCE_SVC, &m_AMFEncoder);
172
- break;
173
- case VCEEncoderType_HEVC:
174
- res = m_AMFFactory->CreateComponent(m_AMFContext, L"AMFVideoEncoderHW_HEVC", &m_AMFEncoder);
175
- break;
176
- }
177
- if (res != AMF_OK)
178
- ThrowExceptionWithAMFError("<Plugin::AMD::VCEEncoder::VCEEncoder> Creating a component object failed with error %ls (code %ld).", res);
179
-
180
- AMF_LOG_INFO("<Plugin::AMD::VCEEncoder::VCEEncoder> Initialization complete!");
181
-}
182
-
183
-Plugin::AMD::VCEEncoder::~VCEEncoder() {
184
- if (m_Flag_IsStarted)
185
- Stop();
186
-
187
- // AMF
188
- if (m_AMFEncoder) {
189
- m_AMFEncoder->Terminate();
190
- m_AMFEncoder = nullptr;
191
- }
192
- if (m_AMFContext) {
193
- m_AMFContext->Terminate();
194
- m_AMFContext = nullptr;
195
- }
196
- m_AMFFactory = nullptr;
197
-}
198
-
199
-void Plugin::AMD::VCEEncoder::Start() {
200
- static amf::AMF_SURFACE_FORMAT surfaceFormatToAMF[] = {
201
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Source/amd-amf.cpp
Deleted
201
1
2
-/*
3
-MIT License
4
-
5
-Copyright (c) 2016 Michael Fabian Dirks
6
-
7
-Permission is hereby granted, free of charge, to any person obtaining a copy
8
-of this software and associated documentation files (the "Software"), to deal
9
-in the Software without restriction, including without limitation the rights
10
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
-copies of the Software, and to permit persons to whom the Software is
12
-furnished to do so, subject to the following conditions:
13
-
14
-The above copyright notice and this permission notice shall be included in all
15
-copies or substantial portions of the Software.
16
-
17
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
-SOFTWARE.
24
-*/
25
-
26
-//////////////////////////////////////////////////////////////////////////
27
-// Includes
28
-//////////////////////////////////////////////////////////////////////////
29
-#include <vector>
30
-#include <mutex>
31
-
32
-#include "amd-amf.h"
33
-#include "windows.h"
34
-
35
-// AMD AMF SDK
36
-#include "components\Component.h"
37
-#include "components\ComponentCaps.h"
38
-#include "components\VideoEncoderVCE.h"
39
-
40
-//////////////////////////////////////////////////////////////////////////
41
-// Code
42
-//////////////////////////////////////////////////////////////////////////
43
-using namespace Plugin::AMD;
44
-
45
-class CustomWriter : public amf::AMFTraceWriter {
46
- public:
47
- virtual void Write(const wchar_t* scope, const wchar_t* message) override {
48
- const wchar_t* realmsg = &(message[(33 + wcslen(scope) + 2)]); // Skip Time & Scope
49
- size_t msgLen = wcslen(realmsg) - (sizeof(wchar_t));
50
-
51
- blog(LOG_INFO, "[%ls] %.*ls", scope, msgLen, realmsg);
52
- }
53
-
54
- virtual void Flush() override {}
55
-};
56
-
57
-std::shared_ptr<Plugin::AMD::AMF> Plugin::AMD::AMF::GetInstance() {
58
- static std::shared_ptr<AMF> __instance = std::make_shared<AMF>();
59
- static std::mutex __mutex;
60
-
61
- const std::lock_guard<std::mutex> lock(__mutex);
62
- return __instance;
63
-}
64
-
65
-Plugin::AMD::AMF::AMF() {
66
- AMF_RESULT res = AMF_OK;
67
-
68
- AMF_LOG_DEBUG("<Plugin::AMD::AMF::AMF> Initializing...");
69
-
70
- // Null Values
71
- m_TimerPeriod = 0;
72
- m_AMFModule = nullptr;
73
- m_AMFVersion_Compiler = 0;
74
- m_AMFVersion_Runtime = 0;
75
- m_AMFFactory = nullptr;
76
- m_AMFTrace = nullptr;
77
- m_AMFDebug = nullptr;
78
- AMFQueryVersion = nullptr;
79
- AMFInit = nullptr;
80
-
81
- // Load Dynamic Library
82
- m_AMFModule = LoadLibraryW(AMF_DLL_NAME);
83
- if (!m_AMFModule) {
84
- DWORD error = GetLastError();
85
- std::vector<char> buf(1024);
86
- sprintf(buf.data(), "Unable to load '%ls', error code %ld.", AMF_DLL_NAME, error);
87
- AMF_LOG_ERROR("%s", buf.data());
88
- throw std::exception(buf.data(), error);
89
- } else {
90
- std::vector<char> verbuf(GetFileVersionInfoSizeW(AMF_DLL_NAME, nullptr));
91
- GetFileVersionInfoW(AMF_DLL_NAME, 0, (DWORD)verbuf.size(), verbuf.data());
92
-
93
- void* pBlock = verbuf.data();
94
-
95
- // Read the list of languages and code pages.
96
- struct LANGANDCODEPAGE {
97
- WORD wLanguage;
98
- WORD wCodePage;
99
- } *lpTranslate;
100
- UINT cbTranslate = 1024;
101
-
102
- VerQueryValueA(pBlock, "\\VarFileInfo\\Translation", (LPVOID*)&lpTranslate, &cbTranslate);
103
-
104
- std::vector<char> buf(1024);
105
- sprintf(buf.data(), "%s%04x%04x%s",
106
- "\\StringFileInfo\\",
107
- lpTranslate[0].wLanguage,
108
- lpTranslate[0].wCodePage,
109
- "\\ProductVersion");
110
-
111
- // Retrieve file description for language and code page "i".
112
- void* lpBuffer;
113
- uint32_t dwBytes;
114
- VerQueryValueA(pBlock, buf.data(), &lpBuffer, &dwBytes);
115
-
116
- AMF_LOG_INFO("Runtime Library is on Version %.*s.", dwBytes, lpBuffer);
117
- AMF_LOG_DEBUG("<Plugin::AMD::AMF::AMF> Loaded '%ls'.", AMF_DLL_NAME);
118
- }
119
-
120
- // Find Function: Query Version
121
- AMFQueryVersion = (AMFQueryVersion_Fn)GetProcAddress(m_AMFModule, AMF_QUERY_VERSION_FUNCTION_NAME);
122
- if (!AMFQueryVersion) {
123
- DWORD error = GetLastError();
124
- std::vector<char> buf(1024);
125
- sprintf(buf.data(), "<Plugin::AMD::AMF::AMF> Finding Address of Function '%s' failed with error code %ld.", AMF_QUERY_VERSION_FUNCTION_NAME, error);
126
- AMF_LOG_ERROR("%s", buf.data());
127
- throw std::exception(buf.data(), error);
128
- }
129
-
130
- // Query Runtime Version
131
- m_AMFVersion_Compiler = AMF_FULL_VERSION;
132
- res = AMFQueryVersion(&m_AMFVersion_Runtime);
133
- if (res != AMF_OK)
134
- ThrowExceptionWithAMFError("<Plugin::AMD::AMF::AMF> Querying Version failed with error %ls (code %ld).", res);
135
- AMF_LOG_DEBUG("Runtime reports back Version %d.%d.%d.%d",
136
- (uint16_t)((m_AMFVersion_Runtime >> 48ull) & 0xFFFF),
137
- (uint16_t)((m_AMFVersion_Runtime >> 32ull) & 0xFFFF),
138
- (uint16_t)((m_AMFVersion_Runtime >> 16ull) & 0xFFFF),
139
- (uint16_t)((m_AMFVersion_Runtime & 0xFFFF)));
140
-
141
- // Find Function: Init
142
- AMFInit = (AMFInit_Fn)GetProcAddress(m_AMFModule, AMF_INIT_FUNCTION_NAME);
143
- if (!AMFInit) {
144
- DWORD error = GetLastError();
145
- std::vector<char> buf(1024);
146
- sprintf(buf.data(), "<Plugin::AMD::AMF::AMF> Finding Address of Function '%s' failed with error code %ld.", AMF_INIT_FUNCTION_NAME, error);
147
- AMF_LOG_ERROR("%s", buf.data());
148
- throw std::exception(buf.data(), error);
149
- }
150
-
151
- // Initialize AMF Libraries
152
- res = AMFInit(m_AMFVersion_Runtime, &m_AMFFactory);
153
- if (res != AMF_OK) {
154
- ThrowExceptionWithAMFError("<Plugin::AMD::AMF::AMF> Initializing AMF Library failed with error %ls (code %ld).", res);
155
- } else {
156
- AMF_LOG_DEBUG("<Plugin::AMD::AMF::AMF> AMF Library initialized.");
157
- }
158
-
159
- // Retrieve Trace Object
160
- res = m_AMFFactory->GetTrace(&m_AMFTrace);
161
- if (res != AMF_OK) {
162
- ThrowExceptionWithAMFError("<Plugin::AMD::AMF::AMF> Retrieving Trace object failed with error %ls (code %ld).", res);
163
- }
164
-
165
- // Retrieve Debug Object
166
- res = m_AMFFactory->GetDebug(&m_AMFDebug);
167
- if (res != AMF_OK) {
168
- AMF_LOG_ERROR("<Plugin::AMD::AMF::AMF> Retrieving Debug object failed with error code %ls (code %ld).", res);
169
- throw std::exception("", res);
170
- }
171
- m_AMFTrace->RegisterWriter(L"OBSWriter", new CustomWriter(), true);
172
- this->EnableDebugTrace(false);
173
-
174
- AMF_LOG_DEBUG("<Plugin::AMD::AMF::AMF> Initialized.");
175
-}
176
-
177
-Plugin::AMD::AMF::~AMF() {
178
- AMF_LOG_DEBUG("<Plugin::AMD::AMF::AMF> Finalizing.");
179
-
180
- // Free Library again
181
- if (m_AMFModule)
182
- FreeLibrary(m_AMFModule);
183
-
184
- // Null Values
185
- m_TimerPeriod = 0;
186
- m_AMFModule = nullptr;
187
- m_AMFVersion_Compiler = 0;
188
- m_AMFVersion_Runtime = 0;
189
- m_AMFFactory = nullptr;
190
- m_AMFTrace = nullptr;
191
- m_AMFDebug = nullptr;
192
- AMFQueryVersion = nullptr;
193
- AMFInit = nullptr;
194
-
195
- AMF_LOG_DEBUG("<Plugin::AMD::AMF::AMF> Finalized.");
196
-}
197
-
198
-amf::AMFFactory* Plugin::AMD::AMF::GetFactory() {
199
- return m_AMFFactory;
200
-}
201
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Source/api-base.cpp
Deleted
68
1
2
-/*
3
-MIT License
4
-
5
-Copyright (c) 2016 Michael Fabian Dirks
6
-
7
-Permission is hereby granted, free of charge, to any person obtaining a copy
8
-of this software and associated documentation files (the "Software"), to deal
9
-in the Software without restriction, including without limitation the rights
10
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
-copies of the Software, and to permit persons to whom the Software is
12
-furnished to do so, subject to the following conditions:
13
-
14
-The above copyright notice and this permission notice shall be included in all
15
-copies or substantial portions of the Software.
16
-
17
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
-SOFTWARE.
24
-*/
25
-
26
-#pragma once
27
-//////////////////////////////////////////////////////////////////////////
28
-// Includes
29
-//////////////////////////////////////////////////////////////////////////
30
-#include "api-base.h"
31
-
32
-//////////////////////////////////////////////////////////////////////////
33
-// Code
34
-//////////////////////////////////////////////////////////////////////////
35
-
36
-Plugin::API::Device::Device() {
37
- this->Name = "";
38
- this->UniqueId = "";
39
-}
40
-
41
-Plugin::API::Device::Device(std::string Name, std::string UniqueId) {
42
- this->Name = Name;
43
- this->UniqueId = UniqueId;
44
-}
45
-
46
-Plugin::API::Device::~Device() {
47
-}
48
-
49
-std::vector<Plugin::API::Device> Plugin::API::BaseAPI::EnumerateDevices() {
50
- return std::vector<Plugin::API::Device>();
51
-}
52
-
53
-Plugin::API::BaseAPI::BaseAPI(Device device) {
54
- myDevice = device;
55
-}
56
-
57
-Plugin::API::BaseAPI::~BaseAPI() {
58
-
59
-}
60
-
61
-void* Plugin::API::BaseAPI::GetContext() {
62
- return nullptr;
63
-}
64
-
65
-Plugin::API::Device Plugin::API::BaseAPI::GetDevice() {
66
- return myDevice;
67
-}
68
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Source/api-d3d11.cpp
Deleted
201
1
2
-/*
3
-MIT License
4
-
5
-Copyright (c) 2016 Michael Fabian Dirks
6
-
7
-Permission is hereby granted, free of charge, to any person obtaining a copy
8
-of this software and associated documentation files (the "Software"), to deal
9
-in the Software without restriction, including without limitation the rights
10
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
-copies of the Software, and to permit persons to whom the Software is
12
-furnished to do so, subject to the following conditions:
13
-
14
-The above copyright notice and this permission notice shall be included in all
15
-copies or substantial portions of the Software.
16
-
17
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
-SOFTWARE.
24
-*/
25
-
26
-#ifdef _WIN32
27
-//////////////////////////////////////////////////////////////////////////
28
-// Includes
29
-//////////////////////////////////////////////////////////////////////////
30
-#include "api-d3d11.h"
31
-
32
-#include <vector>
33
-#include <string>
34
-#include <sstream>
35
-
36
-#include <dxgi.h>
37
-#include <d3d11.h>
38
-
39
-#include <mutex>
40
-
41
-//////////////////////////////////////////////////////////////////////////
42
-// Code
43
-//////////////////////////////////////////////////////////////////////////
44
-using namespace Plugin::API;
45
-
46
-class SingletonDXGI {
47
- public:
48
-
49
- #pragma region Singleton
50
- static std::shared_ptr<SingletonDXGI> GetInstance() {
51
- static std::shared_ptr<SingletonDXGI> __instance = std::make_shared<SingletonDXGI>();
52
- static std::mutex __mutex;
53
-
54
- const std::lock_guard<std::mutex> lock(__mutex);
55
- return __instance;
56
- }
57
- #pragma endregion Singleton
58
-
59
- SingletonDXGI() {
60
- hModule = LoadLibrary(TEXT("dxgi.dll"));
61
- if (hModule == 0)
62
- throw std::exception("Unable to load 'dxgi.dll'.");
63
-
64
- }
65
- ~SingletonDXGI() {
66
- if (hModule)
67
- FreeLibrary(hModule);
68
- }
69
-
70
- HRESULT CreateDXGIFactory1(REFIID riid, _Out_ void **ppFactory) {
71
- if (hModule == 0)
72
- return S_FALSE;
73
-
74
- typedef HRESULT(__stdcall *t_CreateDXGIFactory1)(REFIID, void**);
75
- t_CreateDXGIFactory1 pCreateDXGIFactory1 = (t_CreateDXGIFactory1)GetProcAddress(hModule, "CreateDXGIFactory1");
76
-
77
- if (pCreateDXGIFactory1) {
78
- return pCreateDXGIFactory1(riid, ppFactory);
79
- }
80
- return S_FALSE;
81
- }
82
-
83
- private:
84
- HMODULE hModule;
85
-};
86
-class SingletonD3D11 {
87
- public:
88
-
89
- #pragma region Singleton
90
- static std::shared_ptr<SingletonD3D11> GetInstance() {
91
- static std::shared_ptr<SingletonD3D11> __instance = std::make_shared<SingletonD3D11>();
92
- static std::mutex __mutex;
93
-
94
- const std::lock_guard<std::mutex> lock(__mutex);
95
- return __instance;
96
- }
97
- #pragma endregion Singleton
98
-
99
- SingletonD3D11() {
100
- hModule = LoadLibrary(TEXT("d3d11.dll"));
101
- if (hModule == 0)
102
- throw std::exception("Unable to load 'd3d11.dll'.");
103
-
104
- }
105
- ~SingletonD3D11() {
106
- if (hModule)
107
- FreeLibrary(hModule);
108
- }
109
-
110
- HRESULT WINAPI D3D11CreateDevice(
111
- _In_opt_ IDXGIAdapter* pAdapter,
112
- D3D_DRIVER_TYPE DriverType,
113
- HMODULE Software,
114
- UINT Flags,
115
- _In_reads_opt_(FeatureLevels) CONST D3D_FEATURE_LEVEL* pFeatureLevels,
116
- UINT FeatureLevels,
117
- UINT SDKVersion,
118
- _Out_opt_ ID3D11Device** ppDevice,
119
- _Out_opt_ D3D_FEATURE_LEVEL* pFeatureLevel,
120
- _Out_opt_ ID3D11DeviceContext** ppImmediateContext) {
121
-
122
- if (hModule == 0)
123
- return S_FALSE;
124
-
125
- typedef HRESULT(__stdcall *t_D3D11CreateDevice)(_In_opt_ IDXGIAdapter*, D3D_DRIVER_TYPE, HMODULE, UINT,
126
- CONST D3D_FEATURE_LEVEL*, UINT, UINT, _Out_opt_ ID3D11Device**,
127
- _Out_opt_ D3D_FEATURE_LEVEL*, _Out_opt_ ID3D11DeviceContext**);
128
- t_D3D11CreateDevice pD3D11CreateDevice = (t_D3D11CreateDevice)GetProcAddress(hModule, "D3D11CreateDevice");
129
-
130
- if (pD3D11CreateDevice) {
131
- return pD3D11CreateDevice(pAdapter, DriverType, Software, Flags, pFeatureLevels, FeatureLevels,
132
- SDKVersion, ppDevice, pFeatureLevel, ppImmediateContext);
133
- }
134
- return S_FALSE;
135
- }
136
-
137
- private:
138
- HMODULE hModule;
139
-};
140
-
141
-Plugin::API::Device BuildDeviceFromAdapter(DXGI_ADAPTER_DESC1* pAdapter) {
142
- if (pAdapter == nullptr)
143
- return Device("INVALID DEVICE", "");
144
-
145
- std::vector<char> uidBuf(1024);
146
- sprintf(uidBuf.data(), "%ld:%ld:%ld:%ld",
147
- pAdapter->VendorId,
148
- pAdapter->DeviceId,
149
- pAdapter->SubSysId,
150
- pAdapter->Revision);
151
-
152
- std::vector<char> nameBuf(1024);
153
- wcstombs(nameBuf.data(), pAdapter->Description, 1024);
154
-
155
- return Device(std::string(nameBuf.data()), std::string(uidBuf.data()));
156
-}
157
-
158
-std::vector<Plugin::API::Device> Plugin::API::Direct3D11::EnumerateDevices() {
159
- std::vector<Plugin::API::Device> devices = std::vector<Plugin::API::Device>();
160
-
161
- IDXGIFactory1* pFactory = NULL;
162
- auto singletonDXGI = SingletonDXGI::GetInstance();
163
- HRESULT hr = singletonDXGI->CreateDXGIFactory1(__uuidof(IDXGIFactory1), (void**)(&pFactory));
164
- if (FAILED(hr)) {
165
- return devices;
166
- }
167
-
168
- IDXGIAdapter1* pAdapter = NULL;
169
- for (uint32_t iAdapterIndex = 0; pFactory->EnumAdapters1(iAdapterIndex, &pAdapter) != DXGI_ERROR_NOT_FOUND; iAdapterIndex++) {
170
- DXGI_ADAPTER_DESC1 adapterDesc = DXGI_ADAPTER_DESC1();
171
- std::memset(&adapterDesc, 0, sizeof(DXGI_ADAPTER_DESC1));
172
-
173
- if (pAdapter->GetDesc1(&adapterDesc) == S_OK) {
174
- // Only allow AMD devices to be listed here.
175
- if (adapterDesc.VendorId != 0x1002)
176
- continue;
177
-
178
- devices.push_back(BuildDeviceFromAdapter(&adapterDesc));
179
- }
180
- }
181
-
182
- pFactory->Release();
183
-
184
- return devices;
185
-}
186
-
187
-Plugin::API::Device Plugin::API::Direct3D11::GetDeviceForUniqueId(std::string uniqueId) {
188
- Plugin::API::Device device = Device("", "");
189
-
190
- IDXGIFactory1* pFactory = NULL;
191
- auto singletonDXGI = SingletonDXGI::GetInstance();
192
- HRESULT hr = singletonDXGI->CreateDXGIFactory1(__uuidof(IDXGIFactory1), (void**)(&pFactory));
193
- if (FAILED(hr)) {
194
- return device;
195
- }
196
-
197
- IDXGIAdapter1* pAdapter = NULL;
198
- for (uint32_t iAdapterIndex = 0; pFactory->EnumAdapters1(iAdapterIndex, &pAdapter) != DXGI_ERROR_NOT_FOUND; iAdapterIndex++) {
199
- DXGI_ADAPTER_DESC1 adapterDesc = DXGI_ADAPTER_DESC1();
200
- std::memset(&adapterDesc, 0, sizeof(DXGI_ADAPTER_DESC1));
201
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Source/api-d3d9.cpp
Deleted
199
1
2
-/*
3
-MIT License
4
-
5
-Copyright (c) 2016 Michael Fabian Dirks
6
-
7
-Permission is hereby granted, free of charge, to any person obtaining a copy
8
-of this software and associated documentation files (the "Software"), to deal
9
-in the Software without restriction, including without limitation the rights
10
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
-copies of the Software, and to permit persons to whom the Software is
12
-furnished to do so, subject to the following conditions:
13
-
14
-The above copyright notice and this permission notice shall be included in all
15
-copies or substantial portions of the Software.
16
-
17
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
-SOFTWARE.
24
-*/
25
-
26
-#ifdef _WIN32
27
-//////////////////////////////////////////////////////////////////////////
28
-// Includes
29
-//////////////////////////////////////////////////////////////////////////
30
-#include "api-d3d9.h"
31
-
32
-//////////////////////////////////////////////////////////////////////////
33
-// Code
34
-//////////////////////////////////////////////////////////////////////////
35
-using namespace Plugin::API;
36
-
37
-Plugin::API::Device BuildDeviceFromAdapter(D3DADAPTER_IDENTIFIER9* pAdapter) {
38
- if (pAdapter == nullptr)
39
- return Device("INVALID DEVICE", "");
40
-
41
- std::vector<char> uidBuf(1024);
42
- sprintf(uidBuf.data(), "%ld:%ld:%ld:%ld",
43
- pAdapter->VendorId,
44
- pAdapter->DeviceId,
45
- pAdapter->SubSysId,
46
- pAdapter->Revision);
47
-
48
- std::vector<char> nameBuf(1024);
49
- sprintf(nameBuf.data(), "%s (%s)",
50
- pAdapter->DeviceName,
51
- pAdapter->Description);
52
-
53
- return Device(std::string(nameBuf.data()), std::string(uidBuf.data()));
54
-}
55
-
56
-
57
-std::vector<Plugin::API::Device> Plugin::API::Direct3D9::EnumerateDevices() {
58
- std::vector<Plugin::API::Device> devices = std::vector<Plugin::API::Device>();
59
-
60
- IDirect3D9* pDirect3D = Direct3DCreate9(D3D_SDK_VERSION);
61
-
62
- uint32_t adapterCount = pDirect3D->GetAdapterCount();
63
- for (uint32_t adapterIndex = 0; adapterIndex < adapterCount; adapterIndex++) {
64
- D3DADAPTER_IDENTIFIER9 adapterDesc = D3DADAPTER_IDENTIFIER9();
65
- pDirect3D->GetAdapterIdentifier(adapterIndex, 0, &adapterDesc);
66
-
67
- if (adapterDesc.VendorId != 0x1002)
68
- continue;
69
-
70
- Device device = BuildDeviceFromAdapter(&adapterDesc);
71
- devices.push_back(device);
72
- }
73
-
74
- pDirect3D->Release();
75
-
76
- return devices;
77
-}
78
-
79
-Plugin::API::Device Plugin::API::Direct3D9::GetDeviceForUniqueId(std::string uniqueId) {
80
- Plugin::API::Device device = Device("", "");
81
-
82
- IDirect3D9* pDirect3D = Direct3DCreate9(D3D_SDK_VERSION);
83
-
84
- uint32_t adapterCount = pDirect3D->GetAdapterCount();
85
- for (uint32_t adapterIndex = 0; adapterIndex <= adapterCount; adapterIndex++) {
86
- D3DADAPTER_IDENTIFIER9 adapterDesc = D3DADAPTER_IDENTIFIER9();
87
- pDirect3D->GetAdapterIdentifier(adapterIndex, 0, &adapterDesc);
88
-
89
- if (adapterDesc.VendorId != 0x1002)
90
- continue;
91
-
92
- Device device2 = BuildDeviceFromAdapter(&adapterDesc);
93
- if (device2.UniqueId == uniqueId)
94
- device = device2;
95
- }
96
-
97
- pDirect3D->Release();
98
-
99
- return device;
100
-}
101
-
102
-struct EnumWindowsData {
103
- DWORD processId;
104
- HWND bestWindowId;
105
-};
106
-
107
-BOOL CALLBACK EnumWindowsCallback(HWND handle, LPARAM lParam) {
108
- EnumWindowsData* data = (EnumWindowsData*)lParam;
109
-
110
- DWORD processId;
111
- GetWindowThreadProcessId(handle, &processId);
112
- if ((processId == data->processId)
113
- && (GetWindow(handle, GW_OWNER) == (HWND)0)
114
- && (IsWindowVisible(handle))) {
115
- return TRUE;
116
- }
117
- data->bestWindowId = handle;
118
- return FALSE;
119
-}
120
-
121
-Plugin::API::Direct3D9::Direct3D9(Device device) : BaseAPI(device) {
122
- pDirect3D = Direct3DCreate9(D3D_SDK_VERSION);
123
- if (!pDirect3D)
124
- throw std::exception("Unable to create D3D9 driver.");
125
-
126
- // Find Adapter Index
127
- uint32_t usedAdapter = 0;
128
- uint32_t adapterCount = pDirect3D->GetAdapterCount();
129
- for (uint32_t adapterIndex = 0; adapterIndex <= adapterCount; adapterIndex++) {
130
- D3DADAPTER_IDENTIFIER9 adapterDesc = D3DADAPTER_IDENTIFIER9();
131
- pDirect3D->GetAdapterIdentifier(adapterIndex, 0, &adapterDesc);
132
-
133
- if (adapterDesc.VendorId != 0x1002)
134
- continue;
135
-
136
- Device device2 = BuildDeviceFromAdapter(&adapterDesc);
137
- if (device2.UniqueId == device.UniqueId) {
138
- usedAdapter = adapterIndex++;
139
- break;
140
- }
141
- }
142
-
143
- EnumWindowsData data = EnumWindowsData();
144
- data.processId = GetCurrentProcessId();
145
- EnumWindows(EnumWindowsCallback, (LPARAM)&data);
146
-
147
- D3DPRESENT_PARAMETERS pPresentParameter = D3DPRESENT_PARAMETERS();
148
- pPresentParameter.BackBufferWidth = 1280;
149
- pPresentParameter.BackBufferHeight = 720;
150
- pPresentParameter.BackBufferFormat = D3DFORMAT::D3DFMT_R8G8B8;
151
- pPresentParameter.BackBufferCount = 2;
152
- pPresentParameter.MultiSampleType = D3DMULTISAMPLE_TYPE::D3DMULTISAMPLE_NONE;
153
- pPresentParameter.MultiSampleQuality = 0;
154
- pPresentParameter.SwapEffect = D3DSWAPEFFECT::D3DSWAPEFFECT_DISCARD;
155
- pPresentParameter.hDeviceWindow = data.bestWindowId;
156
- pPresentParameter.Windowed = TRUE;
157
- pPresentParameter.EnableAutoDepthStencil = FALSE;
158
- pPresentParameter.AutoDepthStencilFormat = D3DFORMAT::D3DFMT_A1;
159
- pPresentParameter.Flags = D3DPRESENTFLAG_VIDEO;
160
- pPresentParameter.FullScreen_RefreshRateInHz = 0;
161
- pPresentParameter.PresentationInterval = 1;
162
-
163
- HRESULT hr = pDirect3D->CreateDevice(usedAdapter,
164
- D3DDEVTYPE_HAL,
165
- data.bestWindowId,
166
- D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX | D3DCREATE_MULTITHREADED | D3DCREATE_PUREDEVICE | D3DCREATE_MIXED_VERTEXPROCESSING | D3DCREATE_NOWINDOWCHANGES,
167
- &pPresentParameter,
168
- &pDirect3DDevice);
169
- switch (hr) {
170
- case D3DERR_DEVICELOST:
171
- throw std::exception("D3DERR_DEVICELOST");
172
- break;
173
- case D3DERR_INVALIDCALL:
174
- throw std::exception("D3DERR_INVALIDCALL");
175
- break;
176
- case D3DERR_NOTAVAILABLE:
177
- throw std::exception("D3DERR_NOTAVAILABLE");
178
- break;
179
- case D3DERR_OUTOFVIDEOMEMORY:
180
- throw std::exception("D3DERR_OUTOFVIDEOMEMORY");
181
- break;
182
- }
183
- if (FAILED(hr))
184
- throw std::exception("Unable to create D3D9 device.");
185
-}
186
-
187
-Plugin::API::Direct3D9::~Direct3D9() {
188
- if (pDirect3DDevice)
189
- pDirect3DDevice->Release();
190
-
191
- if (pDirect3D)
192
- pDirect3D->Release();
193
-}
194
-
195
-void* Plugin::API::Direct3D9::GetContext() {
196
- return pDirect3DDevice;
197
-}
198
-#endif
199
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Source/enc-h264.cpp
Deleted
201
1
2
-/*
3
-MIT License
4
-
5
-Copyright (c) 2016 Michael Fabian Dirks
6
-
7
-Permission is hereby granted, free of charge, to any person obtaining a copy
8
-of this software and associated documentation files (the "Software"), to deal
9
-in the Software without restriction, including without limitation the rights
10
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
-copies of the Software, and to permit persons to whom the Software is
12
-furnished to do so, subject to the following conditions:
13
-
14
-The above copyright notice and this permission notice shall be included in all
15
-copies or substantial portions of the Software.
16
-
17
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
-SOFTWARE.
24
-*/
25
-
26
-#pragma once
27
-
28
-//////////////////////////////////////////////////////////////////////////
29
-// Includes
30
-//////////////////////////////////////////////////////////////////////////
31
-#include "enc-h264.h"
32
-#include "misc-util.cpp"
33
-
34
-#if (defined _WIN32) | (defined _WIN64)
35
-#include <VersionHelpers.h>
36
-
37
-#include "api-d3d9.h"
38
-#include "api-d3d11.h"
39
-#endif
40
-
41
-//////////////////////////////////////////////////////////////////////////
42
-// Code
43
-//////////////////////////////////////////////////////////////////////////
44
-using namespace Plugin;
45
-using namespace Plugin::AMD;
46
-using namespace Plugin::Interface;
47
-
48
-enum Presets {
49
- None = -1,
50
- Default = 0,
51
- Recording,
52
- HighQuality,
53
- Indistinguishable,
54
- Lossless,
55
- Twitch,
56
- YouTube,
57
-};
58
-enum ViewMode {
59
- Basic,
60
- Advanced,
61
- Expert,
62
- Master
63
-};
64
-
65
-void Plugin::Interface::H264Interface::encoder_register() {
66
- static obs_encoder_info* encoder_info = new obs_encoder_info();
67
- static const char* encoder_name = "amd_amf_h264";
68
- static const char* encoder_codec = "h264";
69
-
70
- std::memset(encoder_info, 0, sizeof(obs_encoder_info));
71
-
72
- // Initialize Structure
73
- encoder_info->id = encoder_name;
74
- encoder_info->type = obs_encoder_type::OBS_ENCODER_VIDEO;
75
- encoder_info->codec = encoder_codec;
76
-
77
- // Functions
78
- encoder_info->get_name = &get_name;
79
- encoder_info->get_defaults = &get_defaults;
80
- encoder_info->get_properties = &get_properties;
81
- encoder_info->create = &create;
82
- encoder_info->destroy = &destroy;
83
- encoder_info->encode = &encode;
84
- encoder_info->update = &update;
85
- encoder_info->get_video_info = &get_video_info;
86
- encoder_info->get_extra_data = &get_extra_data;
87
-
88
- obs_register_encoder(encoder_info);
89
-
90
- //////////////////////////////////////////////////////////////////////////
91
- // Deprecated old Encoder
92
- static obs_encoder_info* encoder_info_simple = new obs_encoder_info();
93
- static const char* encoder_name_simple = "amd_amf_h264_simple";
94
-
95
- std::memset(encoder_info_simple, 0, sizeof(obs_encoder_info));
96
-
97
- // Initialize Structure
98
- encoder_info_simple->id = encoder_name_simple;
99
- encoder_info_simple->type = obs_encoder_type::OBS_ENCODER_VIDEO;
100
- encoder_info_simple->codec = encoder_codec;
101
-
102
- // Functions
103
- encoder_info_simple->get_name = &get_name_simple;
104
- encoder_info_simple->get_defaults = &get_defaults;
105
- encoder_info_simple->get_properties = &get_properties;
106
- encoder_info_simple->create = &create;
107
- encoder_info_simple->destroy = &destroy;
108
- encoder_info_simple->encode = &encode;
109
- encoder_info_simple->update = &update;
110
- encoder_info_simple->get_video_info = &get_video_info;
111
- encoder_info_simple->get_extra_data = &get_extra_data;
112
-
113
- obs_register_encoder(encoder_info_simple);
114
- //////////////////////////////////////////////////////////////////////////
115
-}
116
-
117
-const char* Plugin::Interface::H264Interface::get_name(void*) {
118
- static const char* name = "H264 Encoder (AMD Advanced Media Framework)";
119
- return name;
120
-}
121
-
122
-//////////////////////////////////////////////////////////////////////////
123
-// Deprecated old Encoder
124
-const char* Plugin::Interface::H264Interface::get_name_simple(void*) {
125
- static const char* name = "[DEPRECATED] H264 Encoder (AMD Advanced Media Framework)";
126
- return name;
127
-}
128
-//////////////////////////////////////////////////////////////////////////
129
-void* Plugin::Interface::H264Interface::create(obs_data_t* settings, obs_encoder_t* encoder) {
130
- try {
131
- AMF_LOG_INFO("Starting up...");
132
- Plugin::Interface::H264Interface* enc = new Plugin::Interface::H264Interface(settings, encoder);
133
- return enc;
134
- } catch (std::exception e) {
135
- AMF_LOG_ERROR("Exception: %s", e.what());
136
- AMF_LOG_ERROR("Unable to create Encoder, see log for more information.");
137
- return NULL;
138
- } catch (...) {
139
- AMF_LOG_ERROR("Unhandled Exception during start up.");
140
- return NULL;
141
- }
142
-}
143
-
144
-#pragma warning( push )
145
-#pragma warning( disable: 4702 )
146
-void Plugin::Interface::H264Interface::destroy(void* data) {
147
- try {
148
- AMF_LOG_INFO("Shutting down...");
149
- Plugin::Interface::H264Interface* enc = static_cast<Plugin::Interface::H264Interface*>(data);
150
- delete enc;
151
- data = nullptr;
152
- } catch (std::exception e) {
153
- AMF_LOG_ERROR("Exception: %s", e.what());
154
- AMF_LOG_ERROR("Unable to destroy Encoder, see log for more information.");
155
- } catch (...) {
156
- AMF_LOG_ERROR("Unhandled Exception during shut down.");
157
- }
158
-}
159
-#pragma warning( pop )
160
-
161
-bool Plugin::Interface::H264Interface::encode(void *data, struct encoder_frame *frame, struct encoder_packet *packet, bool *received_packet) {
162
- try {
163
- return static_cast<Plugin::Interface::H264Interface*>(data)->encode(frame, packet, received_packet);
164
- } catch (std::exception e) {
165
- AMF_LOG_ERROR("Exception: %s", e.what());
166
- AMF_LOG_ERROR("Unable to encode, see log for more information.");
167
- return false;
168
- } catch (...) {
169
- throw;
170
- }
171
-}
172
-
173
-void Plugin::Interface::H264Interface::get_defaults(obs_data_t *data) {
174
- #pragma region OBS - Enforce Streaming Service Restrictions
175
- // OBS - Enforce Streaming Service Restrictions
176
- obs_data_set_default_int(data, "bitrate", -1);
177
- obs_data_set_default_int(data, "keyint_sec", -1);
178
- obs_data_set_default_string(data, "rate_control", "");
179
- obs_data_set_default_string(data, "profile", "");
180
- obs_data_set_default_string(data, "preset", "");
181
- obs_data_set_int(data, "bitrate", -1);
182
- obs_data_set_int(data, "keyint_sec", -1);
183
- obs_data_set_string(data, "rate_control", "");
184
- obs_data_set_string(data, "profile", "");
185
- obs_data_set_string(data, "preset", "");
186
- #pragma endregion OBS - Enforce Streaming Service Restrictions
187
-
188
- obs_data_set_default_int(data, AMF_H264_PRESET, -1);
189
-
190
- // Static Properties
191
- obs_data_set_default_int(data, AMF_H264_USAGE, VCEUsage_Transcoding);
192
- obs_data_set_default_int(data, AMF_H264_PROFILE, VCEProfile_Main);
193
- obs_data_set_default_int(data, AMF_H264_PROFILELEVEL, VCEProfileLevel_Automatic);
194
- obs_data_set_default_int(data, AMF_H264_MAXIMUMLTRFRAMES, 0);
195
-
196
- // Rate Control Properties
197
- obs_data_set_default_int(data, AMF_H264_RATECONTROLMETHOD, VCERateControlMethod_ConstantBitrate);
198
- obs_data_set_default_int(data, AMF_H264_BITRATE_TARGET, 3500);
199
- obs_data_set_default_int(data, AMF_H264_BITRATE_PEAK, 9000);
200
- obs_data_set_default_int(data, AMF_H264_QP_MINIMUM, 1);
201
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Source/misc-util.cpp
Deleted
88
1
2
-/*
3
-MIT License
4
-
5
-Copyright (c) 2016 Michael Fabian Dirks
6
-
7
-Permission is hereby granted, free of charge, to any person obtaining a copy
8
-of this software and associated documentation files (the "Software"), to deal
9
-in the Software without restriction, including without limitation the rights
10
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
-copies of the Software, and to permit persons to whom the Software is
12
-furnished to do so, subject to the following conditions:
13
-
14
-The above copyright notice and this permission notice shall be included in all
15
-copies or substantial portions of the Software.
16
-
17
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
-SOFTWARE.
24
-*/
25
-
26
-#pragma once
27
-//////////////////////////////////////////////////////////////////////////
28
-// Includes
29
-//////////////////////////////////////////////////////////////////////////
30
-
31
-// Plugin
32
-#include "plugin.h"
33
-#include "amd-amf.h"
34
-#include "amd-amf-vce.h"
35
-#include "amd-amf-vce-capabilities.h"
36
-
37
-//////////////////////////////////////////////////////////////////////////
38
-// Code
39
-//////////////////////////////////////////////////////////////////////////
40
-using namespace Plugin::AMD;
41
-
42
-namespace Plugin {
43
- namespace Utility {
44
- VCEProfileLevel inline GetMinimumProfileLevel(std::pair<uint32_t, uint32_t> frameSize, std::pair<uint32_t, uint32_t> frameRate) {
45
- typedef std::pair<uint32_t, uint32_t> levelRestriction;
46
- typedef std::pair<VCEProfileLevel, levelRestriction> level;
47
-
48
- static const level profileLevelLimit[] = { // [Level, [Samples, Samples_Per_Sec]]
49
- level(VCEProfileLevel_10, levelRestriction(25344, 380160)),
50
- level(VCEProfileLevel_11, levelRestriction(101376, 768000)),
51
- level(VCEProfileLevel_12, levelRestriction(101376, 1536000)),
52
- level(VCEProfileLevel_13, levelRestriction(101376, 3041280)),
53
- level(VCEProfileLevel_20, levelRestriction(101376, 3041280)),
54
- level(VCEProfileLevel_21, levelRestriction(202752, 5068800)),
55
- level(VCEProfileLevel_22, levelRestriction(414720, 5184000)),
56
- level(VCEProfileLevel_30, levelRestriction(414720, 10368000)),
57
- level(VCEProfileLevel_31, levelRestriction(921600, 27648000)),
58
- level(VCEProfileLevel_32, levelRestriction(1310720, 55296000)),
59
- //level(VCEProfileLevel_40, levelRestriction(2097152, 62914560)), // Technically identical to 4.1, but backwards compatible.
60
- level(VCEProfileLevel_41, levelRestriction(2097152, 62914560)),
61
- level(VCEProfileLevel_42, levelRestriction(2228224, 133693440)),
62
- level(VCEProfileLevel_50, levelRestriction(5652480, 150994944)),
63
- level(VCEProfileLevel_51, levelRestriction(9437184, 251658240)),
64
- level(VCEProfileLevel_52, levelRestriction(9437184, 530841600)),
65
- level((VCEProfileLevel)-1, levelRestriction(0, 0))
66
- };
67
-
68
- uint32_t samples = frameSize.first * frameSize.second;
69
- uint32_t samples_sec = (uint32_t)ceil((double_t)samples * ((double_t)frameRate.first / (double_t)frameRate.second));
70
-
71
- level curLevel = profileLevelLimit[0];
72
- for (uint32_t index = 0; curLevel.first != -1; index++) {
73
- curLevel = profileLevelLimit[index];
74
-
75
- if (samples > curLevel.second.first)
76
- continue;
77
-
78
- if (samples_sec > curLevel.second.second)
79
- continue;
80
-
81
- return curLevel.first;
82
- }
83
- return VCEProfileLevel_52;
84
- }
85
- }
86
-}
87
\ No newline at end of file
88
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/Source/plugin.cpp
Deleted
140
1
2
-/*
3
-MIT License
4
-
5
-Copyright (c) 2016 Michael Fabian Dirks
6
-
7
-Permission is hereby granted, free of charge, to any person obtaining a copy
8
-of this software and associated documentation files (the "Software"), to deal
9
-in the Software without restriction, including without limitation the rights
10
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
-copies of the Software, and to permit persons to whom the Software is
12
-furnished to do so, subject to the following conditions:
13
-
14
-The above copyright notice and this permission notice shall be included in all
15
-copies or substantial portions of the Software.
16
-
17
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
-SOFTWARE.
24
-*/
25
-
26
-#pragma once
27
-//////////////////////////////////////////////////////////////////////////
28
-// Includes
29
-//////////////////////////////////////////////////////////////////////////
30
-#include <windows.h>
31
-
32
-// Plugin
33
-#include "plugin.h"
34
-#include "amd-amf.h"
35
-#include "amd-amf-vce-capabilities.h"
36
-#include "enc-h264.h"
37
-
38
-//////////////////////////////////////////////////////////////////////////
39
-// Code
40
-//////////////////////////////////////////////////////////////////////////
41
-BOOL WINAPI DllMain(HINSTANCE, DWORD, LPVOID) {
42
- return TRUE;
43
-}
44
-
45
-OBS_DECLARE_MODULE();
46
-OBS_MODULE_AUTHOR("Michael Fabian Dirks");
47
-OBS_MODULE_USE_DEFAULT_LOCALE("enc-amf", "en-US");
48
-
49
-/**
50
-* Required: Called when the module is loaded. Use this function to load all
51
-* the sources/encoders/outputs/services for your module, or anything else that
52
-* may need loading.
53
-*
54
-* @return Return true to continue loading the module, otherwise
55
-* false to indicate failure and unload the module
56
-*/
57
-MODULE_EXPORT bool obs_module_load(void) {
58
- try {
59
- AMF_LOG_INFO("Version " PLUGIN_VERSION_TEXT);
60
-
61
- // Load AMF Runtime
62
- auto instance = Plugin::AMD::AMF::GetInstance();
63
-
64
- // Report AMF Capabilities
65
- Plugin::AMD::VCECapabilities::ReportCapabilities();
66
-
67
- // Register Encoders
68
- Plugin::Interface::H264Interface::encoder_register();
69
- } catch (...) {
70
- }
71
- return true;
72
-}
73
-
74
-/** Optional: Called when the module is unloaded. */
75
-MODULE_EXPORT void obs_module_unload(void) {}
76
-
77
-/** Optional: Returns the full name of the module */
78
-MODULE_EXPORT const char* obs_module_name() {
79
- return "AMD Media Framework Plugin";
80
-}
81
-
82
-/** Optional: Returns a description of the module */
83
-MODULE_EXPORT const char* obs_module_description() {
84
- return "AMD Media Framework Plugin";
85
-}
86
-
87
-//////////////////////////////////////////////////////////////////////////
88
-// Threading Specific
89
-//////////////////////////////////////////////////////////////////////////
90
-
91
-#if (defined _WIN32) | (defined _WIN64) // Windows
92
-#include <windows.h>
93
-
94
-const DWORD MS_VC_EXCEPTION = 0x406D1388;
95
-
96
-#pragma pack(push,8)
97
-typedef struct tagTHREADNAME_INFO {
98
- DWORD dwType; // Must be 0x1000.
99
- LPCSTR szName; // Pointer to name (in user addr space).
100
- DWORD dwThreadID; // Thread ID (-1=caller thread).
101
- DWORD dwFlags; // Reserved for future use, must be zero.
102
-} THREADNAME_INFO;
103
-#pragma pack(pop)
104
-
105
-void SetThreadName(uint32_t dwThreadID, const char* threadName) {
106
-
107
- // DWORD dwThreadID = ::GetThreadId( static_cast<HANDLE>( t.native_handle() ) );
108
-
109
- THREADNAME_INFO info;
110
- info.dwType = 0x1000;
111
- info.szName = threadName;
112
- info.dwThreadID = dwThreadID;
113
- info.dwFlags = 0;
114
-
115
- __try {
116
- RaiseException(MS_VC_EXCEPTION, 0, sizeof(info) / sizeof(ULONG_PTR), (ULONG_PTR*)&info);
117
- } __except (EXCEPTION_EXECUTE_HANDLER) {}
118
-}
119
-void SetThreadName(const char* threadName) {
120
- SetThreadName(GetCurrentThreadId(), threadName);
121
-}
122
-void SetThreadName(std::thread* thread, const char* threadName) {
123
- DWORD threadId = ::GetThreadId(static_cast<HANDLE>(thread->native_handle()));
124
- SetThreadName(threadId, threadName);
125
-}
126
-
127
-#else // Linux, Mac
128
-#include <sys/prctl.h>
129
-
130
-void SetThreadName(std::thread* thread, const char* threadName) {
131
- auto handle = thread->native_handle();
132
- pthread_setname_np(handle, threadName);
133
-}
134
-void SetThreadName(const char* threadName) {
135
- prctl(PR_SET_NAME, threadName, 0, 0, 0);
136
-}
137
-
138
-#endif
139
\ No newline at end of file
140
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/enc-amf.vcxproj
Deleted
201
1
2
-•<?xml version="1.0" encoding="utf-8"?>
3
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
4
- <ItemGroup Label="ProjectConfigurations">
5
- <ProjectConfiguration Include="Debug|Win32">
6
- <Configuration>Debug</Configuration>
7
- <Platform>Win32</Platform>
8
- </ProjectConfiguration>
9
- <ProjectConfiguration Include="Debug|x64">
10
- <Configuration>Debug</Configuration>
11
- <Platform>x64</Platform>
12
- </ProjectConfiguration>
13
- <ProjectConfiguration Include="Release|Win32">
14
- <Configuration>Release</Configuration>
15
- <Platform>Win32</Platform>
16
- </ProjectConfiguration>
17
- <ProjectConfiguration Include="Release|x64">
18
- <Configuration>Release</Configuration>
19
- <Platform>x64</Platform>
20
- </ProjectConfiguration>
21
- </ItemGroup>
22
- <PropertyGroup Label="Globals">
23
- <ProjectGuid>{49237B5E-655D-46B5-AA1F-780B387327A1}</ProjectGuid>
24
- <RootNamespace>winamf</RootNamespace>
25
- <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
26
- <ProjectName>enc-amf</ProjectName>
27
- </PropertyGroup>
28
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
29
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
30
- <ConfigurationType>DynamicLibrary</ConfigurationType>
31
- <UseDebugLibraries>true</UseDebugLibraries>
32
- <PlatformToolset>v140</PlatformToolset>
33
- <CharacterSet>MultiByte</CharacterSet>
34
- </PropertyGroup>
35
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
36
- <ConfigurationType>DynamicLibrary</ConfigurationType>
37
- <UseDebugLibraries>true</UseDebugLibraries>
38
- <PlatformToolset>v140</PlatformToolset>
39
- <CharacterSet>MultiByte</CharacterSet>
40
- </PropertyGroup>
41
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
42
- <ConfigurationType>DynamicLibrary</ConfigurationType>
43
- <UseDebugLibraries>false</UseDebugLibraries>
44
- <PlatformToolset>v140</PlatformToolset>
45
- <CharacterSet>MultiByte</CharacterSet>
46
- <WholeProgramOptimization>true</WholeProgramOptimization>
47
- </PropertyGroup>
48
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
49
- <ConfigurationType>DynamicLibrary</ConfigurationType>
50
- <UseDebugLibraries>false</UseDebugLibraries>
51
- <PlatformToolset>v140</PlatformToolset>
52
- <CharacterSet>MultiByte</CharacterSet>
53
- <WholeProgramOptimization>true</WholeProgramOptimization>
54
- </PropertyGroup>
55
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
56
- <ImportGroup Label="ExtensionSettings">
57
- </ImportGroup>
58
- <ImportGroup Label="Shared">
59
- </ImportGroup>
60
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
61
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
62
- </ImportGroup>
63
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
64
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
65
- </ImportGroup>
66
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
67
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
68
- </ImportGroup>
69
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
70
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
71
- </ImportGroup>
72
- <PropertyGroup Label="UserMacros" />
73
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
74
- <IncludePath>$(SolutionDir)#ThirdParty\AMD-AMF-SDK\amf\public\include;$(SolutionDir)#ThirdParty\OBS-Studio;$(SolutionDir)#ThirdParty;$(ProjectDir)Include;$(VC_IncludePath);$(WindowsSDK_IncludePath)</IncludePath>
75
- <SourcePath>$(ProjectDir)Source;$(VC_SourcePath)</SourcePath>
76
- <OutDir>$(ProjectDir)#Build\$(Configuration)\obs-plugins\$(PlatformArchitecture)bit\</OutDir>
77
- <IntDir>$(ProjectDir)#Intermediate\$(Configuration)\$(PlatformArchitecture)\</IntDir>
78
- <LibraryPath>$(SolutionDir)#ThirdParty\OBS-Studio\build$(PlatformArchitecture)\libobs\$(Configuration)\;$(LibraryPath)</LibraryPath>
79
- </PropertyGroup>
80
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
81
- <IncludePath>$(SolutionDir)#ThirdParty\AMD-AMF-SDK\amf\public\include;$(SolutionDir)#ThirdParty\OBS-Studio;$(SolutionDir)#ThirdParty;$(ProjectDir)Include;$(VC_IncludePath);$(WindowsSDK_IncludePath)</IncludePath>
82
- <SourcePath>$(ProjectDir)Source;$(VC_SourcePath)</SourcePath>
83
- <OutDir>$(ProjectDir)#Build\$(Configuration)\obs-plugins\$(PlatformArchitecture)bit\</OutDir>
84
- <IntDir>$(ProjectDir)#Intermediate\$(Configuration)\$(PlatformArchitecture)\</IntDir>
85
- <LibraryPath>$(SolutionDir)#ThirdParty\OBS-Studio\build$(PlatformArchitecture)\libobs\$(Configuration)\;$(LibraryPath)</LibraryPath>
86
- </PropertyGroup>
87
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
88
- <IncludePath>$(SolutionDir)#ThirdParty\AMD-AMF-SDK\amf\public\include;$(SolutionDir)#ThirdParty\OBS-Studio;$(SolutionDir)#ThirdParty;$(ProjectDir)Include;$(VC_IncludePath);$(WindowsSDK_IncludePath)</IncludePath>
89
- <SourcePath>$(ProjectDir)Source;$(VC_SourcePath)</SourcePath>
90
- <OutDir>$(ProjectDir)#Build\$(Configuration)\obs-plugins\$(PlatformArchitecture)bit\</OutDir>
91
- <IntDir>$(ProjectDir)#Intermediate\$(Configuration)\$(PlatformArchitecture)\</IntDir>
92
- <LibraryPath>$(SolutionDir)#ThirdParty\OBS-Studio\build$(PlatformArchitecture)\libobs\$(Configuration)\;$(LibraryPath)</LibraryPath>
93
- </PropertyGroup>
94
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
95
- <IncludePath>$(SolutionDir)#ThirdParty\AMD-AMF-SDK\amf\public\include;$(SolutionDir)#ThirdParty\OBS-Studio;$(SolutionDir)#ThirdParty;$(ProjectDir)Include;$(VC_IncludePath);$(WindowsSDK_IncludePath)</IncludePath>
96
- <SourcePath>$(ProjectDir)Source;$(VC_SourcePath)</SourcePath>
97
- <OutDir>$(ProjectDir)#Build\$(Configuration)\obs-plugins\$(PlatformArchitecture)bit\</OutDir>
98
- <IntDir>$(ProjectDir)#Intermediate\$(Configuration)\$(PlatformArchitecture)\</IntDir>
99
- <LibraryPath>$(SolutionDir)#ThirdParty\OBS-Studio\build$(PlatformArchitecture)\libobs\$(Configuration)\;$(LibraryPath)</LibraryPath>
100
- </PropertyGroup>
101
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
102
- <ClCompile>
103
- <WarningLevel>Level4</WarningLevel>
104
- <Optimization>Disabled</Optimization>
105
- <SDLCheck>true</SDLCheck>
106
- <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;DEBUG;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
107
- </ClCompile>
108
- <Link>
109
- <EnableCOMDATFolding>false</EnableCOMDATFolding>
110
- <AdditionalDependencies>obs.lib;version.lib;winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;dxgi.lib;%(AdditionalDependencies)</AdditionalDependencies>
111
- </Link>
112
- </ItemDefinitionGroup>
113
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
114
- <ClCompile>
115
- <WarningLevel>Level4</WarningLevel>
116
- <Optimization>Disabled</Optimization>
117
- <SDLCheck>true</SDLCheck>
118
- <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;DEBUG;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
119
- </ClCompile>
120
- <Link>
121
- <EnableCOMDATFolding>false</EnableCOMDATFolding>
122
- <AdditionalDependencies>obs.lib;version.lib;winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
123
- </Link>
124
- </ItemDefinitionGroup>
125
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
126
- <ClCompile>
127
- <WarningLevel>Level4</WarningLevel>
128
- <IntrinsicFunctions>true</IntrinsicFunctions>
129
- <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
130
- <FloatingPointModel>Fast</FloatingPointModel>
131
- <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
132
- <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
133
- <FunctionLevelLinking>false</FunctionLevelLinking>
134
- <FloatingPointExceptions>false</FloatingPointExceptions>
135
- <StringPooling>true</StringPooling>
136
- <CreateHotpatchableImage>false</CreateHotpatchableImage>
137
- <MinimalRebuild>true</MinimalRebuild>
138
- <EnableParallelCodeGeneration>true</EnableParallelCodeGeneration>
139
- <BufferSecurityCheck>false</BufferSecurityCheck>
140
- <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
141
- <OmitFramePointers>false</OmitFramePointers>
142
- </ClCompile>
143
- <Link>
144
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
145
- <AdditionalDependencies>obs.lib;version.lib;winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;dxgi.lib;%(AdditionalDependencies)</AdditionalDependencies>
146
- <ProfileGuidedDatabase>$(IntDir)$(TargetName).pgd</ProfileGuidedDatabase>
147
- <LinkTimeCodeGeneration>UseFastLinkTimeCodeGeneration</LinkTimeCodeGeneration>
148
- </Link>
149
- </ItemDefinitionGroup>
150
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
151
- <ClCompile>
152
- <WarningLevel>Level4</WarningLevel>
153
- <IntrinsicFunctions>true</IntrinsicFunctions>
154
- <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
155
- <FloatingPointModel>Fast</FloatingPointModel>
156
- <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
157
- <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
158
- <FunctionLevelLinking>false</FunctionLevelLinking>
159
- <FloatingPointExceptions>false</FloatingPointExceptions>
160
- <StringPooling>true</StringPooling>
161
- <CreateHotpatchableImage>false</CreateHotpatchableImage>
162
- <MinimalRebuild>true</MinimalRebuild>
163
- <EnableParallelCodeGeneration>true</EnableParallelCodeGeneration>
164
- <BufferSecurityCheck>false</BufferSecurityCheck>
165
- <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
166
- </ClCompile>
167
- <Link>
168
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
169
- <AdditionalDependencies>obs.lib;version.lib;winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
170
- <LinkTimeCodeGeneration>UseFastLinkTimeCodeGeneration</LinkTimeCodeGeneration>
171
- </Link>
172
- </ItemDefinitionGroup>
173
- <ItemGroup>
174
- <ClInclude Include="Include\amd-amf-vce.h" />
175
- <ClInclude Include="Include\amd-amf.h" />
176
- <ClInclude Include="Include\amd-amf-vce-capabilities.h" />
177
- <ClInclude Include="Include\api-base.h" />
178
- <ClInclude Include="Include\api-d3d11.h" />
179
- <ClInclude Include="Include\api-d3d9.h" />
180
- <ClInclude Include="Include\enc-h264.h" />
181
- <ClInclude Include="Include\plugin.h" />
182
- </ItemGroup>
183
- <ItemGroup>
184
- <ClCompile Include="Source\amd-amf-vce.cpp" />
185
- <ClCompile Include="Source\amd-amf.cpp" />
186
- <ClCompile Include="Source\amd-amf-vce-capabilities.cpp" />
187
- <ClCompile Include="Source\api-base.cpp" />
188
- <ClCompile Include="Source\api-d3d11.cpp" />
189
- <ClCompile Include="Source\api-d3d9.cpp" />
190
- <ClCompile Include="Source\enc-h264.cpp" />
191
- <ClCompile Include="Source\misc-util.cpp" />
192
- <ClCompile Include="Source\plugin.cpp" />
193
- </ItemGroup>
194
- <ItemGroup>
195
- <None Include="Resources\locale\en-US.ini" />
196
- </ItemGroup>
197
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
198
- <ImportGroup Label="ExtensionTargets">
199
- </ImportGroup>
200
- <Target Name="CopyBinaries" AfterTargets="Build">
201
obs-studio-0.16.5.tar.xz/plugins/enc-amf/enc-amf/enc-amf.vcxproj.filters
Deleted
83
1
2
-•<?xml version="1.0" encoding="utf-8"?>
3
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
4
- <ItemGroup>
5
- <Filter Include="Source Files">
6
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
7
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
8
- </Filter>
9
- <Filter Include="Header Files">
10
- <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
11
- <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
12
- </Filter>
13
- <Filter Include="Resource Files">
14
- <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
15
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
16
- </Filter>
17
- <Filter Include="Resource Files\locale">
18
- <UniqueIdentifier>{da92c87c-c5fd-4c93-a09c-af3071784a7c}</UniqueIdentifier>
19
- </Filter>
20
- </ItemGroup>
21
- <ItemGroup>
22
- <ClInclude Include="Include\enc-h264.h">
23
- <Filter>Header Files</Filter>
24
- </ClInclude>
25
- <ClInclude Include="Include\amd-amf.h">
26
- <Filter>Header Files</Filter>
27
- </ClInclude>
28
- <ClInclude Include="Include\plugin.h">
29
- <Filter>Header Files</Filter>
30
- </ClInclude>
31
- <ClInclude Include="Include\amd-amf-vce.h">
32
- <Filter>Header Files</Filter>
33
- </ClInclude>
34
- <ClInclude Include="Include\amd-amf-vce-capabilities.h">
35
- <Filter>Header Files</Filter>
36
- </ClInclude>
37
- <ClInclude Include="Include\api-d3d11.h">
38
- <Filter>Header Files</Filter>
39
- </ClInclude>
40
- <ClInclude Include="Include\api-base.h">
41
- <Filter>Header Files</Filter>
42
- </ClInclude>
43
- <ClInclude Include="Include\api-d3d9.h">
44
- <Filter>Header Files</Filter>
45
- </ClInclude>
46
- </ItemGroup>
47
- <ItemGroup>
48
- <ClCompile Include="Source\enc-h264.cpp">
49
- <Filter>Source Files</Filter>
50
- </ClCompile>
51
- <ClCompile Include="Source\amd-amf.cpp">
52
- <Filter>Source Files</Filter>
53
- </ClCompile>
54
- <ClCompile Include="Source\plugin.cpp">
55
- <Filter>Source Files</Filter>
56
- </ClCompile>
57
- <ClCompile Include="Source\amd-amf-vce-capabilities.cpp">
58
- <Filter>Source Files</Filter>
59
- </ClCompile>
60
- <ClCompile Include="Source\amd-amf-vce.cpp">
61
- <Filter>Source Files</Filter>
62
- </ClCompile>
63
- <ClCompile Include="Source\misc-util.cpp">
64
- <Filter>Source Files</Filter>
65
- </ClCompile>
66
- <ClCompile Include="Source\api-d3d11.cpp">
67
- <Filter>Source Files</Filter>
68
- </ClCompile>
69
- <ClCompile Include="Source\api-base.cpp">
70
- <Filter>Source Files</Filter>
71
- </ClCompile>
72
- <ClCompile Include="Source\api-d3d9.cpp">
73
- <Filter>Source Files</Filter>
74
- </ClCompile>
75
- </ItemGroup>
76
- <ItemGroup>
77
- <None Include="Resources\locale\en-US.ini">
78
- <Filter>Resource Files\locale</Filter>
79
- </None>
80
- </ItemGroup>
81
-</Project>
82
\ No newline at end of file
83
obs-studio-0.16.5.tar.xz/UI/data/locale/cs-CZ.ini -> obs-studio-0.16.6.tar.xz/UI/data/locale/cs-CZ.ini
Changed
20
1
2
Hours="Hodiny"
3
Minutes="Minuty"
4
Seconds="Vteřiny"
5
+Deprecated="Zastaralé"
6
7
QuickTransitions.SwapScenes="Prohodit scény náhledu a výstupu po přechodu"
8
QuickTransitions.SwapScenesTT="Prohodí scény náhledu a výstupu po přechodu (pokud originální výstupní scéna stále existuje).\nTato funkce nevrátí provedené změny, které byly provedeny v originální scéně výstupu."
9
10
Basic.MainMenu.Edit.UndoAction="Zpět $1 (&U)"
11
Basic.MainMenu.Edit.RedoAction="Znovu $1 (&R)"
12
Basic.MainMenu.Edit.LockPreview="Uzamknout náh&led"
13
+Basic.MainMenu.Edit.Scale="Škálování náhledu (&S)"
14
+Basic.MainMenu.Edit.Scale.Window="Škálovat na okno"
15
+Basic.MainMenu.Edit.Scale.Canvas="Editor (%1x%2)"
16
+Basic.MainMenu.Edit.Scale.Output="Výstup (%1x%2)"
17
Basic.MainMenu.Edit.Transform="Pozicování (&T)"
18
Basic.MainMenu.Edit.Transform.EditTransform="Upravit pozici... (&E)"
19
Basic.MainMenu.Edit.Transform.ResetTransform="Obnovit pozici (&R)"
20
obs-studio-0.16.5.tar.xz/UI/data/locale/da-DK.ini -> obs-studio-0.16.6.tar.xz/UI/data/locale/da-DK.ini
Changed
126
1
2
Hours="Timer"
3
Minutes="Minutter"
4
Seconds="Sekunder"
5
+Deprecated="Ophørt"
6
7
QuickTransitions.SwapScenes="Byt om på forhåndsvisning/output scener efter overgang"
8
QuickTransitions.SwapScenesTT="Ombytter uddrag- og output-scener efter omskiftning (hvis oprindelige output-scene stadig eksisterer).\nDette vil ikke omgøre eventuelle ændringer, der måtte været udført på den oprindelige output-scene."
9
10
Deinterlacing.Discard="Kassér"
11
Deinterlacing.Retro="Retro"
12
Deinterlacing.Blend="Bland"
13
+Deinterlacing.Blend2x="Blend 2x"
14
Deinterlacing.Linear="Lineær"
15
Deinterlacing.Linear2x="Lineær 2x"
16
+Deinterlacing.Yadif="Yadif"
17
+Deinterlacing.Yadif2x="Yadif 2x"
18
+Deinterlacing.TopFieldFirst="Øverste felt først"
19
+Deinterlacing.BottomFieldFirst="Nederste felt først"
20
21
Basic.Main.AddSceneDlg.Title="Tilføje scene"
22
Basic.Main.AddSceneDlg.Text="Angiv navnet på scene"
23
24
Basic.MainMenu.Edit.UndoAction="Fortryd $1 (&U)"
25
Basic.MainMenu.Edit.RedoAction="&Redo $1"
26
Basic.MainMenu.Edit.LockPreview="&Lås forhåndsvisning"
27
+Basic.MainMenu.Edit.Scale="Forhåndsvisning & Skalering"
28
+Basic.MainMenu.Edit.Scale.Window="Skalér til vindue"
29
+Basic.MainMenu.Edit.Scale.Canvas="Lærred (%1x%2)"
30
+Basic.MainMenu.Edit.Scale.Output="Output (%1x%2)"
31
Basic.MainMenu.Edit.Transform="&Transformering"
32
Basic.MainMenu.Edit.Transform.EditTransform="Rediger transformering... (&E)"
33
Basic.MainMenu.Edit.Transform.ResetTransform="Nulstille transformering (&R)"
34
35
Basic.Settings.Output.Simple.RecordingQuality.Small="Høj kvalitet, medium filstørrelse"
36
Basic.Settings.Output.Simple.RecordingQuality.HQ="Samme kvalitet, stor filstørrelse"
37
Basic.Settings.Output.Simple.RecordingQuality.Lossless="Tabsfri kvalitet, utrolig stor filstørrelse"
38
+Basic.Settings.Output.Simple.Warn.VideoBitrate="Advarsel: Video-streaming bitraten sættes til %1, som er den øvre grænse for den aktuelle streaming-tjeneste. Er du sikker på, at du vil at gå over %1, så aktivér venligst avancerede valg for encoder og afmarkér \"Gennemtving streaming-tjenestes bitratebegrænsninger\"."
39
+Basic.Settings.Output.Simple.Warn.AudioBitrate="Advarsel: Audio-streaming bitraten sættes til %1, som er den øvre grænse for den aktuelle streaming-tjeneste. Er du sikker på, at du vil at gå over %1, så aktivér venligst avancerede valg for encoder og afmarkér \"Gennemtving streaming-tjenestes bitratebegrænsninger\"."
40
+Basic.Settings.Output.Simple.Warn.Encoder="Advarsel: Optagelse med en software-encoder i en anden kvalitet end det streamede vil medføre ekstra CPU-forbrug, hvis du streamer og optager samtidigt."
41
+Basic.Settings.Output.Simple.Warn.Lossless="Advarsel: Tabsfri kvalitet genererer gevaldigt store filstørrelser! Tabsfri kvalitet kan bruge op til 7 GB diskplads pr. minut ved høje opløsninger og billedhastigheder. Tabsfri tilstand anbefales ikke til lange optagelser, medmindre du har en meget stor mængde tilgængelig diskplads."
42
+Basic.Settings.Output.Simple.Warn.Lossless.Msg="Sikker på, at du vil benytte tabsfri kvalitet?"
43
+Basic.Settings.Output.Simple.Warn.Lossless.Title="Tabsfri kvalitet-advarsel!"
44
+Basic.Settings.Output.Simple.Warn.MultipleQSV="Advarsel: Du kan ikke benytte flere særskilte QSV-encoders ved streaming og optagelse på samme tid. Ønsker du at streame og optage samtidig, bedes du ændre enten optagelses- eller stream-encoder."
45
Basic.Settings.Output.Simple.Encoder.Software="Software (x264)"
46
Basic.Settings.Output.Simple.Encoder.Hardware.QSV="Hardware (QSV)"
47
Basic.Settings.Output.Simple.Encoder.Hardware.AMD="Hardware (AMD)"
48
Basic.Settings.Output.Simple.Encoder.Hardware.NVENC="Hardware (NVENC)"
49
+Basic.Settings.Output.Simple.Encoder.SoftwareLowCPU="Software (x264 lav, forudindstillet CPU-forbrug, øger filstørrelsen)"
50
Basic.Settings.Output.VideoBitrate="Video Bitrate"
51
Basic.Settings.Output.AudioBitrate="Audio Bitrate"
52
Basic.Settings.Output.Reconnect="Automatisk Reconnect"
53
Basic.Settings.Output.RetryDelay="Retry forsinkelse (sekunder)"
54
Basic.Settings.Output.MaxRetries="Maksimum forsøg"
55
Basic.Settings.Output.Advanced="Aktiver avancerede Encoder indstillinger"
56
+Basic.Settings.Output.EncoderPreset="Encoder forudindstilling (hurtigere= mindre CPU-kraft)"
57
+Basic.Settings.Output.CustomEncoderSettings="Tilpasset Encoder-indstillinger"
58
+Basic.Settings.Output.CustomMuxerSettings="Tilpasset Muxer-indstillinger"
59
Basic.Settings.Output.NoSpaceFileName="Opret filnavne uden mellemrum"
60
61
Basic.Settings.Output.Adv.Rescale="Om-skalere output"
62
63
Basic.Settings.Output.Adv.FFmpeg.Type="FFmpeg outputtype"
64
Basic.Settings.Output.Adv.FFmpeg.Type.URL="Output til URL"
65
Basic.Settings.Output.Adv.FFmpeg.Type.RecordToFile="Output til fil"
66
+Basic.Settings.Output.Adv.FFmpeg.SaveFilter.Common="Almindelige optagelsesformater"
67
Basic.Settings.Output.Adv.FFmpeg.SaveFilter.All="Alle filer"
68
Basic.Settings.Output.Adv.FFmpeg.SavePathURL="Filsti eller URL"
69
Basic.Settings.Output.Adv.FFmpeg.Format="Containerformat"
70
Basic.Settings.Output.Adv.FFmpeg.FormatAudio="Lyd"
71
Basic.Settings.Output.Adv.FFmpeg.FormatVideo="Video"
72
Basic.Settings.Output.Adv.FFmpeg.FormatDefault="Standard format"
73
+Basic.Settings.Output.Adv.FFmpeg.FormatDesc="Container-format beskrivelse"
74
+Basic.Settings.Output.Adv.FFmpeg.FormatDescDef="Lyd/Video-codec gættet fra filsti eller URL"
75
Basic.Settings.Output.Adv.FFmpeg.AVEncoderDefault="Standard encoder"
76
Basic.Settings.Output.Adv.FFmpeg.AVEncoderDisable="Deaktiver encoder"
77
Basic.Settings.Output.Adv.FFmpeg.VEncoder="Video encoder"
78
79
Basic.Settings.Audio.AuxDevice2="Mic/Auxiliary lydenhed 2"
80
Basic.Settings.Audio.AuxDevice3="Mic/Auxiliary lydenhed 3"
81
Basic.Settings.Audio.EnablePushToMute="Aktiver tryk-for-stilhed"
82
+Basic.Settings.Audio.PushToMuteDelay="Tryk for at gøre tavs-forsinkelse"
83
Basic.Settings.Audio.EnablePushToTalk="Aktiver tryk-for-tale"
84
+Basic.Settings.Audio.PushToTalkDelay="Tryk for at gøre hørbar-forsinkelse"
85
Basic.Settings.Audio.UnknownAudioDevice="[Enhed ikke tilsluttet eller ikke tilgængelig]"
86
87
Basic.Settings.Advanced="Avanceret"
88
89
Basic.Settings.Advanced.General.ProcessPriority.AboveNormal="Over normal"
90
Basic.Settings.Advanced.General.ProcessPriority.Normal="Normal"
91
Basic.Settings.Advanced.General.ProcessPriority.Idle="Ikke aktiv"
92
+Basic.Settings.Advanced.FormatWarning="Advarsel: Farveformater ud over NV12 er primært beregnet til optagelse, og de anbefales ikke under streaming. Streaming kan medføre øget CPU-forbrug grundet farveformatkonvertering."
93
+Basic.Settings.Advanced.Audio.BufferingTime="Lyd-bufferinterval"
94
Basic.Settings.Advanced.Video.ColorFormat="Farveformat"
95
Basic.Settings.Advanced.Video.ColorSpace="YUV farverum"
96
Basic.Settings.Advanced.Video.ColorRange="YUV farveområde"
97
98
Basic.Settings.Advanced.Video.ColorRange.Full="Fuld"
99
Basic.Settings.Advanced.StreamDelay="Stream forsinkelse"
100
Basic.Settings.Advanced.StreamDelay.Duration="Varighed (sekunder)"
101
+Basic.Settings.Advanced.StreamDelay.Preserve="Bevar afskæringspunkt (forøg forsinkelse) ved forbindelsesgendannelse"
102
Basic.Settings.Advanced.StreamDelay.MemoryUsage="Anslået hukommelsesbrug: %1 MB"
103
Basic.Settings.Advanced.Network="Netværk"
104
Basic.Settings.Advanced.Network.BindToIP="Bind til IP"
105
106
Basic.AdvAudio="Avancerede lydegenskaber"
107
Basic.AdvAudio.Name="Navn"
108
Basic.AdvAudio.Volume="Volumen (%)"
109
+Basic.AdvAudio.Mono="Nedmix til Mono"
110
Basic.AdvAudio.Panning="Panorering"
111
+Basic.AdvAudio.SyncOffset="Synkr-forskydning (ms)"
112
Basic.AdvAudio.AudioTracks="Spor"
113
114
Basic.Settings.Hotkeys="Genvejstaster"
115
+Basic.Settings.Hotkeys.Pair="Tastekombinationer delt med '%1' fungerer som omskiftere"
116
117
Basic.Hotkeys.StartStreaming="Start streaming"
118
Basic.Hotkeys.StopStreaming="Stop streaming"
119
120
SceneItemShow="Vis '%1'"
121
SceneItemHide="Skjul '%1'"
122
123
+OutputWarnings.NoTracksSelected="Du skal vælge minimum ét spor"
124
+OutputWarnings.MultiTrackRecording="Advarsel: Visse formater (såsom FLV) understøtter ikke flere spor pr. optagelse"
125
126
obs-studio-0.16.5.tar.xz/UI/data/locale/de-DE.ini -> obs-studio-0.16.6.tar.xz/UI/data/locale/de-DE.ini
Changed
105
1
2
Enable="Aktivieren"
3
DisableOSXVSync="OSX V-Sync deaktivieren"
4
ResetOSXVSyncOnExit="OSX V-Sync beim Beenden zurücksetzen"
5
-HighResourceUsage="Kodierung überlastet! Erwägen Sie Ihre Video-Einstellungen zu verringern, oder benutzen Sie eine schnellere Encoder-Voreinstellung."
6
+HighResourceUsage="Codierung überlastet! Erwägen Sie Ihre Video-Einstellungen zu verringern, oder benutzen Sie eine schnellere Codierer-Voreinstellung."
7
Transition="Übergang"
8
QuickTransitions="Schnelle Übergänge"
9
Left="Links"
10
11
Hours="Stunde(n)"
12
Minutes="Minute(n)"
13
Seconds="Sekunde(n)"
14
+Deprecated="Veraltet"
15
16
QuickTransitions.SwapScenes="Tausche Vorschau/Ausgabe-Szenen nach dem Übergang"
17
QuickTransitions.SwapScenesTT="Vertauscht die Vorschau- und Ausgabe-Szenen nach dem Übergang (falls die ursprüngliche Ausgabe-Szene noch vorhanden ist).\nEventuelle Änderungen an der original Ausgabe-Szene werden hierbei nicht rückgängig gemacht."
18
19
Basic.MainMenu.Edit.UndoAction="$1 rückgängig machen (&U)"
20
Basic.MainMenu.Edit.RedoAction="$1 Wiede&rherstellen"
21
Basic.MainMenu.Edit.LockPreview="Vorschau sperren (&L)"
22
+Basic.MainMenu.Edit.Scale="Vorschau&skalierung"
23
+Basic.MainMenu.Edit.Scale.Window="An Fenstergröße anpassen"
24
+Basic.MainMenu.Edit.Scale.Canvas="Leinwand (%1x%2)"
25
+Basic.MainMenu.Edit.Scale.Output="Ausgabe (%1x%2)"
26
Basic.MainMenu.Edit.Transform="&Transformieren"
27
Basic.MainMenu.Edit.Transform.EditTransform="Transformation b&earbeiten..."
28
Basic.MainMenu.Edit.Transform.ResetTransform="Transformation zu&rücksetzen"
29
30
31
Basic.Settings.Output="Ausgabe"
32
Basic.Settings.Output.Format="Aufnahmeformat"
33
-Basic.Settings.Output.Encoder="Encoder"
34
+Basic.Settings.Output.Encoder="Codierer"
35
Basic.Settings.Output.SelectDirectory="Wählen Sie das Aufnahmeverzeichnis"
36
Basic.Settings.Output.SelectFile="Wählen Sie die Aufnahmedatei"
37
Basic.Settings.Output.EnforceBitrate="Erzwinge Bitratenlimit des Streamingdiensts"
38
39
Basic.Settings.Output.Simple.RecordingQuality.Small="Hohe Qualität, mittelgroße Dateien"
40
Basic.Settings.Output.Simple.RecordingQuality.HQ="Ununterscheidbare Qualität, große Dateien"
41
Basic.Settings.Output.Simple.RecordingQuality.Lossless="Verlustfreie Qualität, enorm große Dateien"
42
-Basic.Settings.Output.Simple.Warn.VideoBitrate="Warnung: Die Videobitrate beim streamen wird auf %1 festlegt, was der Obergrenze des aktuellen Streamingdiensts entspricht. Falls Sie sicher sind, dass Sie %1 überschreiten wollen, deaktivieren Sie \"Erzwinge Bitratenlimit des Streamingdiensts\" in den erweiterten Encodereinstellungen."
43
-Basic.Settings.Output.Simple.Warn.AudioBitrate="Warnung: Die Audiobitrate beim streamen wird auf %1 festlegt, was der Obergrenze des aktuellen Streamingdiensts entspricht. Falls Sie sicher sind, dass Sie %1 überschreiten wollen, deaktivieren Sie \"Erzwinge Bitratenlimit des Streamingdiensts\" in den erweiterten Encodereinstellungen."
44
-Basic.Settings.Output.Simple.Warn.Encoder="Warnung: Mit einem Software-Encoder in einer anderen Qualität als der des Stream aufzunehmen wird zusätzliche CPU-Auslastung erzeugen, wenn Sie gleichzeitig streamen und aufzeichnen."
45
+Basic.Settings.Output.Simple.Warn.VideoBitrate="Warnung: Die Videobitrate beim streamen wird auf %1 festlegt, was der Obergrenze des aktuellen Streamingdiensts entspricht. Falls Sie sicher sind, dass Sie %1 überschreiten wollen, deaktivieren Sie \"Erzwinge Bitratenlimit des Streamingdiensts\" in den erweiterten Codierereinstellungen."
46
+Basic.Settings.Output.Simple.Warn.AudioBitrate="Warnung: Die Audiobitrate beim streamen wird auf %1 festlegt, was der Obergrenze des aktuellen Streamingdiensts entspricht. Falls Sie sicher sind, dass Sie %1 überschreiten wollen, deaktivieren Sie \"Erzwinge Bitratenlimit des Streamingdiensts\" in den erweiterten Codierereinstellungen."
47
+Basic.Settings.Output.Simple.Warn.Encoder="Warnung: Mit einem Software-Codierer in einer anderen Qualität als der des Stream aufzunehmen wird zusätzliche CPU-Auslastung erzeugen, wenn Sie gleichzeitig streamen und aufzeichnen."
48
Basic.Settings.Output.Simple.Warn.Lossless="Warnung: Verlustfreie Qualität erzeugt enorm große Dateien! Verlustfreie Qualität, kann mehr als 7 Gigabyte Speicherplatz pro Minute, bei hohen Auflösungen und Frameraten in Anspruch nehmen. Verlustfrei ist für lange Aufnahmen nicht empfohlen, es sei denn, Sie haben eine sehr große Menge an Speicherplatz zur Verfügung."
49
Basic.Settings.Output.Simple.Warn.Lossless.Msg="Sind Sie sicher, dass Sie verlustfreie Qualität verwenden möchten?"
50
Basic.Settings.Output.Simple.Warn.Lossless.Title="Verlustfreie Qualität-Warnung!"
51
-Basic.Settings.Output.Simple.Warn.MultipleQSV="Achtung: Sie können nicht mehrere separate QSV-Encoder beim streamen und aufnehmen gleichzeitig verwenden. Wenn Sie zur gleichen Zeit streamen und aufnehmen möchten, dann ändern Sie bitte entweder den Aufnahme-Encoder oder den Stream-Encoder."
52
+Basic.Settings.Output.Simple.Warn.MultipleQSV="Achtung: Sie können nicht mehrere separate QSV-Codierer beim streamen und aufnehmen gleichzeitig verwenden. Wenn Sie zur gleichen Zeit streamen und aufnehmen möchten, dann ändern Sie bitte entweder den Aufnahmecodierer oder den Streamcodierer."
53
Basic.Settings.Output.Simple.Encoder.Software="Software (x264)"
54
Basic.Settings.Output.Simple.Encoder.Hardware.QSV="Hardware (QSV)"
55
Basic.Settings.Output.Simple.Encoder.Hardware.AMD="Hardware (AMD)"
56
57
Basic.Settings.Output.Reconnect="Automatisch wiederverbinden"
58
Basic.Settings.Output.RetryDelay="Wiederverbindungsverzögerung (Sekunden)"
59
Basic.Settings.Output.MaxRetries="Maximale Wiederholungsversuche"
60
-Basic.Settings.Output.Advanced="Erweiterte Encodereinstellungen aktivieren"
61
-Basic.Settings.Output.EncoderPreset="Encoder-Voreinstellung (höher = weniger CPU Auslastung)"
62
-Basic.Settings.Output.CustomEncoderSettings="Benutzerdefinierte Encoder-Einstellungen"
63
+Basic.Settings.Output.Advanced="Erweiterte Codierereinstellungen aktivieren"
64
+Basic.Settings.Output.EncoderPreset="Codierer-Voreinstellung (höher = weniger CPU Auslastung)"
65
+Basic.Settings.Output.CustomEncoderSettings="Benutzerdefinierte Codierer-Einstellungen"
66
Basic.Settings.Output.CustomMuxerSettings="Benutzerdefinierte Muxereinstellungen"
67
Basic.Settings.Output.NoSpaceFileName="Dateinamen ohne Leerzeichen generieren"
68
69
Basic.Settings.Output.Adv.Rescale="Ausgabe umskalieren"
70
Basic.Settings.Output.Adv.AudioTrack="Audiospur"
71
Basic.Settings.Output.Adv.Streaming="Streamen"
72
-Basic.Settings.Output.Adv.ApplyServiceSettings="Erzwinge Streamingdienst-Encodereinstellungen"
73
+Basic.Settings.Output.Adv.ApplyServiceSettings="Erzwinge Streamingdienst-Codierereinstellungen"
74
Basic.Settings.Output.Adv.Audio.Track1="Spur 1"
75
Basic.Settings.Output.Adv.Audio.Track2="Spur 2"
76
Basic.Settings.Output.Adv.Audio.Track3="Spur 3"
77
78
Basic.Settings.Output.Adv.Recording.Type="Art"
79
Basic.Settings.Output.Adv.Recording.Type.Standard="Normal"
80
Basic.Settings.Output.Adv.Recording.Type.FFmpegOutput="Benutzerdefinierte Ausgabe (FFmpeg)"
81
-Basic.Settings.Output.Adv.Recording.UseStreamEncoder="(Benutze Streamencoder)"
82
+Basic.Settings.Output.Adv.Recording.UseStreamEncoder="(Benutze Streamcodierer)"
83
Basic.Settings.Output.Adv.Recording.Filename="Dateinameformatierung"
84
Basic.Settings.Output.Adv.Recording.OverwriteIfExists="Überschreiben, wenn die Datei vorhanden ist"
85
Basic.Settings.Output.Adv.FFmpeg.Type="FFmpeg-Ausgabetyp"
86
87
Basic.Settings.Output.Adv.FFmpeg.FormatDefault="Standardformat"
88
Basic.Settings.Output.Adv.FFmpeg.FormatDesc="Container-Formatbeschreibung"
89
Basic.Settings.Output.Adv.FFmpeg.FormatDescDef="Audio- / Videocodec wird aus Dateipfad oder URL erraten."
90
-Basic.Settings.Output.Adv.FFmpeg.AVEncoderDefault="Standard-Encoder"
91
-Basic.Settings.Output.Adv.FFmpeg.AVEncoderDisable="Encoder deaktivieren"
92
-Basic.Settings.Output.Adv.FFmpeg.VEncoder="Video-Encoder"
93
-Basic.Settings.Output.Adv.FFmpeg.VEncoderSettings="Video Encoder-Einstellungen (falls gewünscht)"
94
-Basic.Settings.Output.Adv.FFmpeg.AEncoder="Audio-Encoder"
95
-Basic.Settings.Output.Adv.FFmpeg.AEncoderSettings="Audio Encoder-Einstellungen (falls gewünscht)"
96
+Basic.Settings.Output.Adv.FFmpeg.AVEncoderDefault="Standard-Codierer"
97
+Basic.Settings.Output.Adv.FFmpeg.AVEncoderDisable="Codierer deaktivieren"
98
+Basic.Settings.Output.Adv.FFmpeg.VEncoder="Video-Codierer"
99
+Basic.Settings.Output.Adv.FFmpeg.VEncoderSettings="Video Codierer-Einstellungen (falls gewünscht)"
100
+Basic.Settings.Output.Adv.FFmpeg.AEncoder="Audio-Codierer"
101
+Basic.Settings.Output.Adv.FFmpeg.AEncoderSettings="Audio Codierer-Einstellungen (falls gewünscht)"
102
Basic.Settings.Output.Adv.FFmpeg.MuxerSettings="Muxer Einstellungen (falls vorhanden)"
103
104
FilenameFormatting.completer="%DD-%MM-%CCYY %hh-%mm-%ss\n%DD-%MM-%YY %hh-%mm-%ss\n%d-%m-%Y %H-%M-%S\n%d-%m-%y %H-%M-%S\n%a %d-%m-%Y %H-%M-%S\n%A %d-%m-%Y %H-%M-%S\n%d-%b-%Y %H-%M-%S\n%d-%B-%Y %H-%M-%S"
105
obs-studio-0.16.5.tar.xz/UI/data/locale/en-US.ini -> obs-studio-0.16.6.tar.xz/UI/data/locale/en-US.ini
Changed
12
1
2
Basic.MainMenu.Edit.UndoAction="&Undo $1"
3
Basic.MainMenu.Edit.RedoAction="&Redo $1"
4
Basic.MainMenu.Edit.LockPreview="&Lock Preview"
5
+Basic.MainMenu.Edit.Scale="Preview &Scaling"
6
+Basic.MainMenu.Edit.Scale.Window="Scale to Window"
7
+Basic.MainMenu.Edit.Scale.Canvas="Canvas (%1x%2)"
8
+Basic.MainMenu.Edit.Scale.Output="Output (%1x%2)"
9
Basic.MainMenu.Edit.Transform="&Transform"
10
Basic.MainMenu.Edit.Transform.EditTransform="&Edit Transform..."
11
Basic.MainMenu.Edit.Transform.ResetTransform="&Reset Transform"
12
obs-studio-0.16.5.tar.xz/UI/data/locale/es-ES.ini -> obs-studio-0.16.6.tar.xz/UI/data/locale/es-ES.ini
Changed
20
1
2
Hours="Horas"
3
Minutes="Minutos"
4
Seconds="Segundos"
5
+Deprecated="Obsoleto"
6
7
QuickTransitions.SwapScenes="Cambiar vista previa y salida escenas después de la transición"
8
QuickTransitions.SwapScenesTT="Cambia la vista previa y salida escenas después de la transición (si todavía existe la escena original de la salida). \nEsto no deshará cualquier cambio que pueda haber hecho a la escena original de la salida."
9
10
Basic.MainMenu.Edit.UndoAction="&Deshacer $1"
11
Basic.MainMenu.Edit.RedoAction="&Rehacer $1"
12
Basic.MainMenu.Edit.LockPreview="&Bloquear vista previa"
13
+Basic.MainMenu.Edit.Scale="Vista previa y escala"
14
+Basic.MainMenu.Edit.Scale.Window="Ajustar a la ventana"
15
+Basic.MainMenu.Edit.Scale.Canvas="Lienzo (%1x%2)"
16
+Basic.MainMenu.Edit.Scale.Output="Salida (%1x%2)"
17
Basic.MainMenu.Edit.Transform="&Transformar"
18
Basic.MainMenu.Edit.Transform.EditTransform="&Editar Transformación..."
19
Basic.MainMenu.Edit.Transform.ResetTransform="&Restablecer transformación"
20
obs-studio-0.16.5.tar.xz/UI/data/locale/eu-ES.ini -> obs-studio-0.16.6.tar.xz/UI/data/locale/eu-ES.ini
Changed
20
1
2
Hours="ordu"
3
Minutes="minutu"
4
Seconds="segundo"
5
+Deprecated="Zaharkitua"
6
7
QuickTransitions.SwapScenes="Trukatu Aurrebista/Irteera-eszenak trantsizioen ondoren"
8
QuickTransitions.SwapScenesTT="Trukatu aurrebistak eta irteera-eszenak trantsizioen ondoren (baldin eta irteerakoaren jatorrizkoa eszena badago).\n Honek ez du desegingo irteerakoaren jatorrizko eszenari egindako aldaketak."
9
10
Basic.MainMenu.Edit.UndoAction="&Desegin $1"
11
Basic.MainMenu.Edit.RedoAction="&Berregin $1"
12
Basic.MainMenu.Edit.LockPreview="Blokeatu aurrebista"
13
+Basic.MainMenu.Edit.Scale="Aurrebistaren eskala"
14
+Basic.MainMenu.Edit.Scale.Window="Eskalatu leihora"
15
+Basic.MainMenu.Edit.Scale.Canvas="Oihala (%1x%2)"
16
+Basic.MainMenu.Edit.Scale.Output="Irteera (%1x%2)"
17
Basic.MainMenu.Edit.Transform="&Eraldatu"
18
Basic.MainMenu.Edit.Transform.EditTransform="E&ditatu eraldaketa..."
19
Basic.MainMenu.Edit.Transform.ResetTransform="&Berrezarri eraldaketa"
20
obs-studio-0.16.5.tar.xz/UI/data/locale/fi-FI.ini -> obs-studio-0.16.6.tar.xz/UI/data/locale/fi-FI.ini
Changed
20
1
2
Hours="Tuntia"
3
Minutes="Minuuttia"
4
Seconds="Sekuntia"
5
+Deprecated="Vanhentunut"
6
7
QuickTransitions.SwapScenes="Vaihda esikatselu- ja ulostulo-skenet siirtymän jälkeen"
8
QuickTransitions.SwapScenesTT="Vaihda esikatselu- ja ulostulo-skenet siirtymän jälkeen (jos ulostulon alkuperäinen skene on yhä olemassa).\nTämä ei peruuta muutoksia joita on tehty alkuperäiseen skeneen."
9
10
Basic.MainMenu.Edit.UndoAction="Kum&oa $1"
11
Basic.MainMenu.Edit.RedoAction="T&ee uudelleen $1"
12
Basic.MainMenu.Edit.LockPreview="&Lukitse esikatselu"
13
+Basic.MainMenu.Edit.Scale="Esikatselun &skaalaus"
14
+Basic.MainMenu.Edit.Scale.Window="Skaalaa ikkunaan"
15
+Basic.MainMenu.Edit.Scale.Canvas="Kanvaasi (%1x%2)"
16
+Basic.MainMenu.Edit.Scale.Output="Ulostulo (%1x%2)"
17
Basic.MainMenu.Edit.Transform="Muu&nna"
18
Basic.MainMenu.Edit.Transform.EditTransform="M&uokkaa muunnosta..."
19
Basic.MainMenu.Edit.Transform.ResetTransform="&Nollaa muunnos"
20
obs-studio-0.16.5.tar.xz/UI/data/locale/fr-FR.ini -> obs-studio-0.16.6.tar.xz/UI/data/locale/fr-FR.ini
Changed
29
1
2
Browse="Parcourir"
3
Mono="Mono"
4
Stereo="Stéréo"
5
-DroppedFrames="Images Perdues %1 (%2%)"
6
+DroppedFrames="Images perdues : %1 (%2%)"
7
PreviewProjector="Projecteur plein écran (aperçu)"
8
SceneProjector="Projecteur plein écran (scène)"
9
SourceProjector="Projecteur plein écran (source)"
10
11
Hours="Heures"
12
Minutes="Minutes"
13
Seconds="Secondes"
14
+Deprecated="Obsolète"
15
16
QuickTransitions.SwapScenes="Permuter les scènes d'aperçu et de sortie après la transition"
17
QuickTransitions.SwapScenesTT="Permute les scènes d'aperçu et de sortie après la transition (si la scène d'origine de la sortie existe toujours). \nCela n'annulera pas les modifications qui auront pu être faites sur la scène d'origine de la sortie."
18
19
Basic.MainMenu.Edit.UndoAction="&Annuler $1"
20
Basic.MainMenu.Edit.RedoAction="&Rétablir $1"
21
Basic.MainMenu.Edit.LockPreview="Verrouiller la prévisualisation"
22
+Basic.MainMenu.Edit.Scale="Mi&se à l'échelle de l'aperçu"
23
+Basic.MainMenu.Edit.Scale.Window="Adapter à la fenêtre"
24
+Basic.MainMenu.Edit.Scale.Canvas="Canvas (%1x%2)"
25
+Basic.MainMenu.Edit.Scale.Output="Sortie (%1x%2)"
26
Basic.MainMenu.Edit.Transform="&Transformer"
27
Basic.MainMenu.Edit.Transform.EditTransform="Éditer la transformation..."
28
Basic.MainMenu.Edit.Transform.ResetTransform="Réinitialiser la transformation"
29
obs-studio-0.16.5.tar.xz/UI/data/locale/hu-HU.ini -> obs-studio-0.16.6.tar.xz/UI/data/locale/hu-HU.ini
Changed
20
1
2
Hours="Óra"
3
Minutes="Perc"
4
Seconds="Másodperc"
5
+Deprecated="Elavult"
6
7
QuickTransitions.SwapScenes="Előnézeti/Kimeneti Jelenetek cseréje átmenet után"
8
QuickTransitions.SwapScenesTT="Az előnézet és a kimeneti jelenet cseréje átmenet után (ha a kimenet eredeti jelenete még létezik).\nEz nincs kihatással a kimenet eredeti jelenetére."
9
10
Basic.MainMenu.Edit.UndoAction="&Visszavonás $1"
11
Basic.MainMenu.Edit.RedoAction="&Ismét $1"
12
Basic.MainMenu.Edit.LockPreview="&Előnézet zárolás"
13
+Basic.MainMenu.Edit.Scale="Előnézet &méretezés"
14
+Basic.MainMenu.Edit.Scale.Window="Ablakhoz skálázás"
15
+Basic.MainMenu.Edit.Scale.Canvas="Vászon (%1x%2)"
16
+Basic.MainMenu.Edit.Scale.Output="Kimenet (%1x%2)"
17
Basic.MainMenu.Edit.Transform="&Alakítás"
18
Basic.MainMenu.Edit.Transform.EditTransform="&Alakítás átszerkesztése..."
19
Basic.MainMenu.Edit.Transform.ResetTransform="&Alakítás visszaállítása"
20
obs-studio-0.16.5.tar.xz/UI/data/locale/it-IT.ini -> obs-studio-0.16.6.tar.xz/UI/data/locale/it-IT.ini
Changed
20
1
2
Hours="Ore"
3
Minutes="Minuti"
4
Seconds="Secondi"
5
+Deprecated="Deprecato"
6
7
QuickTransitions.SwapScenes="Scambia Scena Preview/Uscita dopo la Transizione"
8
QuickTransitions.SwapScenesTT="Scambia la scena in uniscita con quella in preview dopo la transizione (ammesso che la scena in uscita originale ci sia ancora).\nQuesto non modificherà eventuali cambiamenti apportati alla scena di uscita originale."
9
10
Basic.MainMenu.Edit.UndoAction="&Ripristina $1"
11
Basic.MainMenu.Edit.RedoAction="&Ripristina $1"
12
Basic.MainMenu.Edit.LockPreview="&Blocca Anteprima"
13
+Basic.MainMenu.Edit.Scale="Anteprima & ridimensionamento"
14
+Basic.MainMenu.Edit.Scale.Window="Scala alla finestra"
15
+Basic.MainMenu.Edit.Scale.Canvas="Tela (%1x%2)"
16
+Basic.MainMenu.Edit.Scale.Output="Uscita (%1x%2)"
17
Basic.MainMenu.Edit.Transform="&Trasforma"
18
Basic.MainMenu.Edit.Transform.EditTransform="&Modifica e trasforma..."
19
Basic.MainMenu.Edit.Transform.ResetTransform="&Reset e trasforma"
20
obs-studio-0.16.5.tar.xz/UI/data/locale/ja-JP.ini -> obs-studio-0.16.6.tar.xz/UI/data/locale/ja-JP.ini
Changed
32
1
2
Hours="時間"
3
Minutes="分"
4
Seconds="秒"
5
+Deprecated="非推奨"
6
7
QuickTransitions.SwapScenes="トランジション後にプレビュー/出力シーンを入れ替え"
8
QuickTransitions.SwapScenesTT="(出力のオリジナルシーンがまだ存在する場合)、トランジション後のプレビューと出力シーンを入れ替えます。\nこれは出力のオリジナルシーンに加えられた可能性があるすべての変更を元に戻しません。"
9
10
Basic.Main.StartRecording="録画開始"
11
Basic.Main.StartStreaming="配信開始"
12
Basic.Main.StopRecording="録画終了"
13
-Basic.Main.StoppingRecording="録画を停止しています..."
14
+Basic.Main.StoppingRecording="録画停止処理中..."
15
Basic.Main.StopStreaming="配信終了"
16
-Basic.Main.StoppingStreaming="配信を停止しています..."
17
+Basic.Main.StoppingStreaming="配信停止処理中..."
18
Basic.Main.ForceStopStreaming="配信停止 (遅延破棄)"
19
20
Basic.MainMenu.File="ファイル(&F)"
21
22
Basic.MainMenu.Edit.UndoAction="$1 を元に戻す(&U)"
23
Basic.MainMenu.Edit.RedoAction="$1 をやり直す(&R)"
24
Basic.MainMenu.Edit.LockPreview="ロックプレビュー(&L)"
25
+Basic.MainMenu.Edit.Scale="プレビュースケーリング(&S)"
26
+Basic.MainMenu.Edit.Scale.Window="ウィンドウサイズにスケーリング表示"
27
+Basic.MainMenu.Edit.Scale.Canvas="基本(キャンバス) (%1x%2)"
28
+Basic.MainMenu.Edit.Scale.Output="出力(スケーリング) (%1x%2)"
29
Basic.MainMenu.Edit.Transform="変換(&T)"
30
Basic.MainMenu.Edit.Transform.EditTransform="変換の編集...(&E)"
31
Basic.MainMenu.Edit.Transform.ResetTransform="変換をリセット(&R)"
32
obs-studio-0.16.5.tar.xz/UI/data/locale/ko-KR.ini -> obs-studio-0.16.6.tar.xz/UI/data/locale/ko-KR.ini
Changed
20
1
2
Hours="시"
3
Minutes="분"
4
Seconds="초"
5
+Deprecated="사용하지 않음"
6
7
QuickTransitions.SwapScenes="전환 후 미리 보기/출력 장면을 교체"
8
QuickTransitions.SwapScenesTT="(만약 출력 쪽 원본 장면이 있을 때) 전환 작업 이후 미리 보기와 출력 장면을 교체합니다. \n출력 쪽 원본 장면에서 변경한 내용은 사라지지 않습니다."
9
10
Basic.MainMenu.Edit.UndoAction="$1 실행 취소(&U)"
11
Basic.MainMenu.Edit.RedoAction="$1 되돌리기(&R)"
12
Basic.MainMenu.Edit.LockPreview="미리보기 잠금(&L)"
13
+Basic.MainMenu.Edit.Scale="미리보기 비율(&S)"
14
+Basic.MainMenu.Edit.Scale.Window="창에 맞추기"
15
+Basic.MainMenu.Edit.Scale.Canvas="캔버스 (%1x%2)"
16
+Basic.MainMenu.Edit.Scale.Output="출력 (%1x%2)"
17
Basic.MainMenu.Edit.Transform="변환(&T)"
18
Basic.MainMenu.Edit.Transform.EditTransform="변환 편집(&E)"
19
Basic.MainMenu.Edit.Transform.ResetTransform="변환 초기화(&R)"
20
obs-studio-0.16.5.tar.xz/UI/data/locale/nl-NL.ini -> obs-studio-0.16.6.tar.xz/UI/data/locale/nl-NL.ini
Changed
11
1
2
Top="Boven"
3
Bottom="Onder"
4
Reset="Herstellen"
5
+Hours="Uren"
6
+Minutes="Minuten"
7
+Seconds="Seconden"
8
9
QuickTransitions.SwapScenes="Preview-/uitvoerscenes verwisselen na overgang"
10
QuickTransitions.SwapScenesTT="Verwisselt de preview- en uitvoercenes na een overgang (als de originele uitvoerscène nog bestaat.)\nDit zal geen veranderingen ongedaan maken die mogelijk zijn gemaakt aan de originele uitvoerscène."
11
obs-studio-0.16.5.tar.xz/UI/data/locale/pt-BR.ini -> obs-studio-0.16.6.tar.xz/UI/data/locale/pt-BR.ini
Changed
38
1
2
Right="Direita"
3
Top="Topo"
4
Bottom="Baixo"
5
-Reset="Repor"
6
+Reset="Redefinir"
7
Hours="Horas"
8
Minutes="Minutos"
9
Seconds="Segundos"
10
11
Basic.MainMenu.Edit.UndoAction="&Desfazer $1"
12
Basic.MainMenu.Edit.RedoAction="&Refazer $1"
13
Basic.MainMenu.Edit.LockPreview="&Bloquear pré-visualização"
14
+Basic.MainMenu.Edit.Scale="Visualização e dimensionamento"
15
+Basic.MainMenu.Edit.Scale.Window="Escala para janela"
16
+Basic.MainMenu.Edit.Scale.Canvas="Lona (%1x%2)"
17
+Basic.MainMenu.Edit.Scale.Output="Saída (%1x%2)"
18
Basic.MainMenu.Edit.Transform="&Transformar"
19
Basic.MainMenu.Edit.Transform.EditTransform="&Editar Transformação..."
20
Basic.MainMenu.Edit.Transform.ResetTransform="&Limpar Transformação"
21
22
Basic.Settings.Output.Simple.Warn.MultipleQSV="Aviso: Você não pode usar vários codificadores QSV separados quando estiver transmitindo e gravando ao mesmo tempo. Se você deseja transmitir e gravar ao mesmo tempo, por favor altere o codificador de gravação ou o de transmissão."
23
Basic.Settings.Output.Simple.Encoder.Software="Software (x264)"
24
Basic.Settings.Output.Simple.Encoder.Hardware.QSV="Hardware (QSV)"
25
+Basic.Settings.Output.Simple.Encoder.Hardware.AMD="Hardware (AMD)"
26
Basic.Settings.Output.Simple.Encoder.Hardware.NVENC="Hardware (NVENC)"
27
Basic.Settings.Output.Simple.Encoder.SoftwareLowCPU="Software (preset x264 de baixa utilização de CPU, aumenta o tamanho do arquivo)"
28
Basic.Settings.Output.VideoBitrate="Taxa de Bits do Vídeo"
29
30
Basic.Settings.Output.Adv.FFmpeg.AEncoderSettings="Configurações do codificador de áudio(se houver)"
31
Basic.Settings.Output.Adv.FFmpeg.MuxerSettings="Configurações do Muxer (se houver)"
32
33
-FilenameFormatting.completer="%CCYY-%MM-%DD %hh-%mm-%ss\n%YY-%MM-%DD %hh-%mm-%ss\n%Y-%m-%d %H-%M-%S\n%y-%m-%d %H-%M-%S\n%a %Y-%m-%d %H-%M-%S\n%A %Y-%m-%d %H-%M-%S\n%Y-%b-%d %H-%M-%S\n%Y-%B-%d %H-%M-%S\n%Y-%m-%d %I-%M-%S-%p\n%Y-%m-%d %H-%M-%S-%z\n%Y-%m-%d %H-%M-%S-%Z"
34
+FilenameFormatting.completer="%CCYY-% MM-%DD %hh-%mm-%ss\n%YY-%MM-%DD %hh-%mm-%ss\n%Y-%m-%d %H-%M-%S\n%y-%m-%d %H-%M-%S\n%a %H-%M-%S\n%A %d-%Y-%m %Y-%m-%d %H-%M-%S\n%Y-%b-123_2_ 16_321 %H-%M-%S\n%Y-%B-%d %H-%M-%S\n%Y-%m-%d %I-%M-%S-%p\n%Y-%m-%d %H-%M-%S-%z\n%Y-%m-%d %H %M - %S-%Z"
35
36
FilenameFormatting.TT="%CCYY Ano, quatro dígitos\n%YY Ano, dois dígitos (00-99)\n%MM Mês como um número decimal (01-12)\n%DD Dia do mês, começando com 0 (01-31)\n%hh Hora, em formato de 24h (00-23)\n%mm Minuto (00-59)\n%ss Segundo (00-61)\n%% A % sign\n%a Dia da Semana abreviado\n%A Nome da Semana completo\n%b Nome do Mês abreviado\n%B Nome do Mês completo\n%d Dia do Mês, começando com 0 (01-31)\n%H Hora, no formato de 24h (00-23)\n%I Hora no formato de 12h (01-12)\n%m Mês como um número decimal (01-12)\n%M Minuto (00-59)\n%p Designação AM ou PM\n%S Segundo (00-61)\n%y Ano, últimos dois dígitos (00-99)\n%Y Ano\n%z ISO 8601 diferença de fuso horário ou de UTC\n nome ou abreviação\n%Z Nome do Fuso Horário ou abreviação\n"
37
38
obs-studio-0.16.5.tar.xz/UI/data/locale/sk-SK.ini -> obs-studio-0.16.6.tar.xz/UI/data/locale/sk-SK.ini
Changed
67
1
2
Add="Pridať"
3
Remove="Odobrať"
4
Rename="Premenovať"
5
+Filters="Filtre"
6
Properties="Vlastnosti"
7
MoveUp="Posunúť vyššie"
8
MoveDown="Posunúť nižšie"
9
10
New="Nový"
11
Duplicate="Duplikovať"
12
Enable="Povoliť"
13
+Transition="Prechod"
14
+QuickTransitions="Rýchle prechody"
15
Left="Vľavo"
16
Right="Vpravo"
17
+Top="Hore"
18
+Bottom="Dole"
19
Reset="Vynulovať"
20
Hours="Hodín"
21
Minutes="Minúty"
22
Seconds="Sekundy"
23
24
+QuickTransitions.DuplicateScene="Duplikovať scénu"
25
26
Basic.TransitionDuration="Trvanie"
27
Basic.TogglePreviewProgramMode="Štúdiový režim"
28
29
Basic.MainMenu.Edit.Order.MoveToBottom="Premiestniť naspodok (&B)"
30
31
32
+Basic.MainMenu.Profile="&Profil"
33
34
+Basic.MainMenu.Tools="Nás&troje"
35
36
Basic.MainMenu.Help="Pomoc (&H)"
37
Basic.MainMenu.Help.Logs="&Log súbory"
38
39
Basic.Settings.Confirm="Máte neuložené zmeny. Chcete uložiť zmeny?"
40
41
Basic.Settings.General="Všeobecné"
42
+Basic.Settings.General.Theme="Vzhľad"
43
+Basic.Settings.General.Language="Jazyk"
44
45
Basic.Settings.Stream="Stream"
46
Basic.Settings.Stream.StreamType="Typ streamu"
47
48
Basic.Settings.Output="Výstup"
49
Basic.Settings.Output.Mode="Režim výstupu"
50
+Basic.Settings.Output.Mode.Simple="Jednoduchý"
51
Basic.Settings.Output.VideoBitrate="Bitrate videa"
52
Basic.Settings.Output.AudioBitrate="Bitrate zvuku"
53
Basic.Settings.Output.Reconnect="Automaticky znovupripájať"
54
55
Basic.Settings.Output.MaxRetries="Maximálny počet pokusov"
56
Basic.Settings.Output.Advanced="Povoliť pokročilé nastavenia enkodéra"
57
58
+Basic.Settings.Output.Adv.Audio.Track1="Stopa 1"
59
+Basic.Settings.Output.Adv.Audio.Track2="Stopa 2"
60
+Basic.Settings.Output.Adv.Audio.Track3="Stopa 3"
61
+Basic.Settings.Output.Adv.Audio.Track4="Stopa 4"
62
63
+Basic.Settings.Output.Adv.Recording.Type="Typ"
64
65
66
67
obs-studio-0.16.5.tar.xz/UI/data/locale/sv-SE.ini -> obs-studio-0.16.6.tar.xz/UI/data/locale/sv-SE.ini
Changed
31
1
2
Top="Överkant"
3
Bottom="Nederkant"
4
Reset="Återställ"
5
+Hours="timmar"
6
+Minutes="minuter"
7
+Seconds="sekunder"
8
+Deprecated="Föråldrat"
9
10
QuickTransitions.SwapScenes="Byt plats på Förhandsvisnings-/utdatascenerna efter skifte"
11
QuickTransitions.SwapScenesTT="Byter plats på förhandsvisnings- och utdatascenerna efter övergång (om utdatans originalscen fortfarande finns). \nDet här kommer inte att ångra några förändringar i utdatans originalscen."
12
QuickTransitions.DuplicateScene="Duplicera scen"
13
-QuickTransitions.EditProperties="Duplicera källa"
14
+QuickTransitions.DuplicateSceneTT="När du redigerar samma scen kan du redigera transformering/synligheten för källor utan att modifiera utmatningen.\nFör att redigera egenskaper för källor utan att modifiera utmatningen aktiverar du 'Duplicera källor'.\nNär detta värde ändras kommer den aktuella utmatningsscenen återställas (om den fortfarande finns)."
15
+QuickTransitions.EditProperties="Duplicera källor"
16
+QuickTransitions.EditPropertiesTT="När du redigerar samma scen kan du redigera egenskaperna för källor utan att modifiera utmatningen.\nDetta fungerar endast om 'Duplicera scen' är aktiverad.\nVissa källor (som mediakällor) stöder inte detta och kan inte redigeras separat.\nNär detta värde ändras kommer den aktuella utmatningsscenen återställas (om den fortfarande finns).\n\nVarning: Eftersom källor kommer att dupliceras kan detta kräva extra system- eller videoresurser."
17
QuickTransitions.HotkeyName="Snabba övergång: %1"
18
19
Basic.AddTransition="Lägg till konfigurerbar övergång"
20
21
Basic.MainMenu.Edit.UndoAction="&Ångra $1"
22
Basic.MainMenu.Edit.RedoAction="&Gör om $1"
23
Basic.MainMenu.Edit.LockPreview="&Lås förhandsvisning"
24
+Basic.MainMenu.Edit.Scale="Förhandsvisa &skalning"
25
+Basic.MainMenu.Edit.Scale.Window="Skala till fönster"
26
+Basic.MainMenu.Edit.Scale.Canvas="Kanvas (%1x%2)"
27
+Basic.MainMenu.Edit.Scale.Output="Utmatning (%1x%2)"
28
Basic.MainMenu.Edit.Transform="&Omvandla"
29
Basic.MainMenu.Edit.Transform.EditTransform="&Redigera omvandling..."
30
Basic.MainMenu.Edit.Transform.ResetTransform="&Återställ omvandling"
31
obs-studio-0.16.5.tar.xz/UI/data/locale/uk-UA.ini -> obs-studio-0.16.6.tar.xz/UI/data/locale/uk-UA.ini
Changed
28
1
2
Hours="Годин"
3
Minutes="Хвилин"
4
Seconds="Секунд"
5
+Deprecated="Припинено підтримку"
6
7
QuickTransitions.SwapScenes="Поміняти місцями сцени Перегляд/Вивід після Відео-переходу"
8
QuickTransitions.SwapScenesTT="Міняє місцями сцени Перегляд та Вивід після закінчення Відео-переходу (якщо сцена Вивід ще існує).\nЗміни внесені до обох сцен залишаються."
9
QuickTransitions.DuplicateScene="Використовувати копію сцени"
10
QuickTransitions.DuplicateSceneTT="Під час редагування поточної сцени дозволяє зберегти Вивід без змін.\nДля можливості редагувати властивості Джерел, увімкніть також 'Використовувати копію Джерел'.\nЗміна цієї опції призведе до оновлення поточної сцени, яка йде на Вивід (якщо вона ще існує)."
11
QuickTransitions.EditProperties="Використовувати копію Джерел"
12
-QuickTransitions.EditPropertiesTT="Під час редагування поточної сцени, дозволяє редагувати властивості Джерел не змінюючи Вивід.\nЦя опція можлива якщо 'Використовувати копію сцени' вибрана.\nДеякі джерела (наприклад медіа або прилади захвату зображень) не підтримують копіювання, тобто не можна внести окремі зміни у джерело.\nЗміна властивостей таких джерел миттєво змінить Вивід (якщо він ще існує).\n\nУвага: Так як джерела внутрішньо копіюються, то це може призвести до додаткового навантаження на систему та використання відео ресурсів."
13
+QuickTransitions.EditPropertiesTT="Під час редагування поточної сцени, дозволяє редагувати властивості Джерел не змінюючи Вивід.\nЦя опція можлива якщо 'Використовувати копію сцени' вибрана.\nДеякі джерела (наприклад медіа або пристрої захвату зображень) не підтримують копіювання, тобто не можна внести окремі зміни у джерело.\nЗміна властивостей таких джерел миттєво змінить Вивід (якщо він ще існує).\n\nУвага: Так як джерела внутрішньо копіюються, то це може призвести до додаткового навантаження на систему та використання відео ресурсів."
14
QuickTransitions.HotkeyName="Швидкий відео-перехід: %1"
15
16
Basic.AddTransition="Додати Відео-перехід що конфігурується"
17
18
Basic.MainMenu.Edit.UndoAction="&Відмінити $1"
19
Basic.MainMenu.Edit.RedoAction="Від&новити $1"
20
Basic.MainMenu.Edit.LockPreview="&Зафіксувати вікно Перегляду"
21
+Basic.MainMenu.Edit.Scale="&Масштабувати вікно Перегляду"
22
+Basic.MainMenu.Edit.Scale.Window="В розмір вікна"
23
+Basic.MainMenu.Edit.Scale.Canvas="Як Полотно (%1x%2)"
24
+Basic.MainMenu.Edit.Scale.Output="Як Вивід (%1x%2)"
25
Basic.MainMenu.Edit.Transform="&Розміри"
26
Basic.MainMenu.Edit.Transform.EditTransform="Редагуват&и Розміри..."
27
Basic.MainMenu.Edit.Transform.ResetTransform="Розміри за &замовчуванням"
28
obs-studio-0.16.5.tar.xz/UI/data/locale/zh-CN.ini -> obs-studio-0.16.6.tar.xz/UI/data/locale/zh-CN.ini
Changed
20
1
2
Hours="小时"
3
Minutes="分钟"
4
Seconds="秒"
5
+Deprecated="不推荐使用"
6
7
QuickTransitions.SwapScenes="在过渡动画后交换预览/输出场景"
8
QuickTransitions.SwapScenesTT="在过渡后,交换预览和输出场景(如果输出的原始场景仍然存在). \n 这个不会撤消任何可能对输出的原始场景的更改."
9
10
Basic.MainMenu.Edit.UndoAction="撤消 $1 (&U)"
11
Basic.MainMenu.Edit.RedoAction="重做 $1 (&R)"
12
Basic.MainMenu.Edit.LockPreview="锁定预览 (&L)"
13
+Basic.MainMenu.Edit.Scale="预览 & 缩放"
14
+Basic.MainMenu.Edit.Scale.Window="缩放至窗口"
15
+Basic.MainMenu.Edit.Scale.Canvas="背景 (%1x%2)"
16
+Basic.MainMenu.Edit.Scale.Output="输出 (%1x%2)"
17
Basic.MainMenu.Edit.Transform="变换 (&T)"
18
Basic.MainMenu.Edit.Transform.EditTransform="编辑变换 (&E)"
19
Basic.MainMenu.Edit.Transform.ResetTransform="重置变换 (&R)"
20
obs-studio-0.16.5.tar.xz/UI/data/locale/zh-TW.ini -> obs-studio-0.16.6.tar.xz/UI/data/locale/zh-TW.ini
Changed
23
1
2
Top="上"
3
Bottom="下"
4
Reset="重置"
5
+Hours="小時"
6
+Minutes="分鐘"
7
+Seconds="秒"
8
+Deprecated="不再維護"
9
10
QuickTransitions.SwapScenes="轉場後交換預覽/輸出場景"
11
QuickTransitions.SwapScenesTT="(如果輸出的原始場景仍然存在) 轉場後交換預覽和輸出場景。\n這並不會復原任何對輸出原始場景所作的改動。"
12
13
Basic.MainMenu.Edit.UndoAction="復原 $1 (&U)"
14
Basic.MainMenu.Edit.RedoAction="重做 $1 (&R)"
15
Basic.MainMenu.Edit.LockPreview="鎖定預覽 (&L)"
16
+Basic.MainMenu.Edit.Scale="預覽與縮放"
17
+Basic.MainMenu.Edit.Scale.Window="縮放至視窗"
18
+Basic.MainMenu.Edit.Scale.Canvas="畫布 (%1x%2)"
19
+Basic.MainMenu.Edit.Scale.Output="輸出 (%1x%2)"
20
Basic.MainMenu.Edit.Transform="變型 (&T)"
21
Basic.MainMenu.Edit.Transform.EditTransform="編輯變型設定…… (&E)"
22
Basic.MainMenu.Edit.Transform.ResetTransform="重設變型設定 (&R)"
23
obs-studio-0.16.5.tar.xz/UI/display-helpers.hpp -> obs-studio-0.16.6.tar.xz/UI/display-helpers.hpp
Changed
16
1
2
y = windowCY/2 - newCY/2;
3
}
4
5
+static inline void GetCenterPosFromFixedScale(
6
+ int baseCX, int baseCY, int windowCX, int windowCY,
7
+ int &x, int &y, float scale)
8
+{
9
+ x = (float(windowCX) - float(baseCX)*scale) / 2.0f;
10
+ y = (float(windowCY) - float(baseCY)*scale) / 2.0f;
11
+}
12
+
13
static inline QSize GetPixelSize(QWidget *widget)
14
{
15
return widget->size() * widget->devicePixelRatio();
16
obs-studio-0.16.5.tar.xz/UI/forms/OBSBasic.ui -> obs-studio-0.16.6.tar.xz/UI/forms/OBSBasic.ui
Changed
50
1
2
<addaction name="actionMoveToTop"/>
3
<addaction name="actionMoveToBottom"/>
4
</widget>
5
+ <widget class="QMenu" name="scalingMenu">
6
+ <property name="title">
7
+ <string>Basic.MainMenu.Edit.Scale</string>
8
+ </property>
9
+ <addaction name="actionScaleWindow"/>
10
+ <addaction name="actionScaleCanvas"/>
11
+ <addaction name="actionScaleOutput"/>
12
+ </widget>
13
<addaction name="transformMenu"/>
14
<addaction name="orderMenu"/>
15
+ <addaction name="scalingMenu"/>
16
<addaction name="actionLockPreview"/>
17
<addaction name="separator"/>
18
<addaction name="actionAdvAudioProperties"/>
19
20
<string>Basic.MainMenu.Edit.LockPreview</string>
21
</property>
22
</action>
23
+ <action name="actionScaleWindow">
24
+ <property name="checkable">
25
+ <bool>true</bool>
26
+ </property>
27
+ <property name="text">
28
+ <string>Basic.MainMenu.Edit.Scale.Window</string>
29
+ </property>
30
+ </action>
31
+ <action name="actionScaleCanvas">
32
+ <property name="checkable">
33
+ <bool>true</bool>
34
+ </property>
35
+ <property name="text">
36
+ <string>Basic.MainMenu.Edit.Scale.Canvas</string>
37
+ </property>
38
+ </action>
39
+ <action name="actionScaleOutput">
40
+ <property name="checkable">
41
+ <bool>true</bool>
42
+ </property>
43
+ <property name="text">
44
+ <string>Basic.MainMenu.Edit.Scale.Output</string>
45
+ </property>
46
+ </action>
47
</widget>
48
<customwidgets>
49
<customwidget>
50
obs-studio-0.16.5.tar.xz/UI/forms/images/obs.png -> obs-studio-0.16.6.tar.xz/UI/forms/images/obs.png
Changed
obs-studio-0.16.5.tar.xz/UI/forms/images/tray_active.png -> obs-studio-0.16.6.tar.xz/UI/forms/images/tray_active.png
Changed
obs-studio-0.16.5.tar.xz/UI/frontend-plugins/frontend-tools/data/locale/da-DK.ini -> obs-studio-0.16.6.tar.xz/UI/frontend-plugins/frontend-tools/data/locale/da-DK.ini
Changed
24
1
2
-SceneSwitcher="Automatisk sceneskifter"
3
-SceneSwitcher.OnNoMatch="Når intet vindue svarer til:"
4
+SceneSwitcher="Automatisk sceneomskifter"
5
+SceneSwitcher.OnNoMatch="Når intet vindue matcher:"
6
SceneSwitcher.OnNoMatch.DontSwitch="Skift ikke"
7
SceneSwitcher.OnNoMatch.SwitchTo="Skift til:"
8
SceneSwitcher.CheckInterval="Kontroller aktivt vinduestitel hvert:"
9
-SceneSwitcher.ActiveOrNotActive="Sceneskifter er:"
10
+SceneSwitcher.ActiveOrNotActive="Sceneomskifter er:"
11
+InvalidRegex.Title="Ugyldigt regulært udtryk"
12
+InvalidRegex.Text="Det af dig angivne regulære udtryk er ugyldigt."
13
Active="Aktiv"
14
Inactive="Inaktiv"
15
Start="Start"
16
Stop="Stop"
17
18
+OutputTimer="Output-timer"
19
+OutputTimer.Stream="Stands streaming efter:"
20
+OutputTimer.Record="Stands optagelse efter:"
21
+OutputTimer.Stream.StoppingIn="Streaming standser om:"
22
+OutputTimer.Record.StoppingIn="Streaming standser om:"
23
24
obs-studio-0.16.5.tar.xz/UI/frontend-plugins/frontend-tools/data/locale/nl-NL.ini -> obs-studio-0.16.6.tar.xz/UI/frontend-plugins/frontend-tools/data/locale/nl-NL.ini
Changed
18
1
2
SceneSwitcher.OnNoMatch.SwitchTo="Wissel naar:"
3
SceneSwitcher.CheckInterval="Controleer actieve venstertitel elke:"
4
SceneSwitcher.ActiveOrNotActive="Scènewisselaar is:"
5
+InvalidRegex.Title="Ongeldige Reguliere Expressie"
6
+InvalidRegex.Text="De ingevoerde reguliere expressie is ongeldig."
7
Active="Actief"
8
Inactive="Inactief"
9
Start="Start"
10
Stop="Stop"
11
12
+OutputTimer="Uitvoertimer"
13
+OutputTimer.Stream="Stop met streamen na:"
14
+OutputTimer.Record="Stop met opnemen na:"
15
+OutputTimer.Stream.StoppingIn="Stream stopt over:"
16
+OutputTimer.Record.StoppingIn="Opname stopt over:"
17
18
obs-studio-0.16.5.tar.xz/UI/frontend-plugins/frontend-tools/data/locale/pt-BR.ini -> obs-studio-0.16.6.tar.xz/UI/frontend-plugins/frontend-tools/data/locale/pt-BR.ini
Changed
20
1
2
SceneSwitcher.OnNoMatch.SwitchTo="Alternar para:"
3
SceneSwitcher.CheckInterval="Checar o título da janela ativa a cada:"
4
SceneSwitcher.ActiveOrNotActive="O alternador de cenas está:"
5
-InvalidRegex.Title="Expressão regular inválida"
6
-InvalidRegex.Text="A expressão regular que introduziu é inválida."
7
+InvalidRegex.Title="Expressão Regular inválida"
8
+InvalidRegex.Text="A expressão regular que você inseriu é inválida."
9
Active="Ligado"
10
Inactive="Desligado"
11
Start="Iniciar"
12
Stop="Parar"
13
14
OutputTimer="Temporizador de saída"
15
-OutputTimer.Stream="Para a transmissão após:"
16
+OutputTimer.Stream="Parar a transmissão após:"
17
OutputTimer.Record="Parar a gravação após:"
18
OutputTimer.Stream.StoppingIn="A transmissão irá parar em:"
19
OutputTimer.Record.StoppingIn="A gravação irá parar em:"
20
obs-studio-0.16.6.tar.xz/UI/frontend-plugins/frontend-tools/data/locale/sk-SK.ini
Added
11
1
2
+SceneSwitcher.CheckInterval="Kontrolovať aktívne okno každých:"
3
+Active="Aktívny"
4
+Inactive="Neaktivní"
5
+Start="Spustiť"
6
+Stop="Zastaviť"
7
+
8
+OutputTimer.Stream="Zastaviť stream po:"
9
+OutputTimer.Record="Zastaviť nahrávanie po:"
10
+
11
obs-studio-0.16.5.tar.xz/UI/installer/mp-installer.nsi -> obs-studio-0.16.6.tar.xz/UI/installer/mp-installer.nsi
Changed
170
1
2
3
; Define your application name
4
!define APPNAME "OBS Studio"
5
-!define APPVERSION "0.13.4"
6
+!define APPVERSION "0.16.5"
7
!define APPNAMEANDVERSION "OBS Studio ${APPVERSION}"
8
-; !define BROWSER
9
+; !define FULL
10
+; !define REALSENSE_PLUGIN
11
12
; Additional script dependencies
13
!include WinVer.nsh
14
15
Name "${APPNAMEANDVERSION}"
16
InstallDir "$PROGRAMFILES32\obs-studio"
17
InstallDirRegKey HKLM "Software\${APPNAME}" ""
18
-!ifdef BROWSER
19
-OutFile "OBS-Studio-${APPVERSION}-With-Browser-Installer.exe"
20
+!ifdef FULL
21
+OutFile "OBS-Studio-${APPVERSION}-Full-Installer.exe"
22
!else
23
-OutFile "OBS-Studio-${APPVERSION}-Installer.exe"
24
+OutFile "OBS-Studio-${APPVERSION}-Small-Installer.exe"
25
!endif
26
27
; Use compression
28
29
!insertmacro MUI_PAGE_WELCOME
30
!insertmacro MUI_PAGE_LICENSE "data\obs-studio\license\gplv2.txt"
31
!insertmacro MUI_PAGE_DIRECTORY
32
+!ifdef FULL
33
+ !insertmacro MUI_PAGE_COMPONENTS
34
+!endif
35
!insertmacro MUI_PAGE_INSTFILES
36
!insertmacro MUI_PAGE_FINISH
37
38
39
40
Var outputErrors
41
42
-Section "OBS Studio" Section1
43
+Section "OBS Studio" SecCore
44
45
; Set Section properties
46
+ SectionIn RO
47
SetOverwrite on
48
AllowSkipFiles off
49
50
- FindProcDLL::KillProc "obs-plugins\32bit\cef-bootstrap.exe"
51
- FindProcDLL::KillProc "obs-plugins\64bit\cef-bootstrap.exe"
52
+ KillProcDLL::KillProc "obs-plugins\32bit\cef-bootstrap.exe"
53
+ KillProcDLL::KillProc "obs-plugins\64bit\cef-bootstrap.exe"
54
55
SetShellVarContext all
56
57
58
Call filesInUse
59
SectionEnd
60
61
+!ifdef FULL
62
+SectionGroup /e "Plugins" SecPlugins
63
+ Section "Browser plugin" SecPlugins_Browser
64
+ ; Set Section properties
65
+ SetOverwrite on
66
+ AllowSkipFiles off
67
+ SetShellVarContext all
68
+
69
+ SetOutPath "$INSTDIR\obs-plugins"
70
+ File /r "obs-browser\obs-plugins\32bit"
71
+
72
+ ${if} ${RunningX64}
73
+ File /r "obs-browser\obs-plugins\64bit"
74
+ ${endif}
75
+
76
+ SetOutPath "$INSTDIR\bin\32bit"
77
+ SectionEnd
78
+
79
+ !ifdef REALSENSE_PLUGIN
80
+ Section /o "Realsense plugin" SecPlugins_Realsense
81
+ SetOverwrite on
82
+ AllowSkipFiles off
83
+ SetShellVarContext all
84
+
85
+ SetOutPath "$INSTDIR\obs-plugins"
86
+ File /r "realsense\32bit"
87
+
88
+ ${if} ${RunningX64}
89
+ File /r "realsense\64bit"
90
+ ${endif}
91
+
92
+ SetOutPath "$INSTDIR\data\obs-plugins"
93
+ File /r "realsense\actual_data\obs-plugins\win-ivcam"
94
+
95
+ ExecWait '"$INSTDIR\data\obs-plugins\win-ivcam\seg_service.exe" /UnregServer'
96
+ ExecWait '"$INSTDIR\data\obs-plugins\win-ivcam\seg_service.exe" /RegServer'
97
+
98
+ ReadRegStr $0 HKLM "Software\Intel\RSSDK\Dispatch" "Core"
99
+ ${if} ${Errors}
100
+ ReadRegStr $0 HKLM "Software\Intel\RSSDK\v10\Dispatch" "Core"
101
+ ${endif}
102
+
103
+ ${if} ${Errors}
104
+ InitPluginsDir
105
+ SetOutPath "$PLUGINSDIR\realsense"
106
+
107
+ File "intel_rs_sdk_runtime_websetup_10.0.26.0396.exe"
108
+ ExecWait '"$PLUGINSDIR\realsense\intel_rs_sdk_runtime_websetup_10.0.26.0396.exe" --finstall=personify --fnone=all'
109
+ {endif}
110
+
111
+ SetOutPath "$INSTDIR\bin\32bit"
112
+ SectionEnd
113
+ !endif
114
+SectionGroupEnd
115
+!endif
116
+
117
Section -FinishSection
118
119
WriteRegStr HKLM "Software\${APPNAME}" "" "$INSTDIR"
120
121
122
; Modern install component descriptions
123
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
124
- !insertmacro MUI_DESCRIPTION_TEXT ${Section1} ""
125
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecCore} "Core OBS Studio files"
126
+ !ifdef FULL
127
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecPlugins} "Optional Plugins"
128
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecPlugins_Browser} "Browser plugin (a source you can add to your scenes that displays web pages)"
129
+ !ifdef REALSENSE_PLUGIN
130
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecPlugins_Realsense} "Plugin for Realsense cameras"
131
+ !endif
132
+ !endif
133
!insertmacro MUI_FUNCTION_DESCRIPTION_END
134
135
;Uninstall section
136
-Section "un.obs-studio Program Files"
137
+Section "un.obs-studio Program Files" UninstallSection1
138
139
SectionIn RO
140
141
142
Delete "$SMPROGRAMS\OBS Studio\OBS Studio (64bit).lnk"
143
${endif}
144
145
+ IfFileExists "$INSTDIR\data\obs-plugins\win-ivcam\seg_service.exe" UnregisterSegService SkipUnreg
146
+ UnregisterSegService:
147
+ ExecWait '"$INSTDIR\data\obs-plugins\win-ivcam\seg_service.exe" /UnregServer'
148
+ SkipUnreg:
149
+
150
; Clean up OBS Studio
151
RMDir /r "$INSTDIR\bin"
152
RMDir /r "$INSTDIR\data"
153
154
RMDir "$INSTDIR\OBS Studio"
155
SectionEnd
156
157
-Section /o "un.User Settings" Section2
158
+Section /o "un.User Settings" UninstallSection2
159
RMDir /R "$APPDATA\obs-studio"
160
SectionEnd
161
162
!insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
163
- !insertmacro MUI_DESCRIPTION_TEXT ${Section1} "Remove the OBS program files."
164
- !insertmacro MUI_DESCRIPTION_TEXT ${Section2} "Removes all settings, plugins, scenes and sources, profiles, log files and other application data."
165
+ !insertmacro MUI_DESCRIPTION_TEXT ${UninstallSection1} "Remove the OBS program files."
166
+ !insertmacro MUI_DESCRIPTION_TEXT ${UninstallSection2} "Removes all settings, plugins, scenes and sources, profiles, log files and other application data."
167
!insertmacro MUI_UNFUNCTION_DESCRIPTION_END
168
169
; Version information
170
obs-studio-0.16.5.tar.xz/UI/obs-app.cpp -> obs-studio-0.16.6.tar.xz/UI/obs-app.cpp
Changed
43
1
2
static string lastLogFile;
3
4
static bool portable_mode = false;
5
+static bool log_verbose = false;
6
+static bool unfiltered_log = false;
7
bool opt_start_streaming = false;
8
bool opt_start_recording = false;
9
string opt_starting_collection;
10
11
12
lock_guard<mutex> guard(log_mutex);
13
14
+ if (unfiltered_log) {
15
+ return false;
16
+ }
17
+
18
if (last_msg_ptr == msg) {
19
int diff = std::abs(new_sum - last_char_sum);
20
if (diff < MAX_CHAR_VARIATION) {
21
22
if (too_many_repeated_entries(logFile, msg, str))
23
return;
24
25
- if (log_level <= LOG_INFO)
26
+ if (log_level <= LOG_INFO || log_verbose)
27
LogStringChunk(logFile, str);
28
29
#if defined(_WIN32) && defined(OBS_DEBUGBREAK_ON_ERROR)
30
31
if (arg_is(argv[i], "--portable", "-p")) {
32
portable_mode = true;
33
34
+ } else if (arg_is(argv[i], "--verbose", nullptr)) {
35
+ log_verbose = true;
36
+
37
+ } else if (arg_is(argv[i], "--unfiltered_log", nullptr)) {
38
+ unfiltered_log = true;
39
+
40
} else if (arg_is(argv[i], "--startstreaming", nullptr)) {
41
opt_start_streaming = true;
42
43
obs-studio-0.16.5.tar.xz/UI/window-basic-main-outputs.cpp -> obs-studio-0.16.6.tar.xz/UI/window-basic-main-outputs.cpp
Changed
29
1
2
obs_data_set_int(settings, "AMF.H264.Usage", 0);
3
obs_data_set_int(settings, "AMF.H264.Profile", 100); // High
4
obs_data_set_string(settings, "profile", "high"); // High
5
- obs_data_set_int(settings, "AMF.H264.ProfileLevel", 0); // Automatic
6
7
// Rate Control Properties
8
obs_data_set_int(settings, "AMF.H264.RateControlMethod", 1);
9
10
obs_data_set_int(settings, "AMF.H264.Bitrate.Target", bitrate);
11
obs_data_set_int(settings, "bitrate", bitrate);
12
obs_data_set_int(settings, "AMF.H264.FillerData", 1);
13
- obs_data_set_int(settings, "AMF.H264.VBVBuffer", 0); // Automatic VBV Buffer
14
- obs_data_set_double(settings, "AMF.H264.VBVBuffer.Strictness", 0.9);
15
16
// Picture Control Properties
17
obs_data_set_double(settings, "AMF.H264.KeyframeInterval", 2.0);
18
19
obs_data_set_int(settings, "AMF.H264.Usage", 0);
20
obs_data_set_int(settings, "AMF.H264.Profile", 100); // High
21
obs_data_set_string(settings, "profile", "high"); // High
22
- obs_data_set_int(settings, "AMF.H264.ProfileLevel", 0); // Automatic
23
24
- // Rate Control Properties
25
+ // Rate Control Properties
26
obs_data_set_int(settings, "AMF.H264.RateControlMethod", 0);
27
obs_data_set_string(settings, "rate_control", "CQP");
28
obs_data_set_int(settings, "AMF.H264.QP.IFrame", cqp);
29
obs-studio-0.16.5.tar.xz/UI/window-basic-main.cpp -> obs-studio-0.16.6.tar.xz/UI/window-basic-main.cpp
Changed
152
1
2
scene, curProgramScene);
3
4
obs_data_set_bool(saveData, "preview_locked", ui->preview->Locked());
5
+ obs_data_set_int(saveData, "scaling_mode",
6
+ static_cast<uint32_t>(ui->preview->GetScalingMode()));
7
8
if (api) {
9
obs_data_t *moduleObj = obs_data_create();
10
11
ui->preview->SetLocked(previewLocked);
12
ui->actionLockPreview->setChecked(previewLocked);
13
14
+ ScalingMode previewScaling = static_cast<ScalingMode>(
15
+ obs_data_get_int(data, "scaling_mode"));
16
+ switch (previewScaling) {
17
+ case ScalingMode::Window:
18
+ case ScalingMode::Canvas:
19
+ case ScalingMode::Output:
20
+ break;
21
+ default:
22
+ previewScaling = ScalingMode::Window;
23
+ }
24
+
25
+ ui->preview->SetScaling(previewScaling);
26
+
27
if (api) {
28
obs_data_t *modulesObj = obs_data_get_obj(data, "modules");
29
api->on_load(modulesObj);
30
31
return GetSceneItem(GetTopSelectedSourceItem());
32
}
33
34
+void OBSBasic::UpdatePreviewScalingMenu()
35
+{
36
+ ScalingMode scalingMode = ui->preview->GetScalingMode();
37
+ ui->actionScaleWindow->setChecked(
38
+ scalingMode == ScalingMode::Window);
39
+ ui->actionScaleCanvas->setChecked(
40
+ scalingMode == ScalingMode::Canvas);
41
+ ui->actionScaleOutput->setChecked(
42
+ scalingMode == ScalingMode::Output);
43
+}
44
+
45
void OBSBasic::UpdateSources(OBSScene scene)
46
{
47
ClearListItems(ui->sources);
48
49
void OBSBasic::ResizePreview(uint32_t cx, uint32_t cy)
50
{
51
QSize targetSize;
52
+ ScalingMode scalingMode;
53
+ obs_video_info ovi;
54
55
/* resize preview panel to fix to the top section of the window */
56
targetSize = GetPixelSize(ui->preview);
57
- GetScaleAndCenterPos(int(cx), int(cy),
58
- targetSize.width() - PREVIEW_EDGE_SIZE * 2,
59
- targetSize.height() - PREVIEW_EDGE_SIZE * 2,
60
- previewX, previewY, previewScale);
61
+
62
+ scalingMode = ui->preview->GetScalingMode();
63
+ obs_get_video_info(&ovi);
64
+
65
+ if (scalingMode == ScalingMode::Canvas) {
66
+ previewScale = 1.0f;
67
+ GetCenterPosFromFixedScale(int(cx), int(cy),
68
+ targetSize.width() - PREVIEW_EDGE_SIZE * 2,
69
+ targetSize.height() - PREVIEW_EDGE_SIZE * 2,
70
+ previewX, previewY, previewScale);
71
+ previewX += ui->preview->ScrollX();
72
+ previewY += ui->preview->ScrollY();
73
+
74
+ } else if (scalingMode == ScalingMode::Output) {
75
+ previewScale = float(ovi.output_width) / float(ovi.base_width);
76
+ GetCenterPosFromFixedScale(int(cx), int(cy),
77
+ targetSize.width() - PREVIEW_EDGE_SIZE * 2,
78
+ targetSize.height() - PREVIEW_EDGE_SIZE * 2,
79
+ previewX, previewY, previewScale);
80
+ previewX += ui->preview->ScrollX();
81
+ previewY += ui->preview->ScrollY();
82
+
83
+ } else {
84
+ GetScaleAndCenterPos(int(cx), int(cy),
85
+ targetSize.width() - PREVIEW_EDGE_SIZE * 2,
86
+ targetSize.height() - PREVIEW_EDGE_SIZE * 2,
87
+ previewX, previewY, previewScale);
88
+ }
89
90
previewX += float(PREVIEW_EDGE_SIZE);
91
previewY += float(PREVIEW_EDGE_SIZE);
92
93
if (IsPreviewProgramMode())
94
action->setEnabled(false);
95
96
- action = popup.addAction(
97
- QTStr("Basic.MainMenu.Edit.LockPreview"),
98
- this, SLOT(on_actionLockPreview_triggered()));
99
- action->setCheckable(true);
100
- action->setChecked(ui->preview->Locked());
101
+ popup.addAction(ui->actionLockPreview);
102
+ popup.addMenu(ui->scalingMenu);
103
104
previewProjector = new QMenu(QTStr("PreviewProjector"));
105
AddProjectorMenuMonitors(previewProjector, this,
106
107
ui->actionLockPreview->setChecked(ui->preview->Locked());
108
}
109
110
+void OBSBasic::on_scalingMenu_aboutToShow()
111
+{
112
+ obs_video_info ovi;
113
+ obs_get_video_info(&ovi);
114
+
115
+ QAction *action = ui->actionScaleCanvas;
116
+ QString text = QTStr("Basic.MainMenu.Edit.Scale.Canvas");
117
+ text = text.arg(QString::number(ovi.base_width),
118
+ QString::number(ovi.base_height));
119
+ action->setText(text);
120
+
121
+ action = ui->actionScaleOutput;
122
+ text = QTStr("Basic.MainMenu.Edit.Scale.Output");
123
+ text = text.arg(QString::number(ovi.output_width),
124
+ QString::number(ovi.output_height));
125
+ action->setText(text);
126
+
127
+ UpdatePreviewScalingMenu();
128
+}
129
+
130
+void OBSBasic::on_actionScaleWindow_triggered()
131
+{
132
+ ui->preview->SetScaling(ScalingMode::Window);
133
+ ui->preview->ResetScrollingOffset();
134
+ emit ui->preview->DisplayResized();
135
+}
136
+
137
+void OBSBasic::on_actionScaleCanvas_triggered()
138
+{
139
+ ui->preview->SetScaling(ScalingMode::Canvas);
140
+ emit ui->preview->DisplayResized();
141
+}
142
+
143
+void OBSBasic::on_actionScaleOutput_triggered()
144
+{
145
+ ui->preview->SetScaling(ScalingMode::Output);
146
+ emit ui->preview->DisplayResized();
147
+}
148
+
149
void OBSBasic::SetShowing(bool showing)
150
{
151
if (!showing && isVisible()) {
152
obs-studio-0.16.5.tar.xz/UI/window-basic-main.hpp -> obs-studio-0.16.6.tar.xz/UI/window-basic-main.hpp
Changed
22
1
2
void GetFPSNanoseconds(uint32_t &num, uint32_t &den) const;
3
void GetConfigFPS(uint32_t &num, uint32_t &den) const;
4
5
+ void UpdatePreviewScalingMenu();
6
+
7
void UpdateSources(OBSScene scene);
8
void InsertSceneItem(obs_sceneitem_t *item);
9
10
11
12
void on_actionLockPreview_triggered();
13
14
+ void on_scalingMenu_aboutToShow();
15
+ void on_actionScaleWindow_triggered();
16
+ void on_actionScaleCanvas_triggered();
17
+ void on_actionScaleOutput_triggered();
18
+
19
void on_streamButton_clicked();
20
void on_recordButton_clicked();
21
void on_settingsButton_clicked();
22
obs-studio-0.16.5.tar.xz/UI/window-basic-preview.cpp -> obs-studio-0.16.6.tar.xz/UI/window-basic-preview.cpp
Changed
101
1
2
OBSBasicPreview::OBSBasicPreview(QWidget *parent, Qt::WindowFlags flags)
3
: OBSQTDisplay(parent, flags)
4
{
5
+ ResetScrollingOffset();
6
setMouseTracking(true);
7
}
8
9
10
}
11
}
12
13
+void OBSBasicPreview::keyPressEvent(QKeyEvent *event)
14
+{
15
+ if (GetScalingMode() == ScalingMode::Window ||
16
+ event->isAutoRepeat()) {
17
+ OBSQTDisplay::keyPressEvent(event);
18
+ return;
19
+ }
20
+
21
+ switch (event->key()) {
22
+ case Qt::Key_Space:
23
+ setCursor(Qt::OpenHandCursor);
24
+ scrollMode = true;
25
+ break;
26
+ }
27
+
28
+ OBSQTDisplay::keyPressEvent(event);
29
+}
30
+
31
+void OBSBasicPreview::keyReleaseEvent(QKeyEvent *event)
32
+{
33
+ if (event->isAutoRepeat()) {
34
+ OBSQTDisplay::keyReleaseEvent(event);
35
+ return;
36
+ }
37
+
38
+ switch (event->key()) {
39
+ case Qt::Key_Space:
40
+ scrollMode = false;
41
+ setCursor(Qt::ArrowCursor);
42
+ break;
43
+ }
44
+
45
+ OBSQTDisplay::keyReleaseEvent(event);
46
+}
47
+
48
void OBSBasicPreview::mousePressEvent(QMouseEvent *event)
49
{
50
+ if (scrollMode && GetScalingMode() != ScalingMode::Window &&
51
+ event->button() == Qt::LeftButton) {
52
+ setCursor(Qt::ClosedHandCursor);
53
+ scrollingFrom.x = event->x();
54
+ scrollingFrom.y = event->y();
55
+ return;
56
+ }
57
+
58
+ if (event->button() == Qt::RightButton) {
59
+ scrollMode = false;
60
+ setCursor(Qt::ArrowCursor);
61
+ }
62
+
63
if (locked) {
64
OBSQTDisplay::mousePressEvent(event);
65
return;
66
67
68
void OBSBasicPreview::mouseReleaseEvent(QMouseEvent *event)
69
{
70
+ if (scrollMode)
71
+ setCursor(Qt::OpenHandCursor);
72
+
73
if (locked) {
74
OBSQTDisplay::mouseReleaseEvent(event);
75
return;
76
77
78
void OBSBasicPreview::mouseMoveEvent(QMouseEvent *event)
79
{
80
+ if (scrollMode && event->buttons() == Qt::LeftButton) {
81
+ scrollingOffset.x += event->x() - scrollingFrom.x;
82
+ scrollingOffset.y += event->y() - scrollingFrom.y;
83
+ scrollingFrom.x = event->x();
84
+ scrollingFrom.y = event->y();
85
+ emit DisplayResized();
86
+ return;
87
+ }
88
+
89
if (locked)
90
return;
91
92
93
gs_technique_end_pass(tech);
94
gs_technique_end(tech);
95
}
96
+
97
+void OBSBasicPreview::ResetScrollingOffset()
98
+{
99
+ vec2_zero(&scrollingOffset);
100
+}
101
obs-studio-0.16.5.tar.xz/UI/window-basic-preview.hpp -> obs-studio-0.16.6.tar.xz/UI/window-basic-preview.hpp
Changed
63
1
2
BottomRight = ITEM_BOTTOM | ITEM_RIGHT
3
};
4
5
+enum class ScalingMode : uint32_t {
6
+ Window = 0,
7
+ Canvas = 1,
8
+ Output = 2
9
+};
10
+
11
class OBSBasicPreview : public OBSQTDisplay {
12
Q_OBJECT
13
14
15
vec2 cropSize;
16
OBSSceneItem stretchItem;
17
ItemHandle stretchHandle = ItemHandle::None;
18
+ ScalingMode scale = ScalingMode::Window;
19
vec2 stretchItemSize;
20
matrix4 screenToItem;
21
matrix4 itemToScreen;
22
23
vec2 startPos;
24
vec2 lastMoveOffset;
25
+ vec2 scrollingFrom;
26
+ vec2 scrollingOffset;
27
bool mouseDown = false;
28
bool mouseMoved = false;
29
bool mouseOverItems = false;
30
bool cropping = false;
31
bool locked = false;
32
+ bool scrollMode = false;
33
34
static vec2 GetMouseEventPos(QMouseEvent *event);
35
static bool DrawSelectedItem(obs_scene_t *scene, obs_sceneitem_t *item,
36
37
public:
38
OBSBasicPreview(QWidget *parent, Qt::WindowFlags flags = 0);
39
40
+ virtual void keyPressEvent(QKeyEvent *event) override;
41
+ virtual void keyReleaseEvent(QKeyEvent *event) override;
42
+
43
virtual void mousePressEvent(QMouseEvent *event) override;
44
virtual void mouseReleaseEvent(QMouseEvent *event) override;
45
virtual void mouseMoveEvent(QMouseEvent *event) override;
46
47
void DrawSceneEditing();
48
+ void ResetScrollingOffset();
49
50
inline void SetLocked(bool newLockedVal) {locked = newLockedVal;}
51
inline void ToggleLocked() {locked = !locked;}
52
inline bool Locked() const {return locked;}
53
54
+ inline void SetScaling(ScalingMode newScaledVal) {scale = newScaledVal;}
55
+ inline ScalingMode GetScalingMode() const {return scale;}
56
+
57
+ inline float ScrollX() const {return scrollingOffset.x;}
58
+ inline float ScrollY() const {return scrollingOffset.y;}
59
+
60
/* use libobs allocator for alignment because the matrices itemToScreen
61
* and screenToItem may contain SSE data, which will cause SSE
62
* instructions to crash if the data is not aligned to at least a 16
63
obs-studio-0.16.5.tar.xz/UI/window-basic-settings.cpp -> obs-studio-0.16.6.tar.xz/UI/window-basic-settings.cpp
Changed
43
1
2
"QSVPreset");
3
const char *nvPreset = config_get_string(main->Config(), "SimpleOutput",
4
"NVENCPreset");
5
+ const char* amdPreset = config_get_string(main->Config(), "SimpleOutput",
6
+ "AMDPreset");
7
const char *custom = config_get_string(main->Config(), "SimpleOutput",
8
"x264Settings");
9
const char *recQual = config_get_string(main->Config(), "SimpleOutput",
10
11
curPreset = preset;
12
curQSVPreset = qsvPreset;
13
curNVENCPreset = nvPreset;
14
+ curAMDPreset = amdPreset;
15
16
audioBitrate = FindClosestAvailableAACBitrate(audioBitrate);
17
18
19
obs_data_t *settings = obs_encoder_defaults(encoder);
20
OBSPropertiesView *view;
21
22
- char encoderJsonPath[512];
23
- int ret = GetProfilePath(encoderJsonPath, sizeof(encoderJsonPath),
24
- path);
25
- if (ret > 0) {
26
- obs_data_t *data = obs_data_create_from_json_file_safe(
27
- encoderJsonPath, "bak");
28
- obs_data_apply(settings, data);
29
- obs_data_release(data);
30
+ if (path) {
31
+ char encoderJsonPath[512];
32
+ int ret = GetProfilePath(encoderJsonPath,
33
+ sizeof(encoderJsonPath), path);
34
+ if (ret > 0) {
35
+ obs_data_t *data = obs_data_create_from_json_file_safe(
36
+ encoderJsonPath, "bak");
37
+ obs_data_apply(settings, data);
38
+ obs_data_release(data);
39
+ }
40
}
41
42
view = new OBSPropertiesView(settings, encoder,
43
obs-studio-0.16.6.tar.xz/cmake/Modules/FindRSSDK.cmake
Added
42
1
2
+# Once done these will be defined:
3
+#
4
+# RSSDK_FOUND
5
+# RSSDK_INCLUDE_DIRS
6
+# RSSDK_LIBRARIES
7
+#
8
+# For use in OBS:
9
+#
10
+# RSSDK_INCLUDE_DIR
11
+
12
+if(CMAKE_SIZEOF_VOID_P EQUAL 8)
13
+ set(_RSSDK_lib_dir "x64")
14
+else()
15
+ set(_RSSDK_lib_dir "Win32")
16
+endif()
17
+
18
+find_path(RSSDK_INCLUDE_DIR
19
+ NAMES pxcsession.h
20
+ HINTS
21
+ ENV RSSDK_DIR
22
+ PATH_SUFFIXES
23
+ include)
24
+
25
+find_library(RSSDK_LIB
26
+ NAMES libpxc
27
+ HINTS
28
+ ENV RSSDK_DIR
29
+ PATH_SUFFIXES
30
+ lib/${_RSSDK_lib_dir}
31
+ )
32
+
33
+include(FindPackageHandleStandardArgs)
34
+find_package_handle_standard_args(RSSDK DEFAULT_MSG RSSDK_LIB RSSDK_INCLUDE_DIR)
35
+mark_as_advanced(RSSDK_INCLUDE_DIR RSSDK_LIB)
36
+
37
+if(RSSDK_FOUND)
38
+ set(RSSDK_INCLUDE_DIRS ${RSSDK_INCLUDE_DIR})
39
+ set(RSSDK_LIBRARIES ${RSSDK_LIB})
40
+endif()
41
+
42
obs-studio-0.16.5.tar.xz/cmake/Modules/IDLFileHelper.cmake -> obs-studio-0.16.6.tar.xz/cmake/Modules/IDLFileHelper.cmake
Changed
40
1
2
-macro(add_idl_files generated_files)
3
+macro(add_idl_files_base generated_files with_tlb)
4
foreach(filename ${ARGN})
5
get_filename_component(file_we ${filename} NAME_WE)
6
get_filename_component(file_path ${filename} PATH)
7
8
set(bin_file_c ${CMAKE_CURRENT_BINARY_DIR}/${file_c})
9
10
if(MSVC)
11
+ if(${with_tlb})
12
+ set(file_tlb ${file_we}.tlb)
13
+ set(bin_file_tlb ${CMAKE_CURRENT_BINARY_DIR}/${file_tlb})
14
+ set(tlb_opt "")
15
+ else()
16
+ set(tlb_opt "/notlb")
17
+ endif()
18
+
19
add_custom_command(
20
OUTPUT ${bin_file_h} ${bin_file_c}
21
DEPENDS ${filename}
22
- COMMAND midl /h ${file_h} /iid ${file_c} /notlb ${CMAKE_CURRENT_SOURCE_DIR}/${filename}
23
+ COMMAND midl /h ${file_h} /iid ${file_c} ${tlb_opt} ${CMAKE_CURRENT_SOURCE_DIR}/${filename}
24
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
25
else()
26
execute_process(COMMAND echo
27
28
PROPERTIES
29
HEADER_FILE_ONLY TRUE)
30
endforeach(filename ${ARGN})
31
+endmacro(add_idl_files_base)
32
+
33
+macro(add_idl_files generated_files)
34
+ add_idl_files_base(${generated_files} FALSE ${ARGN})
35
endmacro(add_idl_files)
36
+
37
+macro(add_idl_files_with_tlb generated_files)
38
+ add_idl_files_base(${generated_files} TRUE ${ARGN})
39
+endmacro(add_idl_files_with_tlb)
40
obs-studio-0.16.5.tar.xz/libobs-opengl/gl-subsystem.c -> obs-studio-0.16.6.tar.xz/libobs-opengl/gl-subsystem.c
Changed
16
1
2
device_leave_context(device);
3
device->cur_swap = NULL;
4
5
+#ifdef _WIN32
6
+ blog(LOG_INFO, "Warning: The OpenGL renderer is currently in use. "
7
+ "On windows, the OpenGL renderer can decrease "
8
+ "capture performance due to the lack of specific "
9
+ "features used to maximize capture performance. "
10
+ "The Direct3D 11 renderer is recommended instead.");
11
+#endif
12
+
13
*p_device = device;
14
return GS_SUCCESS;
15
16
obs-studio-0.16.5.tar.xz/libobs/obs-config.h -> obs-studio-0.16.6.tar.xz/libobs/obs-config.h
Changed
10
1
2
*
3
* Reset to zero each major or minor version
4
*/
5
-#define LIBOBS_API_PATCH_VER 5
6
+#define LIBOBS_API_PATCH_VER 6
7
8
#define MAKE_SEMANTIC_VERSION(major, minor, patch) \
9
((major << 24) | \
10
obs-studio-0.16.5.tar.xz/libobs/obs-internal.h -> obs-studio-0.16.6.tar.xz/libobs/obs-internal.h
Changed
9
1
2
int async_plane_offset[2];
3
bool async_flip;
4
bool async_active;
5
+ bool async_update_texture;
6
DARRAY(struct async_frame) async_cache;
7
DARRAY(struct obs_source_frame*)async_frames;
8
pthread_mutex_t async_mutex;
9
obs-studio-0.16.5.tar.xz/libobs/obs-source.c -> obs-studio-0.16.6.tar.xz/libobs/obs-source.c
Changed
109
1
2
obs_scene_t *new_scene = obs_scene_duplicate(scene, new_name,
3
create_private ? OBS_SCENE_DUP_PRIVATE_COPY :
4
OBS_SCENE_DUP_COPY);
5
- return obs_scene_get_source(new_scene);
6
+ obs_source_t *new_source = obs_scene_get_source(new_scene);
7
+ duplicate_filters(new_source, source, create_private);
8
+ return new_source;
9
}
10
11
settings = obs_data_create();
12
13
14
static inline struct obs_source_frame *get_closest_frame(obs_source_t *source,
15
uint64_t sys_time);
16
+bool set_async_texture_size(struct obs_source *source,
17
+ const struct obs_source_frame *frame);
18
+
19
+static void async_tick(obs_source_t *source)
20
+{
21
+ uint64_t sys_time = obs->video.video_time;
22
+
23
+ pthread_mutex_lock(&source->async_mutex);
24
+
25
+ if (deinterlacing_enabled(source)) {
26
+ deinterlace_process_last_frame(source, sys_time);
27
+ } else {
28
+ if (source->cur_async_frame) {
29
+ remove_async_frame(source,
30
+ source->cur_async_frame);
31
+ source->cur_async_frame = NULL;
32
+ }
33
+
34
+ source->cur_async_frame = get_closest_frame(source,
35
+ sys_time);
36
+ }
37
+
38
+ source->last_sys_timestamp = sys_time;
39
+ pthread_mutex_unlock(&source->async_mutex);
40
+
41
+ if (source->cur_async_frame)
42
+ source->async_update_texture = set_async_texture_size(source,
43
+ source->cur_async_frame);
44
+}
45
46
void obs_source_video_tick(obs_source_t *source, float seconds)
47
{
48
49
if (source->info.type == OBS_SOURCE_TYPE_TRANSITION)
50
obs_transition_tick(source);
51
52
- if ((source->info.output_flags & OBS_SOURCE_ASYNC) != 0) {
53
- uint64_t sys_time = obs->video.video_time;
54
-
55
- pthread_mutex_lock(&source->async_mutex);
56
-
57
- if (deinterlacing_enabled(source)) {
58
- deinterlace_process_last_frame(source, sys_time);
59
- } else {
60
- if (source->cur_async_frame) {
61
- remove_async_frame(source,
62
- source->cur_async_frame);
63
- source->cur_async_frame = NULL;
64
- }
65
-
66
- source->cur_async_frame = get_closest_frame(source,
67
- sys_time);
68
- }
69
-
70
- source->last_sys_timestamp = sys_time;
71
- pthread_mutex_unlock(&source->async_mutex);
72
- }
73
+ if ((source->info.output_flags & OBS_SOURCE_ASYNC) != 0)
74
+ async_tick(source);
75
76
if (source->defer_update)
77
obs_source_deferred_update(source);
78
79
source->async_height = frame->height;
80
source->async_format = frame->format;
81
82
+ gs_enter_context(obs->video.graphics);
83
+
84
gs_texture_destroy(source->async_texture);
85
gs_texture_destroy(source->async_prev_texture);
86
gs_texrender_destroy(source->async_texrender);
87
88
if (deinterlacing_enabled(source))
89
set_deinterlace_texture_size(source);
90
91
+ gs_leave_context();
92
+
93
return !!source->async_texture;
94
}
95
96
97
os_gettime_ns() - frame->timestamp;
98
source->timing_set = true;
99
100
- if (set_async_texture_size(source, frame)) {
101
+ if (source->async_update_texture) {
102
update_async_texture(source, frame,
103
source->async_texture,
104
source->async_texrender);
105
+ source->async_update_texture = false;
106
}
107
108
obs_source_release_frame(source, frame);
109
obs-studio-0.16.5.tar.xz/libobs/obs-win-crash-handler.c -> obs-studio-0.16.6.tar.xz/libobs/obs-win-crash-handler.c
Changed
19
1
2
"Date/Time: %s\r\n"
3
"Fault address: %"PRIX64" (%s)\r\n"
4
"libobs version: "OBS_VERSION"\r\n"
5
- "Windows version: %d.%d build %d (revision %d)\r\n"
6
+ "Windows version: %d.%d build %d (revision: %d; "
7
+ "%s-bit)\r\n"
8
"CPU: %s\r\n\r\n",
9
data->exception->ExceptionRecord->ExceptionCode,
10
date_time,
11
12
data->module_name.array,
13
data->win_version.major, data->win_version.minor,
14
data->win_version.build, data->win_version.revis,
15
+ is_64_bit_windows() ? "64" : "32",
16
data->cpu_info.array);
17
}
18
19
obs-studio-0.16.5.tar.xz/libobs/obs-windows.c -> obs-studio-0.16.6.tar.xz/libobs/obs-windows.c
Changed
18
1
2
note);
3
}
4
5
-static bool is_64_bit_windows(void)
6
-{
7
-#if defined(_WIN64)
8
- return true;
9
-#elif defined(_WIN32)
10
- BOOL b64 = false;
11
- return IsWow64Process(GetCurrentProcess(), &b64) && b64;
12
-#endif
13
-}
14
-
15
static void log_windows_version(void)
16
{
17
struct win_version_info ver;
18
obs-studio-0.16.5.tar.xz/libobs/util/platform-windows.c -> obs-studio-0.16.6.tar.xz/libobs/util/platform-windows.c
Changed
18
1
2
return true;
3
}
4
5
+bool is_64_bit_windows(void)
6
+{
7
+#if defined(_WIN64)
8
+ return true;
9
+#elif defined(_WIN32)
10
+ BOOL b64 = false;
11
+ return IsWow64Process(GetCurrentProcess(), &b64) && b64;
12
+#endif
13
+}
14
+
15
#define WINVER_REG_KEY L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion"
16
17
void get_win_ver(struct win_version_info *info)
18
obs-studio-0.16.5.tar.xz/libobs/util/windows/win-version.h -> obs-studio-0.16.6.tar.xz/libobs/util/windows/win-version.h
Changed
9
1
2
int revis;
3
};
4
5
+EXPORT bool is_64_bit_windows(void);
6
EXPORT bool get_dll_ver(const wchar_t *lib, struct win_version_info *info);
7
EXPORT void get_win_ver(struct win_version_info *info);
8
9
obs-studio-0.16.5.tar.xz/plugins/CMakeLists.txt -> obs-studio-0.16.6.tar.xz/plugins/CMakeLists.txt
Changed
11
1
2
message(STATUS "enc-amf submodule not found! Please fetch submodules. enc-amf plugin disabled.")
3
endif()
4
endif()
5
+ if (MSVC)
6
+ add_subdirectory(win-ivcam)
7
+ endif()
8
elseif(APPLE)
9
add_subdirectory(coreaudio-encoder)
10
add_subdirectory(mac-avcapture)
11
obs-studio-0.16.5.tar.xz/plugins/coreaudio-encoder/data/locale/de-DE.ini -> obs-studio-0.16.6.tar.xz/plugins/coreaudio-encoder/data/locale/de-DE.ini
Changed
7
1
2
-CoreAudioAAC="CoreAudio AAC encoder"
3
+CoreAudioAAC="CoreAudio AAC Codierer"
4
Bitrate="Bitrate"
5
AllowHEAAC="Erlaube HE-AAC"
6
OutputSamplerate="Ausgabe-Abtastrate"
7
obs-studio-0.16.6.tar.xz/plugins/enc-amf/#Resources/HIDDEN_PARAMETERS.md
Added
201
1
2
+For an unknown reason, there are hidden parameters in the Runtime that can be set.
3
+
4
+## AVC Properties
5
+### Static
6
+* FrameSize
7
+* FrameRate
8
+* ExtraData (Read-Only)
9
+* Usage
10
+* Profile<br/>Two new profiles are in the runtime, Constrained Base and Constrained High.
11
+* Profile Level
12
+* MaxOfLTRFrames
13
+* ScanType
14
+* QualityPreset
15
+
16
+### Dynamic
17
+* RateControlMethod
18
+* TargetBitrate
19
+* PeakBitrate
20
+* RateControlSkipFrameEnable
21
+* MinQP
22
+* MaxQP
23
+* QPI
24
+* QPP
25
+* QPB
26
+* VBVBufferSize
27
+* VBVBufferFullness
28
+* EnforceHRD
29
+* MaxAUSize
30
+* FillerDataEnable
31
+* BPicturesDeltaQP
32
+* ReferenceBPicturesDeltaQP
33
+* HeaderInsertionSpacing
34
+* IDRPeriod
35
+* DeBlockingFilter
36
+* IntraRefreshMBsNumberPerSlot
37
+* SlicesPerFrame
38
+* BPicturesPattern
39
+* BReferenceEnable
40
+* HalfPixel
41
+* QuarterPixel
42
+
43
+### Unknown / New
44
+
45
+* **QualityEnhancementMode**<br/>So far always 0.
46
+* **MaxNumRefFrames**<br/>Shouldn't this be a Capability instead? Could perhaps be used to control B-Pictures more.
47
+* **MaxMBPerSec**<br/>Unknown value.
48
+* **InstanceID**
49
+* **EnableVBAQ**<br/>Unknown meaning.
50
+* **RateControlPreanalysisEnable**<br/>Is this Two-Pass encoding?
51
+* **GOPSize**<br/>Technically ignored, but still there in code.
52
+* **AspectRatio**
53
+* **NominalRange**
54
+* **IntraRefreshNumOfStripes**<br/>New, was not here before.
55
+* **SliceMode**<br/>New, was not here before.
56
+* **MaxSliceSize**<br/>New, was not here before.
57
+* **LowLatencyInternal**
58
+* **CommonLowLatencyInternal**
59
+* **SliceControlMode**
60
+* **SliceControlSize**
61
+* **CABACEnable**<br/>Not yet publicly available, but 16.10.3 always uses it anyway.
62
+* **UniqueInstance**
63
+* **EncoderMaxInstances**
64
+* **MultiInstanceMode**
65
+* **MultiInstanceCurrentQueue**
66
+* **WaitForTask**
67
+
68
+23:23:47.388: [AMF Encoder] [CodecId] CodecId (Type: Int64, Index 0)
69
+23:23:47.389: [AMF Encoder] Content Type: 0
70
+23:23:47.389: [AMF Encoder] Access: RW
71
+23:23:47.389: [AMF Encoder] Values:
72
+23:23:47.389: [AMF Encoder] Current: 5
73
+23:23:47.389: [AMF Encoder] Default: 5
74
+23:23:47.389: [AMF Encoder] Minimum: Empty
75
+23:23:47.389: [AMF Encoder] Maximum: Empty
76
+23:23:47.389: [AMF Encoder] Enumeration:
77
+23:23:47.391: [AMF Encoder] H264 (5)
78
+23:23:47.391: [AMF Encoder] UNKNOWN (0)
79
+23:23:47.391: [AMF Encoder] H264SVC (8)
80
+23:23:47.391: [AMF Encoder] UNKNOWN (0)
81
+23:23:47.392: [AMF Encoder] [EngineType] EngineType (Type: Int64, Index 1)
82
+23:23:47.392: [AMF Encoder] Content Type: 0
83
+23:23:47.392: [AMF Encoder] Access: RW
84
+23:23:47.392: [AMF Encoder] Values:
85
+23:23:47.393: [AMF Encoder] Current: 0
86
+23:23:47.393: [AMF Encoder] Default: 0
87
+23:23:47.393: [AMF Encoder] Minimum: Empty
88
+23:23:47.393: [AMF Encoder] Maximum: Empty
89
+23:23:47.393: [AMF Encoder] Enumeration:
90
+23:23:47.393: [AMF Encoder] Auto (0)
91
+23:23:47.394: [AMF Encoder] DX9 (1)
92
+23:23:47.394: [AMF Encoder] DX11 (2)
93
+23:23:47.395: [AMF Encoder] XVBA (3)
94
+23:23:47.395: [AMF Encoder] [Usage] Usage (Type: Int64, Index 2)
95
+23:23:47.395: [AMF Encoder] Content Type: 0
96
+23:23:47.395: [AMF Encoder] Access: RW
97
+23:23:47.395: [AMF Encoder] Values:
98
+23:23:47.395: [AMF Encoder] Current: 0
99
+23:23:47.396: [AMF Encoder] Default: 0
100
+23:23:47.396: [AMF Encoder] Minimum: Empty
101
+23:23:47.396: [AMF Encoder] Maximum: Empty
102
+23:23:47.397: [AMF Encoder] Enumeration:
103
+23:23:47.397: [AMF Encoder] Transcoding (0)
104
+23:23:47.397: [AMF Encoder] Ultra Low Latency (1)
105
+23:23:47.397: [AMF Encoder] Low Latency (2)
106
+23:23:47.397: [AMF Encoder] Webcam (3)
107
+23:23:47.398: [AMF Encoder] [FrameSize] Width (Type: Size, Index 3)
108
+23:23:47.398: [AMF Encoder] Content Type: 0
109
+23:23:47.398: [AMF Encoder] Access: RWX
110
+23:23:47.398: [AMF Encoder] Values:
111
+23:23:47.398: [AMF Encoder] Current: 1920x1080
112
+23:23:47.398: [AMF Encoder] Default: 1920x1080
113
+23:23:47.398: [AMF Encoder] Minimum: 64x64
114
+23:23:47.398: [AMF Encoder] Maximum: 4096x2160
115
+23:23:47.399: [AMF Encoder] [Profile] Profile (Type: Int64, Index 4)
116
+23:23:47.399: [AMF Encoder] Content Type: 0
117
+23:23:47.399: [AMF Encoder] Access: RWX
118
+23:23:47.400: [AMF Encoder] Values:
119
+23:23:47.400: [AMF Encoder] Current: 77
120
+23:23:47.400: [AMF Encoder] Default: 77
121
+23:23:47.401: [AMF Encoder] Minimum: Empty
122
+23:23:47.401: [AMF Encoder] Maximum: Empty
123
+23:23:47.401: [AMF Encoder] Enumeration:
124
+23:23:47.401: [AMF Encoder] Contrained Base (256)
125
+23:23:47.401: [AMF Encoder] Baseline (66)
126
+23:23:47.401: [AMF Encoder] Main (77)
127
+23:23:47.401: [AMF Encoder] Contrained High (257)
128
+23:23:47.402: [AMF Encoder] High (100)
129
+23:23:47.402: [AMF Encoder] [ProfileLevel] Profile-Level (Type: Int64, Index 5)
130
+23:23:47.402: [AMF Encoder] Content Type: 0
131
+23:23:47.402: [AMF Encoder] Access: RW
132
+23:23:47.402: [AMF Encoder] Values:
133
+23:23:47.402: [AMF Encoder] Current: 42
134
+23:23:47.402: [AMF Encoder] Default: 42
135
+23:23:47.402: [AMF Encoder] Minimum: Empty
136
+23:23:47.403: [AMF Encoder] Maximum: Empty
137
+23:23:47.403: [AMF Encoder] Enumeration:
138
+23:23:47.403: [AMF Encoder] 1 (10)
139
+23:23:47.403: [AMF Encoder] 1.1 (11)
140
+23:23:47.403: [AMF Encoder] 1.2 (12)
141
+23:23:47.403: [AMF Encoder] 1.3 (13)
142
+23:23:47.404: [AMF Encoder] 2 (20)
143
+23:23:47.404: [AMF Encoder] 2.1 (21)
144
+23:23:47.404: [AMF Encoder] 2.2 (22)
145
+23:23:47.404: [AMF Encoder] 3 (30)
146
+23:23:47.404: [AMF Encoder] 3.1 (31)
147
+23:23:47.404: [AMF Encoder] 3.2 (32)
148
+23:23:47.404: [AMF Encoder] 4 (40)
149
+23:23:47.404: [AMF Encoder] 4.1 (41)
150
+23:23:47.405: [AMF Encoder] 4.2 (42)
151
+23:23:47.405: [AMF Encoder] 5.0 (50)
152
+23:23:47.405: [AMF Encoder] 5.1 (51)
153
+23:23:47.405: [AMF Encoder] 5.2 (52)
154
+23:23:47.405: [AMF Encoder] [QualityEnhancementMode] Quality Enhancement Mode (Type: Int64, Index 6)
155
+23:23:47.405: [AMF Encoder] Content Type: 0
156
+23:23:47.405: [AMF Encoder] Access:
157
+23:23:47.405: [AMF Encoder] Values:
158
+23:23:47.406: [AMF Encoder] Current: Empty
159
+23:23:47.406: [AMF Encoder] Default: 0
160
+23:23:47.406: [AMF Encoder] Minimum: Empty
161
+23:23:47.406: [AMF Encoder] Maximum: Empty
162
+23:23:47.409: [AMF Encoder] Enumeration:
163
+23:23:47.410: [AMF Encoder] Disable (0)
164
+23:23:47.410: [AMF Encoder] CGS (1)
165
+23:23:47.410: [AMF Encoder] CGS Rewrite (2)
166
+23:23:47.411: [AMF Encoder] MGS (3)
167
+23:23:47.411: [AMF Encoder] [MaxOfLTRFrames] Max Of LTR (Type: Int64, Index 7)
168
+23:23:47.411: [AMF Encoder] Content Type: 0
169
+23:23:47.412: [AMF Encoder] Access: RWX
170
+23:23:47.412: [AMF Encoder] Values:
171
+23:23:47.412: [AMF Encoder] Current: 0
172
+23:23:47.412: [AMF Encoder] Default: 0
173
+23:23:47.413: [AMF Encoder] Minimum: 0
174
+23:23:47.414: [AMF Encoder] Maximum: 2
175
+23:23:47.415: [AMF Encoder] [MaxNumRefFrames] MaxNumRefFrames (Type: Int64, Index 8)
176
+23:23:47.415: [AMF Encoder] Content Type: 0
177
+23:23:47.416: [AMF Encoder] Access: RWX
178
+23:23:47.416: [AMF Encoder] Values:
179
+23:23:47.417: [AMF Encoder] Current: 4
180
+23:23:47.418: [AMF Encoder] Default: 4
181
+23:23:47.418: [AMF Encoder] Minimum: 1
182
+23:23:47.419: [AMF Encoder] Maximum: 16
183
+23:23:47.419: [AMF Encoder] [ConstraintSetFlags] ConstraintSetFlags (Type: Int64, Index 9)
184
+23:23:47.419: [AMF Encoder] Content Type: 0
185
+23:23:47.419: [AMF Encoder] Access: RW
186
+23:23:47.420: [AMF Encoder] Values:
187
+23:23:47.420: [AMF Encoder] Current: 0
188
+23:23:47.420: [AMF Encoder] Default: 0
189
+23:23:47.420: [AMF Encoder] Minimum: 0
190
+23:23:47.420: [AMF Encoder] Maximum: 255
191
+23:23:47.420: [AMF Encoder] [MaxMBPerSec] MaxMBPerSec (Type: Int64, Index 10)
192
+23:23:47.421: [AMF Encoder] Content Type: 0
193
+23:23:47.421: [AMF Encoder] Access: R
194
+23:23:47.421: [AMF Encoder] Values:
195
+23:23:47.421: [AMF Encoder] Current: 638704
196
+23:23:47.421: [AMF Encoder] Default: 638704
197
+23:23:47.421: [AMF Encoder] Minimum: 0
198
+23:23:47.421: [AMF Encoder] Maximum: 2147483647
199
+23:23:47.421: [AMF Encoder] [InstanceID] InstanceID (Type: Int64, Index 11)
200
+23:23:47.421: [AMF Encoder] Content Type: 0
201
obs-studio-0.16.6.tar.xz/plugins/enc-amf/#Resources/Installer.in.iss
Added
117
1
2
+; Script generated by the Inno Setup Script Wizard.
3
+; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
4
+
5
+#define MyAppName "AMD Encoder for OBS Studio"
6
+#define MyAppVersion "@enc-amf_VERSION_MAJOR@.@enc-amf_VERSION_MINOR@.@enc-amf_VERSION_PATCH@.@enc-amf_VERSION_BUILD@"
7
+#define MyAppPublisher "Xaymars Technology Workshop"
8
+#define MyAppURL "http://www.xaymar.com/portfolio/plugin-amd-vce-plugin-for-obs-studio/"
9
+
10
+[Setup]
11
+; NOTE: The value of AppId uniquely identifies this application.
12
+; Do not use the same AppId value in installers for other applications.
13
+; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
14
+AppId={{FD6676CE-0580-4B34-9DB4-4879A0BEB31D}
15
+AppName={#MyAppName}
16
+AppVersion={#MyAppVersion}
17
+;AppVerName={#MyAppName} {#MyAppVersion}
18
+AppPublisher={#MyAppPublisher}
19
+AppPublisherURL={#MyAppURL}
20
+AppSupportURL={#MyAppURL}
21
+AppUpdatesURL={#MyAppURL}
22
+DefaultDirName={code:GetDirName}
23
+DefaultGroupName={#MyAppName}
24
+AllowNoIcons=yes
25
+LicenseFile=..\LICENSE
26
+OutputDir=.\Output
27
+OutputBaseFilename=AMD-Encoder-for-OBS-Studio.{#MyAppVersion}
28
+Compression=lzma
29
+SolidCompression=yes
30
+VersionInfoVersion={#MyAppVersion}
31
+VersionInfoCompany={#MyAppPublisher}
32
+VersionInfoDescription={#MyAppName} Setup
33
+
34
+[Languages]
35
+Name: "english"; MessagesFile: "compiler:Default.isl"
36
+
37
+[Files]
38
+Source: "..\#Build\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
39
+; NOTE: Don't use "Flags: ignoreversion" on any shared system files
40
+
41
+[Icons]
42
+Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}"
43
+Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
44
+
45
+[Code]
46
+function GetDirName(Value: string): string;
47
+var
48
+ InstallPath: string;
49
+begin
50
+ // initialize default path, which will be returned when the following registry
51
+ // key queries fail due to missing keys or for some different reason
52
+ Result := '{pf}\obs-studio';
53
+ // query the first registry value; if this succeeds, return the obtained value
54
+ if RegQueryStringValue(HKLM32, 'SOFTWARE\OBS Studio', '', InstallPath) then
55
+ Result := InstallPath
56
+end;
57
+
58
+/////////////////////////////////////////////////////////////////////
59
+function GetUninstallString(): String;
60
+var
61
+ sUnInstPath: String;
62
+ sUnInstallString: String;
63
+begin
64
+ sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\{#emit SetupSetting("AppId")}_is1');
65
+ sUnInstallString := '';
66
+ if not RegQueryStringValue(HKLM, sUnInstPath, 'UninstallString', sUnInstallString) then
67
+ RegQueryStringValue(HKCU, sUnInstPath, 'UninstallString', sUnInstallString);
68
+ Result := sUnInstallString;
69
+end;
70
+
71
+
72
+/////////////////////////////////////////////////////////////////////
73
+function IsUpgrade(): Boolean;
74
+begin
75
+ Result := (GetUninstallString() <> '');
76
+end;
77
+
78
+
79
+/////////////////////////////////////////////////////////////////////
80
+function UnInstallOldVersion(): Integer;
81
+var
82
+ sUnInstallString: String;
83
+ iResultCode: Integer;
84
+begin
85
+// Return Values:
86
+// 1 - uninstall string is empty
87
+// 2 - error executing the UnInstallString
88
+// 3 - successfully executed the UnInstallString
89
+
90
+ // default return value
91
+ Result := 0;
92
+
93
+ // get the uninstall string of the old app
94
+ sUnInstallString := GetUninstallString();
95
+ if sUnInstallString <> '' then begin
96
+ sUnInstallString := RemoveQuotes(sUnInstallString);
97
+ if Exec(sUnInstallString, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode) then
98
+ Result := 3
99
+ else
100
+ Result := 2;
101
+ end else
102
+ Result := 1;
103
+end;
104
+
105
+/////////////////////////////////////////////////////////////////////
106
+procedure CurStepChanged(CurStep: TSetupStep);
107
+begin
108
+ if (CurStep=ssInstall) then
109
+ begin
110
+ if (IsUpgrade()) then
111
+ begin
112
+ UnInstallOldVersion();
113
+ end;
114
+ end;
115
+end;
116
\ No newline at end of file
117
obs-studio-0.16.6.tar.xz/plugins/enc-amf/#Resources/PATCH_NOTES.md
Added
32
1
2
+# Multi-GPU Support And Filler Data Fix (Hotfix 2)
3
+With this update the encoder plugin now supports multi-GPU setups, such as RX 480 + R9 390, R9 285 + R9 290, and others. You can select which GPU to use with the Advanced View Mode. The UI will also now update according to the supported features of the selected GPU and by default uses the primary GPU. Unsupported features will be hidden, just like unused features.
4
+
5
+The 'Filler Data' property has now been fixed, Delta QP for B-Pictures is now visible when not using Constant QP, 'Memory Type' and 'Surface Format' have been removed and 'CABAC' has been replaced with 'Coding Type'. 'Memory Type' is now automatically using the best available and 'Surface Format' is taken from OBS settings.
6
+
7
+Additionally a crash with AMD Hybrid/Switchable GPU setups was fixed and these systems should now be able to use the encoder. It will now default to using the best available AMD GPU in the system if it can detect it.
8
+
9
+Hotfix 2: Fixed a potential crash when opening settings.
10
+Hotfix 1: Fixed Presets not being applied properly
11
+
12
+## Notes
13
+
14
+Due to the nature of changes since 1.3 users might experience that their settings have vanished or are incorrect. Please revalidate your settings or even create a clean profile to work off of.
15
+
16
+## Changelog
17
+
18
+* (Hotfix 2) Fixed: Potential crash when opening the settings.
19
+* (Hotfix 1) Fixed: Presets were not being applied properly.
20
+* Added: Full multi-GPU encoding support.
21
+* Added: 'Coding Type' property which replaces 'CABAC'.
22
+* Fixed: Filler Data was always being forced on for CBR.
23
+* Fixed: Users should now be able to modify Delta QP for B-Pictures even when not using Constant QP.
24
+* Fixed: Crash on OBS start on AMD Hybrid/Switchable GPU systems.
25
+* Changed: Default device is always the primary/best available AMD GPU in the system.
26
+* Changed: B-Picture properties will be properly hidden now if not in use.
27
+* Changed: B-Pictures defaults to 0 and B-Picture Reference defaults to Disabled.
28
+* Removed: 'Memory Type' property as the plugin will now always use the best available API.
29
+* Removed: 'Surface Format' property as the plugin will now use the OBS settings for this.
30
+* Removed: Deprecated encoder entry has been fully removed now.
31
\ No newline at end of file
32
obs-studio-0.16.6.tar.xz/plugins/enc-amf/#Resources/package.in.bat
Added
21
1
2
+@ECHO OFF
3
+REM Shut up, I'm just as lazy as anyone else.
4
+SET "CURDIR=%~dp0"
5
+SET "FINALNAME=AMD-Encoder-for-OBS-Studio.@enc-amf_VERSION_MAJOR@.@enc-amf_VERSION_MINOR@.@enc-amf_VERSION_PATCH@.@enc-amf_VERSION_BUILD@"
6
+
7
+SET "SevenZip=C:\Program Files\7-Zip\7z.exe"
8
+SET "InnoSetup=C:\Program Files (x86)\Inno Setup 5\Compil32.exe"
9
+
10
+PUSHD %CURDIR%
11
+
12
+PUSHD ..\#Build\
13
+"%SevenZip%" a -t7z -mx=9 -m0=lzma2 -aoa -mfb=64 -md=32m -ms=on "..\#Resources\Output\%FINALNAME%.7z" "*"
14
+"%SevenZip%" a -tzip -mx=9 "..\#Resources\Output\%FINALNAME%.zip" "*"
15
+POPD
16
+
17
+"%InnoSetup%" /cc "Installer.iss"
18
+
19
+POPD
20
+PAUSE
21
obs-studio-0.16.5.tar.xz/plugins/enc-amf/CMakeLists.txt -> obs-studio-0.16.6.tar.xz/plugins/enc-amf/CMakeLists.txt
Changed
201
1
2
-OPTION(AMDAMF_Disable "Disable AMD Advanced Media Framework support" OFF)
3
-SET(AMDAMF_SDKDir "" CACHE PATH "AMD Advanced Media Framework SDK Directory")
4
+cmake_minimum_required(VERSION 2.8.12)
5
6
-if(AMDAMF_Disable)
7
- message(STATUS "AMD AMF support disabled")
8
- return()
9
-endif()
10
+# Shared (OBS Studio & Standalone)
11
+PROJECT(enc-amf)
12
+SET(enc-amf_HEADERS
13
+ "Include/amd-amf.h"
14
+ "Include/amd-amf-vce.h"
15
+ "Include/amd-amf-vce-capabilities.h"
16
+ "Include/api-base.h"
17
+ "Include/api-d3d9.h"
18
+ "Include/api-d3d11.h"
19
+ "Include/enc-h264.h"
20
+ "Include/plugin.h"
21
+ "${PROJECT_BINARY_DIR}/Include/Version.h"
22
+)
23
+SET(enc-amf_SOURCES
24
+ "Source/amd-amf.cpp"
25
+ "Source/amd-amf-vce.cpp"
26
+ "Source/amd-amf-vce-capabilities.cpp"
27
+ "Source/api-base.cpp"
28
+ "Source/api-d3d9.cpp"
29
+ "Source/api-d3d11.cpp"
30
+ "Source/enc-h264.cpp"
31
+ "Source/plugin.cpp"
32
+ "Source/misc-util.cpp"
33
+)
34
+SET(enc-amf_LIBRARIES
35
+ version
36
+ winmm
37
+)
38
39
-if(AMDAMF_SDKDir STREQUAL "")
40
- message(STATUS "AMDAMF_SDKDir not set! enc-amf plugin disabled.")
41
- return()
42
-endif()
43
+# Version
44
+SET(enc-amf_VERSION_MAJOR 1)
45
+SET(enc-amf_VERSION_MINOR 4)
46
+SET(enc-amf_VERSION_PATCH 2)
47
+SET(enc-amf_VERSION_BUILD 3)
48
+configure_file(
49
+ "${PROJECT_SOURCE_DIR}/#Resources/package.in.bat"
50
+ "${PROJECT_SOURCE_DIR}/#Resources/package.bat"
51
+)
52
+configure_file(
53
+ "${PROJECT_SOURCE_DIR}/#Resources/Installer.in.iss"
54
+ "${PROJECT_SOURCE_DIR}/#Resources/Installer.iss"
55
+)
56
+configure_file(
57
+ "${PROJECT_SOURCE_DIR}/Include/Version.h.in"
58
+ "${PROJECT_BINARY_DIR}/Include/Version.h"
59
+)
60
61
-if(NOT EXISTS "${AMDAMF_SDKDir}/amf/public/include/components/VideoEncoderVCE.h")
62
- message(STATUS "AMDAMF_SDKDir invalid! enc-amf plugin disabled.")
63
- return()
64
-endif()
65
+# OBS Studio Specific
66
+if(BUILD_AMF_ENCODER)
67
+ OPTION(AMDAMF_Disable "Disable AMD Advanced Media Framework support" OFF)
68
+ SET(AMDAMF_SDKDir "" CACHE PATH "AMD Advanced Media Framework SDK Directory")
69
70
-PROJECT(enc-amf)
71
+ if(AMDAMF_Disable)
72
+ message(STATUS "AMD AMF support disabled")
73
+ return()
74
+ endif()
75
76
-INCLUDE_DIRECTORIES(
77
- SYSTEM "${CMAKE_SOURCE_DIR}"
78
- SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/enc-amf/Include"
79
- SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/enc-amf/Source"
80
- SYSTEM "${AMDAMF_SDKDir}/amf/public/include"
81
-)
82
+ if(AMDAMF_SDKDir STREQUAL "")
83
+ message(STATUS "AMDAMF_SDKDir not set! enc-amf plugin disabled.")
84
+ return()
85
+ endif()
86
87
-SET(enc-amf_HEADERS
88
- "enc-amf/Include/amd-amf.h"
89
- "enc-amf/Include/amd-amf-vce.h"
90
- "enc-amf/Include/amd-amf-vce-capabilities.h"
91
- "enc-amf/Include/api-base.h"
92
- "enc-amf/Include/api-d3d9.h"
93
- "enc-amf/Include/api-d3d11.h"
94
- "enc-amf/Include/enc-h264.h"
95
- "enc-amf/Include/plugin.h"
96
-)
97
+ if(NOT EXISTS "${AMDAMF_SDKDir}/amf/public/include/components/VideoEncoderVCE.h")
98
+ message(STATUS "AMDAMF_SDKDir invalid! enc-amf plugin disabled.")
99
+ return()
100
+ endif()
101
+
102
+ INCLUDE_DIRECTORIES(
103
+ "${CMAKE_SOURCE_DIR}"
104
+ "${PROJECT_BINARY_DIR}"
105
+ "${PROJECT_BINARY_DIR}/Include"
106
+ "${PROJECT_BINARY_DIR}/Source"
107
+ "${PROJECT_SOURCE_DIR}"
108
+ "${PROJECT_SOURCE_DIR}/Include"
109
+ "${PROJECT_SOURCE_DIR}/Source"
110
+ "${AMDAMF_SDKDir}/amf/public/include"
111
+ )
112
+ SET(LIBOBS_LIBRARIES libobs)
113
+else()
114
+# Standlone Specific
115
116
-SET(enc-amf_SOURCES
117
- "enc-amf/Source/amd-amf.cpp"
118
- "enc-amf/Source/amd-amf-vce.cpp"
119
- "enc-amf/Source/amd-amf-vce-capabilities.cpp"
120
- "enc-amf/Source/api-base.cpp"
121
- "enc-amf/Source/api-d3d9.cpp"
122
- "enc-amf/Source/api-d3d11.cpp"
123
- "enc-amf/Source/enc-h264.cpp"
124
- "enc-amf/Source/plugin.cpp"
125
-)
126
+ # Variables
127
+ SET(PATH_AMDAMFSDK "" CACHE PATH "AMD Advanced Media Framework SDK Directory")
128
+ SET(PATH_OBSStudio "" CACHE PATH "OBS Studio Source Code Directory")
129
+ #SET(PATH_libobs "" CACHE PATH "Path to obs.lib from OBS Studio")
130
+
131
+ if(PATH_AMDAMFSDK STREQUAL "")
132
+ message(STATUS "PATH_AMDAMFSDK not set!")
133
+ return()
134
+ endif()
135
136
-add_library(enc-amf MODULE
137
+ if(NOT EXISTS "${PATH_AMDAMFSDK}/amf/public/include/components/VideoEncoderVCE.h")
138
+ message(STATUS "PATH_AMDAMFSDK invalid!")
139
+ return()
140
+ endif()
141
+
142
+ if(PATH_OBSStudio STREQUAL "")
143
+ message(STATUS "PATH_OBSStudio not set!")
144
+ return()
145
+ endif()
146
+
147
+ if(NOT EXISTS "${PATH_OBSStudio}/libobs/obs-module.h")
148
+ message(STATUS "PATH_OBSStudio invalid!")
149
+ return()
150
+ endif()
151
+
152
+ # Stuff
153
+ SET(obsPath "${PATH_OBSStudio}")
154
+ INCLUDE("${PATH_OBSStudio}/cmake/external/Findlibobs.cmake")
155
+
156
+ # Compiling
157
+ INCLUDE_DIRECTORIES(
158
+ "${PROJECT_BINARY_DIR}"
159
+ "${PROJECT_BINARY_DIR}/Include"
160
+ "${PROJECT_BINARY_DIR}/Source"
161
+ "${PROJECT_SOURCE_DIR}"
162
+ "${PROJECT_SOURCE_DIR}/Include"
163
+ "${PROJECT_SOURCE_DIR}/Source"
164
+ "${PATH_AMDAMFSDK}/amf/public/include"
165
+ "${PATH_OBSStudio}/"
166
+ )
167
+endif()
168
+
169
+ADD_LIBRARY(enc-amf MODULE
170
${enc-amf_HEADERS}
171
${enc-amf_SOURCES}
172
)
173
-target_link_libraries(enc-amf
174
- libobs
175
- version
176
- winmm
177
+TARGET_LINK_LIBRARIES(enc-amf
178
+ ${LIBOBS_LIBRARIES}
179
+ ${enc-amf_LIBRARIES}
180
)
181
182
-install_obs_plugin_with_data(enc-amf enc-amf/Resources)
183
+if(BUILD_AMF_ENCODER)
184
+ install_obs_plugin_with_data(enc-amf Resources)
185
+else()
186
+ math(EXPR BITS "8*${CMAKE_SIZEOF_VOID_P}")
187
+ add_custom_command(TARGET enc-amf POST_BUILD
188
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
189
+ "${PROJECT_SOURCE_DIR}/Resources/locale"
190
+ "${PROJECT_SOURCE_DIR}/#Build/data/obs-plugins/enc-amf/locale"
191
+ )
192
+ add_custom_command(TARGET enc-amf POST_BUILD
193
+ COMMAND ${CMAKE_COMMAND} -E copy
194
+ "$<TARGET_FILE:enc-amf>"
195
+ "${PROJECT_SOURCE_DIR}/#Build/obs-plugins/${BITS}bit/$<TARGET_FILE_NAME:enc-amf>"
196
+ )
197
+ add_custom_command(TARGET enc-amf POST_BUILD
198
+ COMMAND ${CMAKE_COMMAND} -E copy
199
+ "$<TARGET_FILE_DIR:enc-amf>/enc-amf.pdb"
200
+ "${PROJECT_SOURCE_DIR}/#Build/obs-plugins/${BITS}bit/enc-amf.pdb"
201
obs-studio-0.16.5.tar.xz/plugins/enc-amf/CONTRIBUTING.md -> obs-studio-0.16.6.tar.xz/plugins/enc-amf/CONTRIBUTING.md
Changed
59
1
2
3
# Building
4
5
-## Getting Started
6
-This plugin is included in the Open Broadcaster Studio project itself.
7
-This is only necessary if you wish to verify functionality with a standalone build.
8
+## Step 1: Get the pre-requisites
9
+This plugin is included in the Open Broadcaster Studio project itself. This is only necessary if you wish to verify functionality with a standalone build.
10
11
-## Pre-Requisites
12
+### Pre-Requisites
13
* [Visual Studio® 2013 or Visual Studio® 2015 (Community or better)](http://visualstudio.com/)
14
* Windows 10 SDK (Version 10586 or better, bundled with Visual Studio)
15
* [OBS Studio](https://github.com/jp9000/obs-studio)
16
* [AMF SDK](https://github.com/GPUOpen-LibrariesAndSDKs/AMF)
17
* [InnoSetup](http://www.jrsoftware.org/isinfo.php)
18
+* CMake
19
20
-### Step 1: Third Party Headers
21
+## Step 2: Configure with CMake
22
+Point CMake at the source code and use either /build32 for 32-bit or /build64 for 64-bit as the binaries path.
23
24
-#### Open Broadcaster Studio
25
-1. Clone the [Open Broadcaster Studio Source Code](https://github.com/jp9000/obs-studio).
26
-2. Build both x86 and x64 with the same Visual Studio version you indent to use for the plugin.
27
-3. Create a *Soft Link* (Directory Junction) in /#ThirdParty/ to the cloned repository, call it 'OBS-Studio'.<br>
28
-Ex (Windows): mklink /J ./#ThirdParty/OBS-Studio C:/Src/OBS/
29
-4. Verify that it works by visiting the ./#ThirdParty/OBS-Studio directory.
30
+The following variables are needed to be set for a successful build:
31
32
-#### AMD Advanced Media Framework SDK (AMF SDK)
33
-1. Clone the [AMF SDK](https://github.com/GPUOpen-LibrariesAndSDKs/AMF).
34
-2. Create a *Soft Link* (Directory Junction) in /#ThirdParty/ to the cloned repository, call it 'AMD-AMF-SDK'.<br>
35
-Ex (Windows): mklink /J ./#ThirdParty/AMD-AMF-SDK C:/Src/AMF/
36
-3. Verify that it works by visiting the ./#ThirdParty/AMD-AMF-SDK directory.
37
+* PATH_AMDAMFSDK - Path to the cloned AMF SDK repository.
38
+* PATH_OBSStudio - Path to the cloned OBS Studio repository.
39
40
-### Step 2: Build the Project
41
+Once you have set these, you can generate the project files.
42
43
-1. Open the Visual Studio Solution file.
44
-2. Build for both x86 and x64 (Normal or Batch Build).
45
-3. Binaries should be located in /#Build/$(Configuration)/
46
-4. (Optional) Create Archives and an Installer with the package.bat in /#Resources/.
47
+## Step 3: Build with CMake
48
+1. Open the project file
49
+2. Build
50
51
-If any errors during building or creating the archives and installer, start again from Step 1.
52
+Binaries will be located in /#Build and in the chosen binary path. An Installer can be created using the package.bat in /#Resources.
53
54
-### Step 3: Verify Functionality
55
+## Step 3: Verify Functionality
56
57
*[You can only do this with an AMD APU or GPU installed](https://github.com/Xaymar/obs-studio_amf-encoder-plugin/wiki/Hardware,-GCN-and-VCE-Limits)*.
58
Install the plugin into your OBS Studio installation or test environment and select it in either Simple Output Mode or Advanced Output Mode. It should encode fine without crashing at any point.
59
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Include
Added
2
1
+(directory)
2
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Include/Version.h.in
Added
8
1
2
+
3
+#define PLUGIN_VERSION_MAJOR @enc-amf_VERSION_MAJOR@
4
+#define PLUGIN_VERSION_MINOR @enc-amf_VERSION_MINOR@
5
+#define PLUGIN_VERSION_PATCH @enc-amf_VERSION_PATCH@
6
+#define PLUGIN_VERSION_BUILD @enc-amf_VERSION_BUILD@
7
\ No newline at end of file
8
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Include/amd-amf-vce-capabilities.h
Added
108
1
2
+/*
3
+MIT License
4
+
5
+Copyright (c) 2016 Michael Fabian Dirks
6
+
7
+Permission is hereby granted, free of charge, to any person obtaining a copy
8
+of this software and associated documentation files (the "Software"), to deal
9
+in the Software without restriction, including without limitation the rights
10
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+copies of the Software, and to permit persons to whom the Software is
12
+furnished to do so, subject to the following conditions:
13
+
14
+The above copyright notice and this permission notice shall be included in all
15
+copies or substantial portions of the Software.
16
+
17
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+SOFTWARE.
24
+*/
25
+
26
+#pragma once
27
+//////////////////////////////////////////////////////////////////////////
28
+// Includes
29
+//////////////////////////////////////////////////////////////////////////
30
+#include <stdint.h>
31
+#include <inttypes.h>
32
+#include <vector>
33
+#include <list>
34
+#include <map>
35
+
36
+// Plugin
37
+#include "plugin.h"
38
+#include "amd-amf.h"
39
+#include "amd-amf-vce.h"
40
+#include "api-base.h"
41
+
42
+// AMF
43
+#include "components\ComponentCaps.h"
44
+
45
+//////////////////////////////////////////////////////////////////////////
46
+// Code
47
+//////////////////////////////////////////////////////////////////////////
48
+
49
+namespace Plugin {
50
+ namespace AMD {
51
+ struct VCEDeviceCapabilities {
52
+ amf::AMF_ACCELERATION_TYPE acceleration_type;
53
+ uint32_t maxProfile;
54
+ uint32_t maxProfileLevel;
55
+ uint32_t maxBitrate;
56
+ uint32_t minReferenceFrames;
57
+ uint32_t maxReferenceFrames;
58
+ bool supportsBFrames;
59
+ bool supportsFixedSliceMode;
60
+ uint32_t maxTemporalLayers;
61
+ uint32_t maxNumOfStreams;
62
+ uint32_t maxNumOfHwInstances;
63
+
64
+ struct IOCaps {
65
+ int32_t minWidth, maxWidth;
66
+ int32_t minHeight, maxHeight;
67
+ bool isInterlacedSupported;
68
+ uint32_t verticalAlignment;
69
+
70
+ std::vector<std::pair<amf::AMF_SURFACE_FORMAT, bool>> formats;
71
+ std::vector<std::pair<amf::AMF_MEMORY_TYPE, bool>> memoryTypes;
72
+ } input, output;
73
+ };
74
+
75
+ class VCECapabilities {
76
+ //////////////////////////////////////////////////////////////////////////
77
+ // Singleton
78
+ //////////////////////////////////////////////////////////////////////////
79
+ public:
80
+ static std::shared_ptr<Plugin::AMD::VCECapabilities> GetInstance();
81
+ static void ReportCapabilities();
82
+ static void ReportDeviceCapabilities(Plugin::API::Device device);
83
+ static void ReportDeviceIOCapabilities(Plugin::API::Device device, VCEEncoderType type, bool output);
84
+
85
+ //////////////////////////////////////////////////////////////////////////
86
+ // Class
87
+ //////////////////////////////////////////////////////////////////////////
88
+ public:
89
+ VCECapabilities();
90
+ ~VCECapabilities();
91
+
92
+ //void QueryCapabilitiesForDevice(VCEMemoryType type, Plugin::API::Device device = Plugin::API::Device());
93
+
94
+ bool Refresh();
95
+ std::vector<Plugin::API::Device> GetDevices();
96
+ VCEDeviceCapabilities GetDeviceCaps(Plugin::API::Device device, VCEEncoderType type);
97
+ VCEDeviceCapabilities::IOCaps GetDeviceIOCaps(Plugin::API::Device device, VCEEncoderType type, bool output);
98
+
99
+ private:
100
+ //std::map<VCEMemoryType, std::map<Plugin::API::Device, std::map<VCEEncoderType, VCEDeviceCapabilities>>> tstMap;
101
+
102
+ std::vector<Plugin::API::Device> devices;
103
+ std::map<std::pair<Plugin::API::Device, Plugin::AMD::VCEEncoderType>, VCEDeviceCapabilities> deviceToCapabilities;
104
+ };
105
+ }
106
+}
107
\ No newline at end of file
108
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Include/amd-amf-vce.h
Added
201
1
2
+/*
3
+MIT License
4
+
5
+Copyright (c) 2016 Michael Fabian Dirks
6
+
7
+Permission is hereby granted, free of charge, to any person obtaining a copy
8
+of this software and associated documentation files (the "Software"), to deal
9
+in the Software without restriction, including without limitation the rights
10
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+copies of the Software, and to permit persons to whom the Software is
12
+furnished to do so, subject to the following conditions:
13
+
14
+The above copyright notice and this permission notice shall be included in all
15
+copies or substantial portions of the Software.
16
+
17
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+SOFTWARE.
24
+*/
25
+
26
+#pragma once
27
+//////////////////////////////////////////////////////////////////////////
28
+// Includes
29
+//////////////////////////////////////////////////////////////////////////
30
+#include <condition_variable>
31
+#include <algorithm>
32
+#include <mutex>
33
+#include <queue>
34
+#include <thread>
35
+#include <vector>
36
+#include <chrono>
37
+
38
+// Plugin
39
+#include "plugin.h"
40
+#include "amd-amf.h"
41
+#include "api-base.h"
42
+
43
+//////////////////////////////////////////////////////////////////////////
44
+// Code
45
+//////////////////////////////////////////////////////////////////////////
46
+
47
+namespace Plugin {
48
+ namespace AMD {
49
+ // Internal Properties
50
+ enum VCEEncoderType {
51
+ VCEEncoderType_AVC, // Advanced Video Coding
52
+ VCEEncoderType_SVC, // Scalable Video Coding
53
+ VCEEncoderType_HEVC, // High-Efficiency Video Coding (Discovered in amfrt64.dll)
54
+ };
55
+ enum VCEMemoryType {
56
+ VCEMemoryType_Host, // Host-Managed Memory
57
+ VCEMemoryType_DirectX9, // DirectX9
58
+ VCEMemoryType_DirectX11, // DirectX11
59
+ VCEMemoryType_OpenGL, // OpenGL
60
+ };
61
+ enum VCEColorFormat {
62
+ // 4:2:0 Formats
63
+ VCEColorFormat_NV12, // NV12
64
+ VCEColorFormat_I420, // YUV 4:2:0
65
+ // 4:2:2 Formats
66
+ VCEColorFormat_YUY2,
67
+ // Uncompressed
68
+ VCEColorFormat_BGRA, // ARGB
69
+ VCEColorFormat_RGBA, // RGBA
70
+ // Other
71
+ VCEColorFormat_GRAY,
72
+ };
73
+ enum VCEColorProfile {
74
+ VCEColorProfile_601,
75
+ VCEColorProfile_709,
76
+ VCEColorProfile_2020, // HDR
77
+ };
78
+
79
+ // Static Properties
80
+ enum VCEUsage {
81
+ VCEUsage_Transcoding,
82
+ VCEUsage_UltraLowLatency,
83
+ VCEUsage_LowLatency,
84
+ VCEUsage_Webcam, // For SVC
85
+ };
86
+ enum VCEQualityPreset {
87
+ VCEQualityPreset_Speed,
88
+ VCEQualityPreset_Balanced,
89
+ VCEQualityPreset_Quality,
90
+ };
91
+ enum VCEProfile {
92
+ VCEProfile_Baseline = 66,
93
+ VCEProfile_Main = 77,
94
+ VCEProfile_High = 100,
95
+ VCEProfile_ConstrainedBaseline = 256,
96
+ VCEProfile_ConstrainedHigh = 257
97
+ };
98
+ enum VCEProfileLevel {
99
+ VCEProfileLevel_Automatic = 0,
100
+ VCEProfileLevel_10 = 10,
101
+ VCEProfileLevel_11,
102
+ VCEProfileLevel_12,
103
+ VCEProfileLevel_13,
104
+ VCEProfileLevel_20 = 20,
105
+ VCEProfileLevel_21,
106
+ VCEProfileLevel_22,
107
+ VCEProfileLevel_30 = 30,
108
+ VCEProfileLevel_31,
109
+ VCEProfileLevel_32,
110
+ VCEProfileLevel_40 = 40,
111
+ VCEProfileLevel_41,
112
+ VCEProfileLevel_42,
113
+ VCEProfileLevel_50 = 50,
114
+ VCEProfileLevel_51,
115
+ VCEProfileLevel_52,
116
+ VCEProfileLevel_60 = 60,
117
+ VCEProfileLevel_61,
118
+ VCEProfileLevel_62,
119
+ };
120
+ enum VCEScanType {
121
+ VCEScanType_Progressive,
122
+ VCEScanType_Interlaced,
123
+ };
124
+ enum VCECodingType {
125
+ VCECodingType_Default,
126
+ VCECodingType_CALV,
127
+ VCECodingType_CABAC,
128
+ };
129
+
130
+ // Dynamic Properties
131
+ enum VCERateControlMethod {
132
+ VCERateControlMethod_ConstantQP,
133
+ VCERateControlMethod_ConstantBitrate,
134
+ VCERateControlMethod_VariableBitrate_PeakConstrained,
135
+ VCERateControlMethod_VariableBitrate_LatencyConstrained,
136
+ };
137
+ enum VCEBPicturePattern {
138
+ VCEBPicturePattern_None,
139
+ VCEBPicturePattern_One,
140
+ VCEBPicturePattern_Two,
141
+ VCEBPicturePattern_Three,
142
+ };
143
+
144
+ class VCEEncoder {
145
+ //////////////////////////////////////////////////////////////////////////
146
+ #pragma region Functions
147
+ //////////////////////////////////////////////////////////////////////////
148
+ private:
149
+ static void InputThreadMain(Plugin::AMD::VCEEncoder* p_this);
150
+ static void OutputThreadMain(Plugin::AMD::VCEEncoder* p_this);
151
+
152
+ #pragma endregion Functions
153
+ //////////////////////////////////////////////////////////////////////////
154
+
155
+ //////////////////////////////////////////////////////////////////////////
156
+ #pragma region Initializer & Finalizer
157
+ //////////////////////////////////////////////////////////////////////////
158
+ public:
159
+ VCEEncoder(VCEEncoderType p_Type,
160
+ std::string p_DeviceId = "",
161
+ bool p_OpenCL = false,
162
+ VCEColorFormat p_SurfaceFormat = VCEColorFormat_NV12
163
+ );
164
+ ~VCEEncoder();
165
+ #pragma endregion Initializer & Finalizer
166
+
167
+ //////////////////////////////////////////////////////////////////////////
168
+ #pragma region Methods
169
+ //////////////////////////////////////////////////////////////////////////
170
+ public:
171
+ void Start();
172
+ void Restart();
173
+ void Stop();
174
+ bool IsStarted();
175
+ bool SendInput(struct encoder_frame* frame);
176
+ bool GetOutput(struct encoder_packet* packet, bool* received_packet);
177
+ bool GetExtraData(uint8_t**& data, size_t*& size);
178
+ void GetVideoInfo(struct video_scale_info*& vsi);
179
+
180
+ // Threading
181
+ private:
182
+ void InputThreadLogic();
183
+ void OutputThreadLogic();
184
+
185
+ // Utility
186
+ inline amf::AMFSurfacePtr CreateSurfaceFromFrame(struct encoder_frame*& frame);
187
+
188
+ public:
189
+ void LogProperties();
190
+
191
+ /************************************************************************/
192
+ /* Static Properties */
193
+ /************************************************************************/
194
+
195
+ /* Usage Type
196
+ * Sets up the entire encoder to a specific set of properties.
197
+ * Must be called first if you want to override properties. */
198
+ void SetUsage(VCEUsage usage);
199
+ VCEUsage GetUsage();
200
+
201
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Include/amd-amf.h
Changed
2
1
(renamed from plugins/enc-amf/enc-amf/Include/amd-amf.h)
2
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Include/api-base.h
Added
90
1
2
+/*
3
+MIT License
4
+
5
+Copyright (c) 2016 Michael Fabian Dirks
6
+
7
+Permission is hereby granted, free of charge, to any person obtaining a copy
8
+of this software and associated documentation files (the "Software"), to deal
9
+in the Software without restriction, including without limitation the rights
10
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+copies of the Software, and to permit persons to whom the Software is
12
+furnished to do so, subject to the following conditions:
13
+
14
+The above copyright notice and this permission notice shall be included in all
15
+copies or substantial portions of the Software.
16
+
17
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+SOFTWARE.
24
+*/
25
+
26
+#pragma once
27
+//////////////////////////////////////////////////////////////////////////
28
+// Includes
29
+//////////////////////////////////////////////////////////////////////////
30
+#include "plugin.h"
31
+#include <vector>
32
+
33
+//////////////////////////////////////////////////////////////////////////
34
+// Code
35
+//////////////////////////////////////////////////////////////////////////
36
+namespace Plugin {
37
+ namespace API {
38
+ struct Device {
39
+ std::string Name;
40
+ std::string UniqueId;
41
+
42
+ Device();
43
+ Device(std::string Name, std::string UniqueId);
44
+ ~Device();
45
+
46
+
47
+ friend bool operator<(const Plugin::API::Device& left, const Plugin::API::Device& right);
48
+ friend bool operator>(const Plugin::API::Device& left, const Plugin::API::Device& right);
49
+ friend bool operator<=(const Plugin::API::Device& left, const Plugin::API::Device& right);
50
+ friend bool operator>=(const Plugin::API::Device& left, const Plugin::API::Device& right);
51
+
52
+ friend bool operator==(const Plugin::API::Device& left, const Plugin::API::Device& right);
53
+ friend bool operator!=(const Plugin::API::Device& left, const Plugin::API::Device& right);
54
+ };
55
+
56
+ enum APIType {
57
+ APIType_Base,
58
+ APIType_Direct3D9,
59
+ APIType_Direct3D11,
60
+ APIType_OpenGL,
61
+ };
62
+
63
+ class APIBase {
64
+ public:
65
+ static std::vector<Plugin::API::Device> EnumerateDevices();
66
+ static Plugin::API::Device GetDeviceForUniqueId(std::string uniqueId);
67
+
68
+ static Plugin::API::APIType GetBestAvailableAPI();
69
+ static std::unique_ptr<Plugin::API::APIBase>
70
+ CreateBestAvailableAPI(Plugin::API::Device device);
71
+
72
+ APIBase();
73
+ APIBase(Device device);
74
+ virtual ~APIBase();
75
+
76
+ Plugin::API::Device GetDevice();
77
+
78
+ virtual Plugin::API::APIType GetType();
79
+ virtual void* GetContext();
80
+
81
+ protected:
82
+ Plugin::API::APIType myType;
83
+
84
+ private:
85
+ Plugin::API::Device myDevice;
86
+ };
87
+ }
88
+}
89
\ No newline at end of file
90
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Include/api-d3d11.h
Added
57
1
2
+/*
3
+MIT License
4
+
5
+Copyright (c) 2016 Michael Fabian Dirks
6
+
7
+Permission is hereby granted, free of charge, to any person obtaining a copy
8
+of this software and associated documentation files (the "Software"), to deal
9
+in the Software without restriction, including without limitation the rights
10
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+copies of the Software, and to permit persons to whom the Software is
12
+furnished to do so, subject to the following conditions:
13
+
14
+The above copyright notice and this permission notice shall be included in all
15
+copies or substantial portions of the Software.
16
+
17
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+SOFTWARE.
24
+*/
25
+
26
+#pragma once
27
+#ifdef _WIN32
28
+//////////////////////////////////////////////////////////////////////////
29
+// Includes
30
+//////////////////////////////////////////////////////////////////////////
31
+#include "api-base.h"
32
+
33
+#include <d3d11.h>
34
+
35
+//////////////////////////////////////////////////////////////////////////
36
+// Code
37
+//////////////////////////////////////////////////////////////////////////
38
+namespace Plugin {
39
+ namespace API {
40
+ class Direct3D11 : public APIBase {
41
+ public:
42
+ static std::vector<Plugin::API::Device> EnumerateDevices();
43
+ static Plugin::API::Device GetDeviceForUniqueId(std::string uniqueId);
44
+
45
+ Direct3D11(Device device);
46
+ ~Direct3D11();
47
+
48
+ virtual void* GetContext() override;
49
+
50
+ private:
51
+ ID3D11Device* pDevice;
52
+ ID3D11DeviceContext* pDeviceContext;
53
+ };
54
+ }
55
+}
56
+#endif
57
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Include/api-d3d9.h
Added
59
1
2
+/*
3
+MIT License
4
+
5
+Copyright (c) 2016 Michael Fabian Dirks
6
+
7
+Permission is hereby granted, free of charge, to any person obtaining a copy
8
+of this software and associated documentation files (the "Software"), to deal
9
+in the Software without restriction, including without limitation the rights
10
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+copies of the Software, and to permit persons to whom the Software is
12
+furnished to do so, subject to the following conditions:
13
+
14
+The above copyright notice and this permission notice shall be included in all
15
+copies or substantial portions of the Software.
16
+
17
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+SOFTWARE.
24
+*/
25
+
26
+#pragma once
27
+#ifdef _WIN32
28
+//////////////////////////////////////////////////////////////////////////
29
+// Includes
30
+//////////////////////////////////////////////////////////////////////////
31
+#include "api-base.h"
32
+
33
+#define D3D_DEBUG_INFO
34
+#include <d3d9.h>
35
+#pragma comment(lib, "d3d9.lib")
36
+
37
+//////////////////////////////////////////////////////////////////////////
38
+// Code
39
+//////////////////////////////////////////////////////////////////////////
40
+namespace Plugin {
41
+ namespace API {
42
+ class Direct3D9 : public APIBase {
43
+ public:
44
+ static std::vector<Plugin::API::Device> EnumerateDevices();
45
+ static Plugin::API::Device GetDeviceForUniqueId(std::string uniqueId);
46
+
47
+ Direct3D9(Device device);
48
+ ~Direct3D9();
49
+
50
+ virtual void* GetContext() override;
51
+
52
+ private:
53
+ IDirect3D9* pDirect3D;
54
+ IDirect3DDevice9* pDirect3DDevice;
55
+ };
56
+ }
57
+}
58
+#endif
59
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Include/enc-h264.h
Added
79
1
2
+/*
3
+MIT License
4
+
5
+Copyright (c) 2016 Michael Fabian Dirks
6
+
7
+Permission is hereby granted, free of charge, to any person obtaining a copy
8
+of this software and associated documentation files (the "Software"), to deal
9
+in the Software without restriction, including without limitation the rights
10
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+copies of the Software, and to permit persons to whom the Software is
12
+furnished to do so, subject to the following conditions:
13
+
14
+The above copyright notice and this permission notice shall be included in all
15
+copies or substantial portions of the Software.
16
+
17
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+SOFTWARE.
24
+*/
25
+
26
+#pragma once
27
+//////////////////////////////////////////////////////////////////////////
28
+// Includes
29
+//////////////////////////////////////////////////////////////////////////
30
+// Plugin
31
+#include "plugin.h"
32
+#include "amd-amf-vce.h"
33
+#include "amd-amf-vce-capabilities.h"
34
+
35
+//////////////////////////////////////////////////////////////////////////
36
+// Code
37
+//////////////////////////////////////////////////////////////////////////
38
+namespace Plugin {
39
+ namespace Interface {
40
+ class H264Interface {
41
+ public:
42
+ static void encoder_register();
43
+ static const char* get_name(void* type_data);
44
+ static const char* get_name_simple(void* type_data);
45
+ static void get_defaults(obs_data_t *settings);
46
+ static obs_properties_t* get_properties(void* data);
47
+
48
+ static bool properties_modified(obs_properties_t *props, obs_property_t *, obs_data_t *data);
49
+
50
+ static void* create(obs_data_t* settings, obs_encoder_t* encoder);
51
+ static void destroy(void* data);
52
+ static bool update(void *data, obs_data_t *settings);
53
+ static bool encode(void *data, struct encoder_frame * frame, struct encoder_packet * packet, bool * received_packet);
54
+ static void get_video_info(void *data, struct video_scale_info *info);
55
+ static bool get_extra_data(void *data, uint8_t** extra_data, size_t* size);
56
+
57
+ //////////////////////////////////////////////////////////////////////////
58
+ // Module Code
59
+ //////////////////////////////////////////////////////////////////////////
60
+ public:
61
+
62
+ H264Interface(obs_data_t* settings, obs_encoder_t* encoder);
63
+ ~H264Interface();
64
+
65
+ bool update(obs_data_t* settings);
66
+ bool encode(struct encoder_frame * frame, struct encoder_packet * packet, bool * received_packet);
67
+ void get_video_info(struct video_scale_info* info);
68
+ bool get_extra_data(uint8_t** extra_data, size_t* size);
69
+
70
+ //////////////////////////////////////////////////////////////////////////
71
+ // Storage
72
+ //////////////////////////////////////////////////////////////////////////
73
+ private:
74
+ Plugin::AMD::VCEEncoder* m_VideoEncoder;
75
+ };
76
+ }
77
+}
78
\ No newline at end of file
79
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Include/plugin.h
Added
201
1
2
+/*
3
+MIT License
4
+
5
+Copyright (c) 2016 Michael Fabian Dirks
6
+
7
+Permission is hereby granted, free of charge, to any person obtaining a copy
8
+of this software and associated documentation files (the "Software"), to deal
9
+in the Software without restriction, including without limitation the rights
10
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+copies of the Software, and to permit persons to whom the Software is
12
+furnished to do so, subject to the following conditions:
13
+
14
+The above copyright notice and this permission notice shall be included in all
15
+copies or substantial portions of the Software.
16
+
17
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+SOFTWARE.
24
+*/
25
+
26
+#pragma once
27
+//////////////////////////////////////////////////////////////////////////
28
+// Includes
29
+//////////////////////////////////////////////////////////////////////////
30
+#include <stdint.h>
31
+#include <inttypes.h>
32
+#include <exception>
33
+#include <stdexcept>
34
+#include <thread>
35
+#include <memory>
36
+
37
+// Open Broadcaster Software
38
+#pragma warning( disable: 4201 )
39
+#include "libobs/obs-module.h"
40
+#include "libobs/obs-encoder.h"
41
+
42
+MODULE_EXTERN const char *obs_module_text_multi(const char *val, uint8_t depth = (uint8_t)1);
43
+
44
+//////////////////////////////////////////////////////////////////////////
45
+// Defines
46
+//////////////////////////////////////////////////////////////////////////
47
+
48
+#define vstr(s) dstr(s)
49
+#define dstr(s) #s
50
+
51
+#define clamp(a,b,c) (a > c ? c : (a < b ? b : a))
52
+
53
+#include "Version.h"
54
+#define PLUGIN_VERSION_FULL (((uint64_t)PLUGIN_VERSION_MAJOR << 48ull) | ((uint64_t)PLUGIN_VERSION_MINOR << 32ull) | ((uint64_t)PLUGIN_VERSION_PATCH) | ((uint64_t)PLUGIN_VERSION_BUILD))
55
+#define PLUGIN_VERSION_TEXT vstr(PLUGIN_VERSION_MAJOR) "." vstr(PLUGIN_VERSION_MINOR) "." vstr(PLUGIN_VERSION_PATCH) "." vstr(PLUGIN_VERSION_BUILD)
56
+
57
+#define AMF_LOG(level, format, ...) blog(level, "[AMF Encoder] " format, ##__VA_ARGS__);
58
+#define AMF_LOG_ERROR(format, ...) AMF_LOG(LOG_ERROR, format, ##__VA_ARGS__)
59
+#define AMF_LOG_WARNING(format, ...) AMF_LOG(LOG_WARNING, format, ##__VA_ARGS__)
60
+#define AMF_LOG_INFO(format, ...) AMF_LOG(LOG_INFO, format, ##__VA_ARGS__)
61
+#define AMF_LOG_CONFIG(format, ...) AMF_LOG(350, format, ##__VA_ARGS__)
62
+#define AMF_LOG_DEBUG(format, ...) AMF_LOG(LOG_DEBUG, format, ##__VA_ARGS__)
63
+
64
+#define TEXT_T(x) obs_module_text_multi(x)
65
+#define TEXT_AMF(x) ("AMF." ## x)
66
+#define TEXT_AMF_H264(x) (TEXT_AMF("H264." ## x))
67
+#define TEXT_AMF_UTIL(x) (TEXT_AMF("Util." ## x))
68
+
69
+#define ThrowExceptionWithAMFError(format, res, ...) {\
70
+ std::vector<char> _throwexceptionwithamferror_buf(8192);\
71
+ sprintf_s(_throwexceptionwithamferror_buf.data(), _throwexceptionwithamferror_buf.size(), format, ##__VA_ARGS__, Plugin::AMD::AMF::GetInstance()->GetTrace()->GetResultText(res), res);\
72
+ AMF_LOG_WARNING("%s", _throwexceptionwithamferror_buf.data()); \
73
+ throw std::exception(_throwexceptionwithamferror_buf.data()); \
74
+}
75
+
76
+#ifndef __FUNCTION_NAME__
77
+ #if defined(_WIN32) || defined(_WIN64) //WINDOWS
78
+ #define __FUNCTION_NAME__ __FUNCTION__
79
+ #else //*NIX
80
+ #define __FUNCTION_NAME__ __func__
81
+ #endif
82
+#endif
83
+
84
+//////////////////////////////////////////////////////////////////////////
85
+// Defines - Translation Strings
86
+//////////////////////////////////////////////////////////////////////////
87
+
88
+// Presets
89
+#define AMF_H264_PRESET TEXT_AMF_H264("Preset")
90
+#define AMF_H264_PRESET_RESETTODEFAULTS TEXT_AMF_H264("Preset.ResetToDefaults")
91
+#define AMF_H264_PRESET_RECORDING TEXT_AMF_H264("Preset.Recording")
92
+#define AMF_H264_PRESET_HIGHQUALITY TEXT_AMF_H264("Preset.HighQuality")
93
+#define AMF_H264_PRESET_INDISTINGUISHABLE TEXT_AMF_H264("Preset.Indistinguishable")
94
+#define AMF_H264_PRESET_LOSSLESS TEXT_AMF_H264("Preset.Lossless")
95
+#define AMF_H264_PRESET_TWITCH TEXT_AMF_H264("Preset.Twitch")
96
+#define AMF_H264_PRESET_YOUTUBE TEXT_AMF_H264("Preset.YouTube")
97
+
98
+// Static Properties
99
+#define AMF_H264_USAGE TEXT_AMF_H264("Usage")
100
+#define AMF_H264_USAGE_DESCRIPTION TEXT_AMF_H264("Usage.Description")
101
+#define AMF_H264_USAGE_TRANSCODING TEXT_AMF_H264("Usage.Transcoding")
102
+#define AMF_H264_USAGE_ULTRALOWLATENCY TEXT_AMF_H264("Usage.UltraLowLatency")
103
+#define AMF_H264_USAGE_LOWLATENCY TEXT_AMF_H264("Usage.LowLatency")
104
+#define AMF_H264_USAGE_WEBCAM TEXT_AMF_H264("Usage.Webcam")
105
+#define AMF_H264_QUALITY_PRESET TEXT_AMF_H264("QualityPreset")
106
+#define AMF_H264_QUALITY_PRESET_DESCRIPTION TEXT_AMF_H264("QualityPreset.Description")
107
+#define AMF_H264_QUALITY_PRESET_SPEED TEXT_AMF_H264("QualityPreset.Speed")
108
+#define AMF_H264_QUALITY_PRESET_BALANCED TEXT_AMF_H264("QualityPreset.Balanced")
109
+#define AMF_H264_QUALITY_PRESET_QUALITY TEXT_AMF_H264("QualityPreset.Quality")
110
+#define AMF_H264_PROFILE TEXT_AMF_H264("Profile")
111
+#define AMF_H264_PROFILE_DESCRIPTION TEXT_AMF_H264("Profile.Description")
112
+#define AMF_H264_PROFILELEVEL TEXT_AMF_H264("ProfileLevel")
113
+#define AMF_H264_PROFILELEVEL_DESCRIPTION TEXT_AMF_H264("ProfileLevel.Description")
114
+#define AMF_H264_MAXIMUMLTRFRAMES TEXT_AMF_H264("MaximumLTRFrames")
115
+#define AMF_H264_MAXIMUMLTRFRAMES_DESCRIPTION TEXT_AMF_H264("MaximumLTRFrames.Description")
116
+#define AMF_H264_CODINGTYPE TEXT_AMF_H264("CodingType")
117
+#define AMF_H264_CODINGTYPE_DESCRIPTION TEXT_AMF_H264("CodingType.Description")
118
+
119
+// Rate Control Properties
120
+#define AMF_H264_RATECONTROLMETHOD TEXT_AMF_H264("RateControlMethod")
121
+#define AMF_H264_RATECONTROLMETHOD_DESCRIPTION TEXT_AMF_H264("RateControlMethod.Description")
122
+#define AMF_H264_RATECONTROLMETHOD_CQP TEXT_AMF_H264("RateControlMethod.CQP")
123
+#define AMF_H264_RATECONTROLMETHOD_CBR TEXT_AMF_H264("RateControlMethod.CBR")
124
+#define AMF_H264_RATECONTROLMETHOD_VBR TEXT_AMF_H264("RateControlMethod.VBR.Peak")
125
+#define AMF_H264_RATECONTROLMETHOD_VBR_LAT TEXT_AMF_H264("RateControlMethod.VBR.Latency")
126
+#define AMF_H264_BITRATE_TARGET TEXT_AMF_H264("Bitrate.Target")
127
+#define AMF_H264_BITRATE_TARGET_DESCRIPTION TEXT_AMF_H264("Bitrate.Target.Description")
128
+#define AMF_H264_BITRATE_PEAK TEXT_AMF_H264("Bitrate.Peak")
129
+#define AMF_H264_BITRATE_PEAK_DESCRIPTION TEXT_AMF_H264("Bitrate.Peak.Description")
130
+#define AMF_H264_QP_MINIMUM TEXT_AMF_H264("QP.Minimum")
131
+#define AMF_H264_QP_MINIMUM_DESCRIPTION TEXT_AMF_H264("QP.Minimum.Description")
132
+#define AMF_H264_QP_MAXIMUM TEXT_AMF_H264("QP.Maximum")
133
+#define AMF_H264_QP_MAXIMUM_DESCRIPTION TEXT_AMF_H264("QP.Maximum.Description")
134
+#define AMF_H264_QP_IFRAME TEXT_AMF_H264("QP.IFrame")
135
+#define AMF_H264_QP_IFRAME_DESCRIPTION TEXT_AMF_H264("QP.IFrame.Description")
136
+#define AMF_H264_QP_PFRAME TEXT_AMF_H264("QP.PFrame")
137
+#define AMF_H264_QP_PFRAME_DESCRIPTION TEXT_AMF_H264("QP.PFrame.Description")
138
+#define AMF_H264_QP_BFRAME TEXT_AMF_H264("QP.BFrame")
139
+#define AMF_H264_QP_BFRAME_DESCRIPTION TEXT_AMF_H264("QP.BFrame.Description")
140
+#define AMF_H264_QP_BPICTURE_DELTA TEXT_AMF_H264("QP.BPictureDelta")
141
+#define AMF_H264_QP_BPICTURE_DELTA_DESCRIPTION TEXT_AMF_H264("QP.BPictureDelta.Description")
142
+#define AMF_H264_QP_REFERENCE_BPICTURE_DELTA TEXT_AMF_H264("QP.ReferenceBPictureDelta")
143
+#define AMF_H264_QP_REFERENCE_BPICTURE_DELTA_DESCRIPTION TEXT_AMF_H264("QP.ReferenceBPictureDelta.Description")
144
+#define AMF_H264_VBVBUFFER TEXT_AMF_H264("VBVBuffer")
145
+#define AMF_H264_VBVBUFFER_DESCRIPTION TEXT_AMF_H264("VBVBuffer.Description")
146
+#define AMF_H264_VBVBUFFER_STRICTNESS TEXT_AMF_H264("VBVBuffer.Strictness")
147
+#define AMF_H264_VBVBUFFER_STRICTNESS_DESCRIPTION TEXT_AMF_H264("VBVBuffer.Strictness.Description")
148
+#define AMF_H264_VBVBUFFER_SIZE TEXT_AMF_H264("VBVBuffer.Size")
149
+#define AMF_H264_VBVBUFFER_SIZE_DESCRIPTION TEXT_AMF_H264("VBVBuffer.Size.Description")
150
+#define AMF_H264_VBVBUFFER_FULLNESS TEXT_AMF_H264("VBVBuffer.Fullness")
151
+#define AMF_H264_VBVBUFFER_FULLNESS_DESCRIPTION TEXT_AMF_H264("VBVBuffer.Fullness.Description")
152
+#define AMF_H264_FILLERDATA TEXT_AMF_H264("FillerData")
153
+#define AMF_H264_FILLERDATA_DESCRIPTION TEXT_AMF_H264("FillerData.Description")
154
+#define AMF_H264_FRAMESKIPPING TEXT_AMF_H264("FrameSkipping")
155
+#define AMF_H264_FRAMESKIPPING_DESCRIPTION TEXT_AMF_H264("FrameSkipping.Description")
156
+#define AMF_H264_ENFORCEHRDCOMPATIBILITY TEXT_AMF_H264("EnforceHRDCompatibility")
157
+#define AMF_H264_ENFORCEHRDCOMPATIBILITY_DESCRIPTION TEXT_AMF_H264("EnforceHRDCompatibility.Description")
158
+#define AMF_H264_MAXIMUMACCESSUNITSIZE TEXT_AMF_H264("MaximumAccessUnitSize")
159
+#define AMF_H264_MAXIMUMACCESSUNITSIZE_DESCRIPTION TEXT_AMF_H264("MaximumAccessUnitSize.Description")
160
+
161
+// Picture Control Properties
162
+#define AMF_H264_KEYFRAME_INTERVAL TEXT_AMF_H264("KeyframeInterval")
163
+#define AMF_H264_KEYFRAME_INTERVAL_DESCRIPTION TEXT_AMF_H264("KeyframeInterval.Description")
164
+#define AMF_H264_IDR_PERIOD TEXT_AMF_H264("IDRPeriod")
165
+#define AMF_H264_IDR_PERIOD_DESCRIPTION TEXT_AMF_H264("IDRPeriod.Description")
166
+#define AMF_H264_HEADER_INSERTION_SPACING TEXT_AMF_H264("HeaderInsertionSpacing")
167
+#define AMF_H264_HEADER_INSERTION_SPACING_DESCRIPTION TEXT_AMF_H264("HeaderInsertionSpacing.Description")
168
+#define AMF_H264_BPICTURE_PATTERN TEXT_AMF_H264("BPicture.Pattern")
169
+#define AMF_H264_BPICTURE_PATTERN_DESCRIPTION TEXT_AMF_H264("BPicture.Pattern.Description")
170
+#define AMF_H264_BPICTURE_REFERENCE TEXT_AMF_H264("BPicture.Reference")
171
+#define AMF_H264_BPICTURE_REFERENCE_DESCRIPTION TEXT_AMF_H264("BPicture.Reference.Description")
172
+#define AMF_H264_DEBLOCKINGFILTER TEXT_AMF_H264("DeblockingFilter")
173
+#define AMF_H264_DEBLOCKINGFILTER_DESCRIPTION TEXT_AMF_H264("DeblockingFilter.Description")
174
+#define AMF_H264_SLICESPERFRAME TEXT_AMF_H264("SlicesPerFrame")
175
+#define AMF_H264_SLICESPERFRAME_DESCRIPTION TEXT_AMF_H264("SlicesPerFrame.Description")
176
+#define AMF_H264_INTRAREFRESHNUMMBSPERSLOT TEXT_AMF_H264("IntraRefreshNumMBsPerSlot")
177
+#define AMF_H264_INTRAREFRESHNUMMBSPERSLOT_DESCRIPTION TEXT_AMF_H264("IntraRefreshNumMBsPerSlot.Description")
178
+
179
+// Miscellaneous Properties
180
+#define AMF_H264_SCANTYPE TEXT_AMF_H264("ScanType")
181
+#define AMF_H264_SCANTYPE_DESCRIPTION TEXT_AMF_H264("ScanType.Description")
182
+#define AMF_H264_SCANTYPE_PROGRESSIVE TEXT_AMF_H264("ScanType.Progressive")
183
+#define AMF_H264_SCANTYPE_INTERLACED TEXT_AMF_H264("ScanType.Interlaced")
184
+#define AMF_H264_MOTIONESTIMATION TEXT_AMF_H264("MotionEstimation")
185
+#define AMF_H264_MOTIONESTIMATION_DESCRIPTION TEXT_AMF_H264("MotionEstimation.Description")
186
+#define AMF_H264_MOTIONESTIMATION_NONE TEXT_AMF_H264("MotionEstimation.None")
187
+#define AMF_H264_MOTIONESTIMATION_HALF TEXT_AMF_H264("MotionEstimation.Half")
188
+#define AMF_H264_MOTIONESTIMATION_QUARTER TEXT_AMF_H264("MotionEstimation.Quarter")
189
+#define AMF_H264_MOTIONESTIMATION_BOTH TEXT_AMF_H264("MotionEstimation.Both")
190
+
191
+// System Properties
192
+#define AMF_H264_DEVICE TEXT_AMF_H264("Device")
193
+#define AMF_H264_DEVICE_DESCRIPTION TEXT_AMF_H264("Device.Description")
194
+#define AMF_H264_USE_OPENCL TEXT_AMF_H264("UseOpenCL")
195
+#define AMF_H264_USE_OPENCL_DESCRIPTION TEXT_AMF_H264("UseOpenCL.Description")
196
+#define AMF_H264_VIEW TEXT_AMF_H264("View")
197
+#define AMF_H264_VIEW_DESCRIPTION TEXT_AMF_H264("View.Description")
198
+#define AMF_H264_VIEW_BASIC TEXT_AMF_H264("View.Basic")
199
+#define AMF_H264_VIEW_ADVANCED TEXT_AMF_H264("View.Advanced")
200
+#define AMF_H264_VIEW_EXPERT TEXT_AMF_H264("View.Expert")
201
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources
Added
2
1
+(directory)
2
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale
Added
2
1
+(directory)
2
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/bg-BG.ini
Changed
2
1
(renamed from plugins/enc-amf/enc-amf/Resources/locale/bg-BG.ini)
2
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/ca-ES.ini
Added
63
1
2
+AMF.H264.Preset="Configuració preestablerta"
3
+AMF.H264.Preset.Recording="S'està enregistrant"
4
+AMF.H264.Preset.HighQuality="Alta qualitat"
5
+AMF.H264.Preset.Indistinguishable="Indistinguible"
6
+AMF.H264.Preset.Lossless="Sense pèrdues"
7
+AMF.H264.Preset.Twitch="Twitch"
8
+AMF.H264.Preset.YouTube="YouTube"
9
+AMF.H264.Usage="Ús"
10
+AMF.H264.Usage.Description="Quin ús s'ha d'ajustar AMF:\n- 'Codificació' és per a ús generalitzat (recomanat),\n- 'Latència Ultra Baixa' és per a una codificació de molt baixa latència,\n- 'Latència Baixa' és similar a l'anterior amb alguna cosa mes de latència.\nLes retransmissions en directe només suporten 'Codificació', tots els valors poden ser utilitzats per a enregistrar."
11
+AMF.H264.Usage.Transcoding="Transcodificació"
12
+AMF.H264.Usage.UltraLowLatency="Latència ultra baixa"
13
+AMF.H264.Usage.LowLatency="Latència baixa"
14
+AMF.H264.QualityPreset="Qualitat del perfil"
15
+AMF.H264.QualityPreset.Speed="Velocitat"
16
+AMF.H264.QualityPreset.Balanced="Equilibrat"
17
+AMF.H264.QualityPreset.Quality="Qualitat"
18
+AMF.H264.Profile="Perfil"
19
+AMF.H264.ProfileLevel="Nivell de perfil"
20
+AMF.H264.MaximumLTRFrames="Fotogrames màxims LTR"
21
+AMF.H264.ScanType="Tipus d'exploració"
22
+AMF.H264.ScanType.Progressive="Progressiu"
23
+AMF.H264.ScanType.Interlaced="Entrellaçat"
24
+AMF.H264.RateControlMethod="Mètode de control del flux"
25
+AMF.H264.RateControlMethod.CQP="QP constant (CQP)"
26
+AMF.H264.RateControlMethod.CBR="Flux constant (CBR)"
27
+AMF.H264.RateControlMethod.VBR.Peak="Flux variable (pic restringit)(VBR)"
28
+AMF.H264.RateControlMethod.VBR.Latency="Flux variable (latència restringida) (VBR_LAT)"
29
+AMF.H264.Bitrate.Target="Tassa de bits desitjada"
30
+AMF.H264.Bitrate.Peak="Pic de tassa de bits"
31
+AMF.H264.QP.Minimum="QP mínim"
32
+AMF.H264.QP.Maximum="QP màxim"
33
+AMF.H264.QP.IFrame="I-Frame QP"
34
+AMF.H264.QP.PFrame="P-Frame QP"
35
+AMF.H264.QP.BFrame="B-Frame QP"
36
+AMF.H264.QP.BPictureDelta="B-Picture Delta QP"
37
+AMF.H264.QP.ReferenceBPictureDelta="QP Delta en B-Pictures de referencia"
38
+AMF.H264.FillerData="Dades a omplir"
39
+AMF.H264.FrameSkipping="Omissió de fotogrames"
40
+AMF.H264.EnforceHRDCompatibility="Força la compatibilitat amb HRD"
41
+AMF.H264.BPicture.Pattern="Patró B-Picture"
42
+AMF.H264.BPicture.Reference="Referència B-Picture"
43
+AMF.H264.DeblockingFilter="Filtre d'eliminació de blocs"
44
+AMF.H264.MotionEstimation.None="Cap"
45
+AMF.H264.MotionEstimation.Half="Meitat de píxel"
46
+AMF.H264.MotionEstimation.Quarter="Quart de Píxel"
47
+AMF.H264.Device="Dispositiu"
48
+AMF.H264.View="Mode de visualització"
49
+AMF.H264.View.Description="Quines propietats han de ser visibles. No rebreu suport si feu servir el mode de vista 'Expert' o 'Màster'."
50
+AMF.H264.View.Basic="Bàsic"
51
+AMF.H264.View.Advanced="Avançat"
52
+AMF.H264.View.Expert="Expert"
53
+AMF.H264.View.Master="Màster"
54
+AMF.H264.UnlockProperties="Desbloqueja les propietats"
55
+AMF.H264.UnlockProperties.Description="Desbloqueja algunes propietats a la seva màxima capacitat en lloc de limitar-les de forma parcial."
56
+AMF.H264.Debug="Depuració"
57
+AMF.H264.Debug.Description="Habilita el registre d'informació de depuració addicional, ha de ser activat quan necessiteu ajuda amb aquest codificador."
58
+AMF.Util.Default="Per defecte"
59
+AMF.Util.Automatic="Automàtic"
60
+AMF.Util.Manual="Manual"
61
+AMF.Util.Toggle.Disabled="Desactivat"
62
+AMF.Util.Toggle.Enabled="Activat"
63
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/cs-CZ.ini
Added
65
1
2
+AMF.H264.Preset="Profil"
3
+AMF.H264.Preset.ResetToDefaults="Obnovit výchozí"
4
+AMF.H264.Preset.Recording="Nahrávání"
5
+AMF.H264.Preset.HighQuality="Vysoká kvalita"
6
+AMF.H264.Preset.Indistinguishable="Nerozeznatelné"
7
+AMF.H264.Preset.Lossless="Lossless"
8
+AMF.H264.Preset.Twitch="Twitch"
9
+AMF.H264.Preset.YouTube="YouTube"
10
+AMF.H264.Usage="Využití"
11
+AMF.H264.Usage.Transcoding="Kódování"
12
+AMF.H264.Usage.UltraLowLatency="Ultra nízká odezva"
13
+AMF.H264.Usage.LowLatency="Nízká odezva"
14
+AMF.H264.QualityPreset="Profil kvality"
15
+AMF.H264.QualityPreset.Speed="Rychlost"
16
+AMF.H264.QualityPreset.Balanced="Vyváženo"
17
+AMF.H264.QualityPreset.Quality="Kvalita"
18
+AMF.H264.Profile="Profil"
19
+AMF.H264.ProfileLevel="Úroveň profilu"
20
+AMF.H264.MaximumLTRFrames="Maximální počet LTR snímků"
21
+AMF.H264.ScanType="Typ skenování"
22
+AMF.H264.ScanType.Description="Určuje použitou metodu skenování, vždy ponechejte na 'Progresivní'."
23
+AMF.H264.ScanType.Progressive="Progresivní"
24
+AMF.H264.ScanType.Interlaced="Prokládané"
25
+AMF.H264.RateControlMethod="Metoda řízení"
26
+AMF.H264.RateControlMethod.CQP="Konstantní QP (CQP)"
27
+AMF.H264.RateControlMethod.CBR="Konstantní bitrate (CBR)"
28
+AMF.H264.RateControlMethod.VBR.Peak="Proměnný bitrate (vázán špičkou) (VBR)"
29
+AMF.H264.RateControlMethod.VBR.Latency="Proměnný bitrate (vázán odezvou) (VBR_LAT)"
30
+AMF.H264.Bitrate.Target="Cílový bitrate"
31
+AMF.H264.Bitrate.Target.Description="Bitrate, kterého se máme snažit dosáhnout v celé sekvenci."
32
+AMF.H264.Bitrate.Peak="Špičkový bitrate"
33
+AMF.H264.Bitrate.Peak.Description="Bitrate, kterého se máme snažit nepřekročit v celé sekvenci."
34
+AMF.H264.QP.Minimum="Minimální QP"
35
+AMF.H264.QP.Maximum="Maximální QP"
36
+AMF.H264.FillerData="Filtrovat data"
37
+AMF.H264.FrameSkipping="Přeskakování snímků"
38
+AMF.H264.EnforceHRDCompatibility="Vynutit kompatibilitu s HRD"
39
+AMF.H264.KeyframeInterval="Interval klíčový snímků"
40
+AMF.H264.KeyframeInterval.Description="Kolik vteřin by mělo být mezi ne-zahazovatelnými snímky.\nTaké ovládá velikost sekvence(GOP)."
41
+AMF.H264.MotionEstimation="Odhad pohybu"
42
+AMF.H264.MotionEstimation.Description="Odhad pohybu umožňuje enkodéru snížit požadovaný bitrate předpovídáním, kam se určitý pixel posunul."
43
+AMF.H264.MotionEstimation.None="Žádný"
44
+AMF.H264.MotionEstimation.Half="Polovina pixelu"
45
+AMF.H264.MotionEstimation.Quarter="Čtvrtina pixelu"
46
+AMF.H264.MotionEstimation.Both="Polovina & čtvrtina pixelu"
47
+AMF.H264.Device="Zařízení"
48
+AMF.H264.UseOpenCL="Použít OpenCL"
49
+AMF.H264.UseOpenCL.Description="Měl by enkodér použít OpenCL pro potvrzování samostatných snímků?"
50
+AMF.H264.View="Režim zobrazení"
51
+AMF.H264.View.Description="Které možnosti mají být zobrazeny. Nezískáte žádnou pomoc při použití módu 'Expert' či 'Master'."
52
+AMF.H264.View.Basic="Základní"
53
+AMF.H264.View.Advanced="Pokročilý"
54
+AMF.H264.View.Expert="Expert"
55
+AMF.H264.View.Master="Master"
56
+AMF.H264.UnlockProperties="Odblokovat vlastnosti"
57
+AMF.H264.UnlockProperties.Description="Odblokuje určité vlastnosti do jejich plného rozsahu místo omezování do určitého."
58
+AMF.H264.Debug="Ladění"
59
+AMF.H264.Debug.Description="Zapne rozšířené protokolování, mělo by být zapnuto, pokud pořebujete pomoci s tmto enkodérem."
60
+AMF.Util.Default="Výchozí"
61
+AMF.Util.Automatic="Automatické"
62
+AMF.Util.Manual="Manuální"
63
+AMF.Util.Toggle.Disabled="Zakázáno"
64
+AMF.Util.Toggle.Enabled="Povoleno"
65
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/da-DK.ini
Added
36
1
2
+AMF.H264.Usage.Transcoding="Transcoding"
3
+AMF.H264.Usage.UltraLowLatency="Ekstrem Lav Ventetid"
4
+AMF.H264.Usage.LowLatency="Lav Ventetid"
5
+AMF.H264.QualityPreset="Kvalitets profiler"
6
+AMF.H264.QualityPreset.Speed="Hastighed (Dårligste kvalitet)"
7
+AMF.H264.QualityPreset.Balanced="Balanceret (Mellem Kvalitet)"
8
+AMF.H264.QualityPreset.Quality="Kvalitet (Bedste Kvalitet)"
9
+AMF.H264.Profile="Profil"
10
+AMF.H264.ProfileLevel="Profil Niveau"
11
+AMF.H264.ScanType="Scan Type"
12
+AMF.H264.ScanType.Progressive="Progressive"
13
+AMF.H264.ScanType.Interlaced="Interlaced"
14
+AMF.H264.RateControlMethod="Rate Control Method"
15
+AMF.H264.RateControlMethod.CQP="Constant QP (CQP)"
16
+AMF.H264.RateControlMethod.CBR="Constant Bitrate (CBR)"
17
+AMF.H264.RateControlMethod.VBR.Peak="Variable Bitrate (Peak Constrained) (VBR)"
18
+AMF.H264.RateControlMethod.VBR.Latency="Variable Bitrate (Latency Constrained) (VBR_LAT)"
19
+AMF.H264.Bitrate.Target="Mål Bitrate"
20
+AMF.H264.Bitrate.Peak="Top Bitrate"
21
+AMF.H264.QP.Minimum="Minimum QP"
22
+AMF.H264.QP.Maximum="Maksimum QP"
23
+AMF.H264.QP.IFrame="I-Frame QP"
24
+AMF.H264.QP.PFrame="P-Frame QP"
25
+AMF.H264.QP.BFrame="B-Frame QP"
26
+AMF.H264.QP.BPictureDelta="B-Picture Delta QP"
27
+AMF.H264.FillerData="Filler Data"
28
+AMF.H264.FrameSkipping="Billede skip"
29
+AMF.H264.EnforceHRDCompatibility="Tving HRD Kompatibilitet"
30
+AMF.H264.BPicture.Pattern="B-Picture Pattern"
31
+AMF.H264.BPicture.Reference="B-Picture Reference"
32
+AMF.H264.DeblockingFilter="Deblocking Filter"
33
+AMF.Util.Default="Standard"
34
+AMF.Util.Toggle.Disabled="Deaktiveret"
35
+AMF.Util.Toggle.Enabled="Aktiveret"
36
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/de-DE.ini
Added
114
1
2
+AMF.H264.Preset="Voreinstellungen"
3
+AMF.H264.Preset.ResetToDefaults="Standardeinstellungen wiederherstellen"
4
+AMF.H264.Preset.Recording="Aufnahme"
5
+AMF.H264.Preset.HighQuality="Hohe Qualität"
6
+AMF.H264.Preset.Indistinguishable="Ununterscheidbar"
7
+AMF.H264.Preset.Lossless="Verlustfrei"
8
+AMF.H264.Preset.Twitch="Twitch"
9
+AMF.H264.Preset.YouTube="YouTube"
10
+AMF.H264.Usage="Nutzungsart"
11
+AMF.H264.Usage.Description="Auf welche Nutzungsart AMF eingestellt werden soll:\n- '\@AMF.H264.Usage.Transcoding\@' für generelle Codierung (empfohlen),\n- '\@AMF.H264.Usage.UltraLowLatency\@' für Codierung mit sehr niedriger Latenz,\n- '\@AMF.H264.Usage.LowLatency\@' ist ähnlich dem oberen mit leicht erhöhter Latenz.\nNur '\@AMF.H264.Usage.Transcoding\@' wird für das Streamen unterstützt, alle anderen können für Aufnahmen verwendet werden."
12
+AMF.H264.Usage.Transcoding="Umwandeln"
13
+AMF.H264.Usage.UltraLowLatency="Sehr Niedrige Latenz"
14
+AMF.H264.Usage.LowLatency="Niedrige Latenz"
15
+AMF.H264.QualityPreset="Qualitätsvoreinstellung"
16
+AMF.H264.QualityPreset.Description="Welche Qualitätsvoreinstellungen AMF versuchen soll zu verwenden:\n- '\@AMF.H264.QualityPreset.Speed\@' ist die schnellste aber hat die schlechteste Qualität,\n- '\@AMF.H264.QualityPreset.Balanced\@' ist ein balancierter Mix aus beiden,\n- '\@AMF.H264.QualityPreset.Quality\@' gibt die beste Qualität für eine gegebene Bitrate."
17
+AMF.H264.QualityPreset.Speed="Geschwindigkeit"
18
+AMF.H264.QualityPreset.Balanced="Ausgeglichen"
19
+AMF.H264.QualityPreset.Quality="Qualität"
20
+AMF.H264.Profile="Profil"
21
+AMF.H264.Profile.Description="Welches H.264 Profil soll für das codieren verwendet werden:\n- 'Baseline' hat die größte Betriebssystemunterstützung,\n- 'Main' wird von älteren Geräten unterstützt (empfohlen sofern das Ziel mobile Geräte sind),\n- 'High' wird von neueren Geräten unterstützt (empfohlen)."
22
+AMF.H264.ProfileLevel="Profillevel"
23
+AMF.H264.ProfileLevel.Description="Welches H.264 Profil Level für das verarbeiten verwendet werden soll:\n- '\@AMF.Util.Automatic\@' errechnet das beste Profil Level für die gegebene Frame Rate und Frame Größe,\n- '4.1' unterstützt 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS\n- '4.2' unterstützt 1920x1080 60FPS, 1280x720 120FPS, 960x540 172FPS\n- '5.0' unterstützt 1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS\n- '5.1' unterstützt 3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS\n- '5.2' unterstützt 3840x2160 60FPS, 1920x1080 172FPS, 1280x720 172FPS, 960x540 172FPS"
24
+AMF.H264.MaximumLTRFrames="Maximale Langzeitreferenz-Bilder"
25
+AMF.H264.MaximumLTRFrames.Description="Langzeitreferenz (LTR) Bilder ist ein Feature das dem Codierer erlaubt, einige Bilder innerhalb einer Sequenz als referenzierbar zu markieren.\nDies kann einen positiven Effekt auf die Qualität haben sofern B-Bilder nicht unterstützt oder gewollt sind.\nLTR Bilder können nicht zusammen mit B-Bildern verwendet werden und der Codierer wird B-Bilder deaktivieren sofern diese verwendet werden."
26
+AMF.H264.CodingType="Codierungstyp"
27
+AMF.H264.CodingType.Description="Welcher Codierungstyp verwendet werden soll:\n* \@AMF.Util.Default\@ lässt AMF entscheiden (empfohlen).\n* CALVC (Context-Adaptive Variable-Length Coding) ist schneller aber größer.\n* CABAC (Context-Adaptive Binary Arithmetic Coding) ist langsamer aber kleiner."
28
+AMF.H264.ScanType="Abtastverfahren"
29
+AMF.H264.ScanType.Description="Welches Abtastverfahren verwendet werden soll. Sollte immer '\@AMF.H264.ScanType.Progressive\@' sein."
30
+AMF.H264.ScanType.Progressive="Progressiv"
31
+AMF.H264.ScanType.Interlaced="Zeilensprung"
32
+AMF.H264.RateControlMethod="Ratenkontrollmethode"
33
+AMF.H264.RateControlMethod.Description="Welche Ratenkontrollmethode verwendet werden soll:\n- '\@AMF.H264.RateControlMethod.CQP\@' setzt feste QP (Quantifizierungsparameter) Werte für I-/P-/B- Bilder,\n- '\@AMF.H264.RateControlMethod.CBR\@' bleibt auf der Zielbitrate (mithilfe von Füllungsdaten) (empfohlen für das Streamen),\n- '\@AMF.H264.RateControlMethod.VBR\@' bleibt unter der Spitzenbitrate,\n- '\@AMF.H264.RateControlMethod.VBR_LAT\@' bleibt nahe der Zielbitrate sofern GPU-Latenz und GPU-Benutzung dies erlauben, ansonsten wird eine höhere Bitrate verwendet (empfohlen für Aufnahmen)."
34
+AMF.H264.RateControlMethod.CQP="Konstante QP (CQP)"
35
+AMF.H264.RateControlMethod.CBR="Konstante Bitrate (CBR)"
36
+AMF.H264.RateControlMethod.VBR.Peak="Variable Bitrate (Eingeschränkt via Spitzenbitrate) (VBR)"
37
+AMF.H264.RateControlMethod.VBR.Latency="Variable Bitrate (Eingeschränkt via Latenz) (VBR_LAT)"
38
+AMF.H264.Bitrate.Target="Zielbitrate"
39
+AMF.H264.Bitrate.Target.Description="Zielbitrate die in der ganzen Sequenz erreicht werden soll."
40
+AMF.H264.Bitrate.Peak="Spitzenbitrate"
41
+AMF.H264.Bitrate.Peak.Description="Spitzenbitrate die in der ganzen Sequenz erreicht werden darf."
42
+AMF.H264.QP.Minimum="Minimale QP"
43
+AMF.H264.QP.Minimum.Description="Niedrigster QP (Quantifizierungsparameter) wert der in einem Bild verwendet wird."
44
+AMF.H264.QP.Maximum="Maximale QP"
45
+AMF.H264.QP.Maximum.Description="Höchster QP (Quantifizierungsparameter) wert der in einem Bild verwendet wird."
46
+AMF.H264.QP.IFrame="I-Einzelbild QP"
47
+AMF.H264.QP.IFrame.Description="Fester QP (Quantifizierungsparameter) wert der für I-Bilder genutzt wird.\nI-Bild QP sollte höher oder gleich wie der von P- und B-Bildern sein."
48
+AMF.H264.QP.PFrame="P-Einzelbild QP"
49
+AMF.H264.QP.PFrame.Description="Fester QP (Quantifizierungsparameter) wert der für P-Bilder genutzt wird.\nI-Bild QP sollte höher oder gleich wie der von B-Bildern sein."
50
+AMF.H264.QP.BFrame="B-Einzelbild QP"
51
+AMF.H264.QP.BFrame.Description="Fester QP (Quantifizierungsparameter) wert der für B-Bilder genutzt wird."
52
+AMF.H264.QP.BPictureDelta="B-Bild Delta QP"
53
+AMF.H264.QP.BPictureDelta.Description="Delta QP wert zum letzten nicht-Referenz B-Bild."
54
+AMF.H264.QP.ReferenceBPictureDelta="Referenz B-Bild Delta QP"
55
+AMF.H264.QP.ReferenceBPictureDelta.Description="Delta QP wert zum letzten Referenz B-Bild."
56
+AMF.H264.VBVBuffer="VBV Buffer"
57
+AMF.H264.VBVBuffer.Description="Welche Methode genutzt werden soll um die VBV-Puffergröße zu bestimmen:\n- '\@AMF.Util.Automatic\@' errechnet diese mithilfe einer Strengeneinschränkung,\n- '\@AMF.Util.Manual\@' erlaubt es dem Nutzer die Größe zu kontrollieren.\n
58
+VBV (Videopufferungsverifizierer) Puffer wird von verschiedenen Ratenkontrollmethoden genutzt um die gesamte Bitrate innerhalb der Begrenzungen zu halten."
59
+AMF.H264.VBVBuffer.Strictness="VBV Buffer Genauigkeit"
60
+AMF.H264.VBVBuffer.Strictness.Description="Wie streng der VBV Buffer sein soll, wobei 100% fast exakt die Zielbitrate und 0% komplett unbeschränkt ist."
61
+AMF.H264.VBVBuffer.Size="VBV Buffer Größe"
62
+AMF.H264.VBVBuffer.Size.Description="Die Größe des VBV Buffers der für die Bitratenkontrollen in einer Sequenz verwendet wird.\nEine kleine Größe ergibt eine fast perfekte Übereinstimmung mit der Bitrate aber hat einen größeren Performanzeinfluss."
63
+AMF.H264.VBVBuffer.Fullness="VBV Buffer Füllung"
64
+AMF.H264.VBVBuffer.Fullness.Description="Wie voll der VBV Buffer anfangs ist, hat nur einen Effekt auf die erste Sequenz beim codieren."
65
+AMF.H264.FillerData="Füllungsdaten"
66
+AMF.H264.FillerData.Description="Das aktivieren von Füllungsdaten erlaubt es dem Codierer mindestens die Zielbitrate zu erreichen in dem dieser den verbleibenden Platz mit leeren Informationen füllt."
67
+AMF.H264.FrameSkipping="Bildüberspringung"
68
+AMF.H264.FrameSkipping.Description="Bildüberspringung erlaubt es dem Codierer, Bilder zu überspringen um die Zielbitrate einzuhalten.\nWenn der Codierer ein Bild überspringt, fügt dieser stattdessen ein repeat-last-frame NAL in den Stream ein.\nKann bei sehr niedrigen Zielbitraten helfen."
69
+AMF.H264.EnforceHRDCompatibility="Erzwinge HRD Kompatiblität"
70
+AMF.H264.EnforceHRDCompatibility.Description="Erzwinge Hypothetischer-Referenz-Decodierer Limitierungen welches die maximale Änderung des QP werts innerhalb eines Bildes begrenzt.\nNicht empfohlen für Aufname oder Streamen und sollte nur verwendet werden sofern das Ziel sehr alte Geräte mit einem Softwarereferenz Decodierer sind."
71
+AMF.H264.MaximumAccessUnitSize="Maximale Zugriffseinheitsgröße"
72
+AMF.H264.MaximumAccessUnitSize.Description="Größte Größe einer Zugriffseinheit für einen NAL. Ein Wert von 0 erlaubt es dem Codierer die beste Größte zu wählen."
73
+AMF.H264.KeyframeInterval="Keyframeintervall"
74
+AMF.H264.KeyframeInterval.Description="Definiert die Distanz zwischen Keyframes in Sekunden. Setzt auch die Größe einer GOP-Sequenz fest."
75
+AMF.H264.IDRPeriod="IDR Zeitraum"
76
+AMF.H264.IDRPeriod.Description="Definiert die Distanz zwischen Sofortigen-Decodierer-Aktualisierungen (IDR) in Frames. Setzt auch die Größe einer GOP-Sequenz fest."
77
+AMF.H264.HeaderInsertionSpacing="Dateikopfeinfügungsabstand"
78
+AMF.H264.HeaderInsertionSpacing.Description="Wie viele Bilder zwischen NAL-Kopfzeilen sein sollen. Es wird nicht empfohlen dies von 0 (automatisch) zu ändern."
79
+AMF.H264.BPicture.Pattern="B-Bild Muster"
80
+AMF.H264.BPicture.Pattern.Description="Wie viele B-Bilder sollen erlaubt sein für das codieren. Dies hat einen positiven Einfluss auf Qualität und einen negativen Einfluss auf Performanz.\nWird nur von der 2. und 3. Generation an VCE-Karten unterstützt."
81
+AMF.H264.BPicture.Reference="B-Bild Referenz"
82
+AMF.H264.BPicture.Reference.Description="Erlaube B-Bilder andere B-Bilder zu verwenden.\nSehr großer Einfluss auf Performanz, wenig Einfluss auf Qualität."
83
+AMF.H264.DeblockingFilter="Entblockungsfilter"
84
+AMF.H264.DeblockingFilter.Description="Setze die Markierung dass der Decodierer einen Entblockungsfilter verwenden darf."
85
+AMF.H264.SlicesPerFrame="Slices pro Frame"
86
+AMF.H264.SlicesPerFrame.Description="Wie viele I-Bild-Schnitte sollen mit jedem Bild gespeichert werden?\nEin Wert von Null erlaubt es dem Codierer während dem codieren die Entscheidung zu treffen.\nIntra-Erneuerungs-Codieren wird genutzt für schnelleres abspielen und suchen."
87
+AMF.H264.IntraRefreshNumMBsPerSlot="Intra-Refresh Anzahl der Makroblöcke pro Slot"
88
+AMF.H264.IntraRefreshNumMBsPerSlot.Description="Wie viele Makroblöcke sollen pro Slot gespeichert werden?\nEin Wert von Null erlaubt es dem Codierer während dem codieren die Entscheidung zu treffen.\nIntra-Erneuerungs-Codieren wird genutzt für schnelleres abspielen und suchen."
89
+AMF.H264.MotionEstimation="Bewegungsschätzung"
90
+AMF.H264.MotionEstimation.Description="Bewegungsschätzung erlaubt des dem Codierer die benötigte Bitrate zu reduzieren durch das herausfinden, wo ein Pixel hinbewegt wurde."
91
+AMF.H264.MotionEstimation.None="Keine"
92
+AMF.H264.MotionEstimation.Half="Halb-Pixel"
93
+AMF.H264.MotionEstimation.Quarter="Viertel-Pixel"
94
+AMF.H264.MotionEstimation.Both="Halb- & Viertel-Pixel"
95
+AMF.H264.Device="Gerät"
96
+AMF.H264.Device.Description="Welches Gerät für das codieren verwendet werden soll.\nBenötigt einen anderen Speichertyp als 'Host'."
97
+AMF.H264.UseOpenCL="Benutze OpenCL"
98
+AMF.H264.UseOpenCL.Description="Soll OpenCL verwendet werden, um Einzelbilder zum Codierer zu senden?"
99
+AMF.H264.View="Ansichtsmodus"
100
+AMF.H264.View.Description="Welche Eigenschaften sollen sichtbar sein?\nDas benutzen von '\@AMF.H264.View.Master\@' disqualifiziert dich von jeglichen Support."
101
+AMF.H264.View.Basic="Grundlegend"
102
+AMF.H264.View.Advanced="Erweitert"
103
+AMF.H264.View.Expert="Experte"
104
+AMF.H264.View.Master="Meister"
105
+AMF.H264.UnlockProperties="Entsperre Einstellungen"
106
+AMF.H264.UnlockProperties.Description="Entsperre einige Einstellungen, sodass diese die volle Reichweite haben, anstatt nur eine begrenzte."
107
+AMF.H264.Debug="Debug"
108
+AMF.H264.Debug.Description="Aktiviere erweiterte Debug-Nachrichten, sollte aktiv sein wenn man Hilfe erwartet mit diesem Codierer."
109
+AMF.Util.Default="Standard"
110
+AMF.Util.Automatic="Automatisch"
111
+AMF.Util.Manual="Manuell"
112
+AMF.Util.Toggle.Disabled="Deaktiviert"
113
+AMF.Util.Toggle.Enabled="Aktiviert"
114
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/el-GR.ini
Changed
2
1
(renamed from plugins/enc-amf/enc-amf/Resources/locale/el-GR.ini)
2
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/en-US.ini
Added
121
1
2
+# Presets
3
+AMF.H264.Preset="Preset"
4
+AMF.H264.Preset.ResetToDefaults="Reset to Defaults"
5
+AMF.H264.Preset.Recording="Recording"
6
+AMF.H264.Preset.HighQuality="High Quality"
7
+AMF.H264.Preset.Indistinguishable="Indistinguishable"
8
+AMF.H264.Preset.Lossless="Lossless"
9
+AMF.H264.Preset.Twitch="Twitch"
10
+AMF.H264.Preset.YouTube="YouTube"
11
+# Static Properties
12
+AMF.H264.Usage="Usage"
13
+AMF.H264.Usage.Description="What usage AMF should be tuned for:\n- '\@AMF.H264.Usage.Transcoding\@' is general purpose transcoding (recommended),\n- '\@AMF.H264.Usage.UltraLowLatency\@' is for really low latency encoding,\n- '\@AMF.H264.Usage.LowLatency\@' is similar to above with a slightly higher latency.\nStreaming only supports '\@AMF.H264.Usage.Transcoding\@', all other values can be used for recording."
14
+AMF.H264.Usage.Transcoding="Transcoding"
15
+AMF.H264.Usage.UltraLowLatency="Ultra Low Latency"
16
+AMF.H264.Usage.LowLatency="Low Latency"
17
+AMF.H264.QualityPreset="Quality Preset"
18
+AMF.H264.QualityPreset.Description="What Quality Preset AMF should attempt to target:\n- '\@AMF.H264.QualityPreset.Speed\@' is the fastest but has the worst quality,\n- '\@AMF.H264.QualityPreset.Balanced\@' is a balanced mix of both,\n- '\@AMF.H264.QualityPreset.Quality\@' gives the best quality for a given bitrate."
19
+AMF.H264.QualityPreset.Speed="Speed"
20
+AMF.H264.QualityPreset.Balanced="Balanced"
21
+AMF.H264.QualityPreset.Quality="Quality"
22
+AMF.H264.Profile="Profile"
23
+AMF.H264.Profile.Description="Which H.264 Profile to use for encoding:\n- 'Baseline' has the biggest platform support,\n- 'Main' is supported by older devices (recommended if targeting mobile devices),\n- 'High' is supported by current devices (recommended)."
24
+AMF.H264.ProfileLevel="Profile Level"
25
+AMF.H264.ProfileLevel.Description="Which H.264 Profile Level to use for encoding:\n- '\@AMF.Util.Automatic\@' calculates the best profile level for the given Frame Rate and Frame Size,\n- '4.1' supports 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS\n- '4.2' supports 1920x1080 60FPS, 1280x720 120FPS, 960x540 172FPS\n- '5.0' supports 1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS\n- '5.1' supports 3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS\n- '5.2' supports 3840x2160 60FPS, 1920x1080 172FPS, 1280x720 172FPS, 960x540 172FPS"
26
+AMF.H264.MaximumLTRFrames="Maximum LTR Frames"
27
+AMF.H264.MaximumLTRFrames.Description="Long Term Reference (LTR) Frames are a feature that allows the encoder to flag certain frames in a sequence as referencable.\nThis can have a positive effect on quality when B-Pictures are not supported or wanted.\nLTR Frames can't be used with B-Pictures and the encoder will disable B-Pictures if these are used."
28
+AMF.H264.CodingType="Coding Type"
29
+AMF.H264.CodingType.Description="Which type of coding to use:\n* \@AMF.Util.Default\@ lets AMF decide (recommended).\n* CALVC (Context-Adaptive Variable-Length Coding) is faster, but larger.\n* CABAC (Context-Adaptive Binary Arithmetic Coding) is slower, but smaller."
30
+AMF.H264.ScanType="Scan Type"
31
+AMF.H264.ScanType.Description="Which scanning method to use, always leave this on '\@AMF.H264.ScanType.Progressive\@'."
32
+AMF.H264.ScanType.Progressive="Progressive"
33
+AMF.H264.ScanType.Interlaced="Interlaced"
34
+# Rate Control Properties
35
+AMF.H264.RateControlMethod="Rate Control Method"
36
+AMF.H264.RateControlMethod.Description="What rate control method should be used:\n- '\@AMF.H264.RateControlMethod.CQP\@' assigns fixed I-/P-/B-Frame QP (Quantization Parameter) values,\n- '\@AMF.H264.RateControlMethod.CBR\@' stays at the given Target Bitrate (using Filler Data) (recommended for streaming),\n- '\@AMF.H264.RateControlMethod.VBR\@' stays below the given Peak Bitrate,\n- '\@AMF.H264.RateControlMethod.VBR_LAT\@' stays close to the Target Bitrate if GPU latency and load allow for it, otherwise will use higher bitrate (recommended for recording)."
37
+AMF.H264.RateControlMethod.CQP="Constant QP (CQP)"
38
+AMF.H264.RateControlMethod.CBR="Constant Bitrate (CBR)"
39
+AMF.H264.RateControlMethod.VBR.Peak="Variable Bitrate (Peak Constrained) (VBR)"
40
+AMF.H264.RateControlMethod.VBR.Latency="Variable Bitrate (Latency Constrained) (VBR_LAT)"
41
+AMF.H264.Bitrate.Target="Target Bitrate"
42
+AMF.H264.Bitrate.Target.Description="Bitrate to attempt to achieve in the overall sequence."
43
+AMF.H264.Bitrate.Peak="Peak Bitrate"
44
+AMF.H264.Bitrate.Peak.Description="Bitrate to attempt to maximally peak to in the overall sequence."
45
+AMF.H264.QP.Minimum="Minimum QP"
46
+AMF.H264.QP.Minimum.Description="Lowest QP (Quantization Parameter) value to use in a frame."
47
+AMF.H264.QP.Maximum="Maximum QP"
48
+AMF.H264.QP.Maximum.Description="Highest QP (Quantization Parameter) value to use in a frame."
49
+AMF.H264.QP.IFrame="I-Frame QP"
50
+AMF.H264.QP.IFrame.Description="Fixed QP (Quantization Parameter) value to use for I-Frames.\nI-Frame QP should be at or higher than P- and B-Frame QP."
51
+AMF.H264.QP.PFrame="P-Frame QP"
52
+AMF.H264.QP.PFrame.Description="Fixed QP (Quantization Parameter) value to use for P-Frames.\nP-Frame QP should be at or higher than B-Frame QP."
53
+AMF.H264.QP.BFrame="B-Frame QP"
54
+AMF.H264.QP.BFrame.Description="Fixed QP (Quantization Parameter) value to use for B-Frames."
55
+AMF.H264.QP.BPictureDelta="B-Picture Delta QP"
56
+AMF.H264.QP.BPictureDelta.Description="Delta QP (Quantization Parameter) value to the last non-reference B-Picture."
57
+AMF.H264.QP.ReferenceBPictureDelta="Reference B-Picture Delta QP"
58
+AMF.H264.QP.ReferenceBPictureDelta.Description="Delta QP (Quantization Parameter) value to the last reference B-Picture."
59
+AMF.H264.VBVBuffer="VBV Buffer"
60
+AMF.H264.VBVBuffer.Description="What method should be used to determine the VBV Buffer Size:\n- '\@AMF.Util.Automatic\@' calculates the size using a strictness constraint,\n- '\@AMF.Util.Manual\@' allows the user to control the size.\nVBV (Video Buffering Verifier) Buffer is used by certain Rate Control Methods to keep the overall bitrate within the given constraints."
61
+AMF.H264.VBVBuffer.Strictness="VBV Buffer Strictness"
62
+AMF.H264.VBVBuffer.Strictness.Description="How strict the VBV Buffer is, with 100% being almost exactly the targetted Bitrate and 0% being unrestricted."
63
+AMF.H264.VBVBuffer.Size="VBV Buffer Size"
64
+AMF.H264.VBVBuffer.Size.Description="The size of the VBV Buffer which is used for Bitrate control in a sequence.\nA small size results in an almost perfect bitrate match but has a larger performance impact."
65
+AMF.H264.VBVBuffer.Fullness="VBV Buffer Fullness"
66
+AMF.H264.VBVBuffer.Fullness.Description="How full the VBV Buffer initially is, will only affect the initial sequence of encoding."
67
+AMF.H264.FillerData="Filler Data"
68
+AMF.H264.FillerData.Description="Enabling Filler Data allows the encoder to keep at least the Target Bitrate by filling up the remaining space in a sequence with empty information."
69
+AMF.H264.FrameSkipping="Frame Skipping"
70
+AMF.H264.FrameSkipping.Description="Frame Skipping allows the encoder to drop frames in order to meet Target Bitrate requirements.\nWhen the encoder drops a frame it instead insert a repeat-last-frame NAL into the stream.\nCan help with very low Target Bitrates."
71
+AMF.H264.EnforceHRDCompatibility="Enforce HRD Compatibility"
72
+AMF.H264.EnforceHRDCompatibility.Description="Enforce Hypothetical Reference Decoder restrictions which limit the maximum QP value change within a frame.\nNot recommended for recording or streaming and should only be used for targeting very old devices that only have reference software decoders."
73
+AMF.H264.MaximumAccessUnitSize="Maximum Access Unit Size"
74
+AMF.H264.MaximumAccessUnitSize.Description="Largest Size of an Access Unit for a NAL. A value of 0 allows the encoder to pick the best one."
75
+# Picture Control Properties
76
+AMF.H264.KeyframeInterval="Keyframe Interval"
77
+AMF.H264.KeyframeInterval.Description="Defines the distance between Keyframes in seconds. Also controls GOP-sequence size."
78
+AMF.H264.IDRPeriod="IDR Period"
79
+AMF.H264.IDRPeriod.Description="Defines the distance between Instantaneous Decoding Refreshes (IDR) in frames. Also controls GOP-sequence size."
80
+AMF.H264.HeaderInsertionSpacing="Header Insertion Spacing"
81
+AMF.H264.HeaderInsertionSpacing.Description="How many frames should be between NAL headers. It is not recommended to change this from 0 (automatic)."
82
+AMF.H264.BPicture.Pattern="B-Picture Pattern"
83
+AMF.H264.BPicture.Pattern.Description="How many B-Pictures should be allowed for encoding, has a positive impact on quality and negative impact on performance.\nSupported by 2nd and 3rd Generation VCE cards."
84
+AMF.H264.BPicture.Reference="B-Picture Reference"
85
+AMF.H264.BPicture.Reference.Description="Allow B-Pictures to reference other B-Pictures additionally to P- and I-Frames.\nImproves quality slightly but lowers encoding performance."
86
+AMF.H264.DeblockingFilter="Deblocking Filter"
87
+AMF.H264.DeblockingFilter.Description="Sets the flag that the decoder is allowed to use a Deblocking Filter for the encoded stream."
88
+AMF.H264.SlicesPerFrame="Slices Per Frame"
89
+AMF.H264.SlicesPerFrame.Description="How many I-Frame slices should be stored with each frame?\nA value of zero lets the encoder decide on the fly.\nIntra-Refresh encoding is used for faster playback and seeking."
90
+AMF.H264.IntraRefreshNumMBsPerSlot="Intra-Refresh Number of Macroblocks Per Slot"
91
+AMF.H264.IntraRefreshNumMBsPerSlot.Description="How many Macroblocks should be stored in each slot?\nA value of zero lets the encoder decide on the fly.\nIntra-Refresh encoding is used for faster playback and seeking."
92
+# Miscellaneous Properties
93
+AMF.H264.MotionEstimation="Motion Estimation"
94
+AMF.H264.MotionEstimation.Description="Motion Estimation allows the encoder to reduce needed bitrate by estimating where a pixel went."
95
+AMF.H264.MotionEstimation.None="None"
96
+AMF.H264.MotionEstimation.Half="Half-Pixel"
97
+AMF.H264.MotionEstimation.Quarter="Quarter-Pixel"
98
+AMF.H264.MotionEstimation.Both="Half- & Quarter-Pixel"
99
+# System Properties
100
+AMF.H264.Device="Device"
101
+AMF.H264.Device.Description="Which Device to use for encoding.\nRequires Memory Type to not be set to 'Host'."
102
+AMF.H264.UseOpenCL="Use OpenCL"
103
+AMF.H264.UseOpenCL.Description="Should the Encoder use OpenCL to submit the individual frames?"
104
+AMF.H264.View="View Mode"
105
+AMF.H264.View.Description="What properties should be shown?\nUsing '\@AMF.H264.View.Master\@' will disqualify you from receiving support."
106
+AMF.H264.View.Basic="Basic"
107
+AMF.H264.View.Advanced="Advanced"
108
+AMF.H264.View.Expert="Expert"
109
+AMF.H264.View.Master="Master"
110
+AMF.H264.UnlockProperties="Unlock Properties"
111
+AMF.H264.UnlockProperties.Description="Unlock certain properties to their full range instead of limiting them to a partial range."
112
+AMF.H264.Debug="Debug"
113
+AMF.H264.Debug.Description="Enable additional debug logging, should be active whenever you need support with this encoder."
114
+# Utility
115
+AMF.Util.Default="Default"
116
+AMF.Util.Automatic="Automatic"
117
+AMF.Util.Manual="Manual"
118
+AMF.Util.Toggle.Disabled="Disabled"
119
+AMF.Util.Toggle.Enabled="Enabled"
120
\ No newline at end of file
121
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/es-ES.ini
Added
111
1
2
+AMF.H264.Preset="Preajuste"
3
+AMF.H264.Preset.ResetToDefaults="Restablecer por defecto"
4
+AMF.H264.Preset.Recording="Grabación"
5
+AMF.H264.Preset.HighQuality="Alta Calidad"
6
+AMF.H264.Preset.Indistinguishable="Indistinguible"
7
+AMF.H264.Preset.Lossless="Sin pérdidas"
8
+AMF.H264.Preset.Twitch="Twitch"
9
+AMF.H264.Preset.YouTube="YouTube"
10
+AMF.H264.Usage="Uso"
11
+AMF.H264.Usage.Description="A que uso debe ajustarse AMF:\n- 'Codificación' es para uso generalizado (recomendado),\n- 'Ultra Baja Latencia' es para codificación de muy baja latencia,\n- 'Baja Latencia' es similar a la anterior con algo mas de latencia.\nLas emisiones en directo solo soportan 'Codificación', todos los valores pueden ser usados para grabar."
12
+AMF.H264.Usage.Transcoding="Codificación"
13
+AMF.H264.Usage.UltraLowLatency="Latencia ultra baja"
14
+AMF.H264.Usage.LowLatency="Latencia baja"
15
+AMF.H264.QualityPreset="Calidad del perfil"
16
+AMF.H264.QualityPreset.Description="Que calidad del perfil de AMD se debe intentar conseguir:\n- 'Velocidad' es la mas rápida pero la que peor calidad obtiene,\n- 'Equilibrado' está entre 'Velocidad' y 'Calidad' ofreciendo un balance entre los dos,\n- 'Calidad' ofrece la mejor calidad posible para una determinada tasa de bits."
17
+AMF.H264.QualityPreset.Speed="Velocidad"
18
+AMF.H264.QualityPreset.Balanced="Equilibrado"
19
+AMF.H264.QualityPreset.Quality="Calidad"
20
+AMF.H264.Profile="Perfil del Códec"
21
+AMF.H264.Profile.Description="Que perfil H.264 a utilizar para la codificación:\n- 'Baseline' tiene el mayor soporte en las plataformas,\n- 'Main' es compatible con dispositivos algo mas anticuados (recomendado si la emisión va dirigida a dispositivos móviles),\n- 'High' es compatible con los dispositivos actuales (recomendado)."
22
+AMF.H264.ProfileLevel="Nivel del Perfil"
23
+AMF.H264.ProfileLevel.Description="Nivel de perfil H.264 a utilizar para la codificación:\n- 'Automático' calcula el mejor nivel de perfil para cierta velocidad y tamaño de fotogramas,\n- '4.1' soporta 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS\n- '4.2' soporta 1920x1080 60FPS, 1280x720 120FPS, 960x540 172FPS\n- '5.0' soporta 1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS\n- '5.1' soporta 3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS\n- '5.2' soporta 3840x2160 60FPS, 1920x1080 172FPS, 1280x720 172FPS, 960x540 172FPS"
24
+AMF.H264.MaximumLTRFrames="Fotogramas LTR máximos"
25
+AMF.H264.MaximumLTRFrames.Description="Fotogramas de referencia a largo plazo (LTR) son una caracteristica que permite al codificador marcar ciertos frames en una secuencia como referentes.\nEsto puede tener un efecto positivo en la calidad cuando los B-Pictures no estan soportados.\nLos fotogramas LTR no pueden ser usados con B-Pictures y el codificador deshabilitará B-Pictures si se usa."
26
+AMF.H264.ScanType="Tipo de escaneo"
27
+AMF.H264.ScanType.Description="Que método de escaneo usar, dejar siempre en 'Progresivo'."
28
+AMF.H264.ScanType.Progressive="Progresivo"
29
+AMF.H264.ScanType.Interlaced="Entrelazado"
30
+AMF.H264.RateControlMethod="Método de control del flujo"
31
+AMF.H264.RateControlMethod.Description="Qué método de control de flujo debe ser usado:\n- '\@AMF.H264.RateControlMethod.CQP\@' asigna valores fijos de QP en I-/P-/B-Frames (Parámetro de cuantización),\n- '\@AMF.H264.RateControlMethod.CBR\@' se mantiene en la tasa de bits objetivo (usando Datos de relleno) (recomendado para emisiones en directo),\n- '\@AMF.H264.RateControlMethod.VBR\@' se mantiene por debajo de un pico de tasa de bits,\n- '\@AMF.H264.RateControlMethod.VBR_LAT\@' se mantiene cerca de la tasa de bits deseada si la latencia y carga de la GPU lo permite, si no se aumentará la tasa de bits (recomendado para grabaciones)."
32
+AMF.H264.RateControlMethod.CQP="QP constante (CQP)"
33
+AMF.H264.RateControlMethod.CBR="Flujo constante (CBR)"
34
+AMF.H264.RateControlMethod.VBR.Peak="Flujo variable (pico restringido) (VBR)"
35
+AMF.H264.RateControlMethod.VBR.Latency="Flujo variable (latencia restringida) (VBR_LAT)"
36
+AMF.H264.Bitrate.Target="Tasa de bits deseada"
37
+AMF.H264.Bitrate.Target.Description="Tasa de bits a intentar alcanzar en la secuencia general."
38
+AMF.H264.Bitrate.Peak="Pico de tasa de bits"
39
+AMF.H264.Bitrate.Peak.Description="Tasa de bits a intentar alcanzar como pico máximo en la secuencia general."
40
+AMF.H264.QP.Minimum="QP Mínimo"
41
+AMF.H264.QP.Minimum.Description="Valor mínimo de QP (parámetro de cuantización) a utilizar en un fotograma."
42
+AMF.H264.QP.Maximum="QP Máximo"
43
+AMF.H264.QP.Maximum.Description="Valor máximo de QP (parámetro de cuantización) a utilizar en un fotograma."
44
+AMF.H264.QP.IFrame="I-Frame QP"
45
+AMF.H264.QP.IFrame.Description="Valor de QP Fijo (parámetro de cuantización) a usar por I-Frames.\n-El valor QP de un I-Frame debe ser igual o superior al valor QP de P- y B-Frames."
46
+AMF.H264.QP.PFrame="P-Frame QP"
47
+AMF.H264.QP.PFrame.Description="Valor de QP Fijo (parámetro de cuantización) a usar por P-Frames.\n-El valor QP de un P-Frame debe ser igual o superior al valor QP de un B-Frame."
48
+AMF.H264.QP.BFrame="B-Frame QP"
49
+AMF.H264.QP.BFrame.Description="Valor de QP Fijo (parámetro de cuantización) a usar por B-Frames."
50
+AMF.H264.QP.BPictureDelta="QP Delta en B-Pictures"
51
+AMF.H264.QP.BPictureDelta.Description="QP Delta del último B-Picture que no es de referencia."
52
+AMF.H264.QP.ReferenceBPictureDelta="QP Delta en B-Pictures de referencia"
53
+AMF.H264.QP.ReferenceBPictureDelta.Description="QP Delta del último B-Picture de referencia."
54
+AMF.H264.VBVBuffer="Buffer VBV"
55
+AMF.H264.VBVBuffer.Description="Que método se debe usar para determinar el tamaño del buffer VBV:\n- 'Automático' calcula el tamaño usando una restricción estricta,\n- 'Manual' permite al usuario controlar el tamaño.\nEl buffer VBV (Verificador de Buffering de Video) es usado por ciertos métodos de control del flujo para mantener la tasa de bits dentro de los parámetros establecidos."
56
+AMF.H264.VBVBuffer.Strictness="Estricticidad del Buffer VBV"
57
+AMF.H264.VBVBuffer.Strictness.Description="Como de estricto es el buffer VBV, con 100% siendo casi exactamente la tasa de bits deseada y 0% siendo sin restricción."
58
+AMF.H264.VBVBuffer.Size="Tamaño de buffer VBV"
59
+AMF.H264.VBVBuffer.Size.Description="El tamaño del Buffer VBV que es usado para el control de la tasa de bits en una secuencia.\nUn tamaño pequeño ofrece una tasa de bits con una coincidencia casi perfecta pero tiene un gran impacto en el rendimiento."
60
+AMF.H264.VBVBuffer.Fullness="Amplitud del Buffer VBV"
61
+AMF.H264.VBVBuffer.Fullness.Description="Como de lleno es el buffer VMV inicialmente, solo afectará a la secuencia inicial de la codificación."
62
+AMF.H264.FillerData="Datos de relleno"
63
+AMF.H264.FillerData.Description="Habilitando Datos de relleno se permite al codificador mantener por lo menos la tasa de bits deseada rellenando el espacio que falta con información sin valor."
64
+AMF.H264.FrameSkipping="Omisión de fotogramas"
65
+AMF.H264.FrameSkipping.Description="Omisión de fotogramas permite al codificador saltar fotogramas para cumplir con el requerimiento de la tasa de bits objetivo.\nCuando el codificador salta un fotograma insertará un NAL que repetirá el ultimo fotograma codificado en el stream.\nPuede ayudar con tasa de bits objetivo muy bajas."
66
+AMF.H264.EnforceHRDCompatibility="Forzar compatibilidad con HRD"
67
+AMF.H264.EnforceHRDCompatibility.Description="Forzar las restricciones del decodificador hipotético de referencia que limitan el cambio de valor máximo de QP dentro de un fotograma.\nNo recomendado para grabación o emisión en directo y solo se debe usar cuando el objetivo son dispositivos antiguos que solo tienen decodificadores de referencia por software."
68
+AMF.H264.MaximumAccessUnitSize="Tamaño máximo de la unidad de acceso"
69
+AMF.H264.MaximumAccessUnitSize.Description="Mayor tamaño de una unidad de acceso para una NAL. Un valor de 0 permite al codificador elegir el mejor."
70
+AMF.H264.KeyframeInterval="Intervalo de fotogramas clave"
71
+AMF.H264.KeyframeInterval.Description="Cuantos segundos deben haber entre fotogramas que no se pueden descartar.\nTambién controla el tamaño de la secuencia (GOP)."
72
+AMF.H264.IDRPeriod="Periodo IDR"
73
+AMF.H264.IDRPeriod.Description="Define la distancia entre Instantaneous Decoding Refreshes (IDR) en Fotogramas. También controla el tamaño de la secuencia del GOP."
74
+AMF.H264.HeaderInsertionSpacing="Espaciado de inserción de cabeceras (Frames)"
75
+AMF.H264.HeaderInsertionSpacing.Description="Cuantos fotogramas deben haber entre cabeceras NAL. No se recomienda cambiar de 0 (automatico)."
76
+AMF.H264.BPicture.Pattern="Patron de B-Pictures"
77
+AMF.H264.BPicture.Pattern.Description="Cuantas B-Pictures deben ser permitidos en la codificación, tiene un impacto positivo en la calidad y negativo en rendimiento.\nSoportado por la segunda y tercera generación de VCE."
78
+AMF.H264.BPicture.Reference="B-Pictures de referencia"
79
+AMF.H264.BPicture.Reference.Description="Permitir B-Pictures referenciar otras B-Pictures adicionalmente a P- y I-Frames.\nGran impacto en el rendimiento, poca mejora de calidad."
80
+AMF.H264.DeblockingFilter="Filtro de eliminación de bloques"
81
+AMF.H264.DeblockingFilter.Description="Establece el indicador de que el decodificador está permitido a usar el Filtro de eliminación de bloques para el stream codificado."
82
+AMF.H264.SlicesPerFrame="Porciones por fotograma"
83
+AMF.H264.SlicesPerFrame.Description="Cuantas porciones I-Frame deben ser almacenados en cada fotograma?\nUn valor de 0 permite al codificador decidir al vuelo.\nLa codificación Intra-Refresh es usada para una reproducción y exploración mas fluida."
84
+AMF.H264.IntraRefreshNumMBsPerSlot="Numero de macrobloques intra-refresh por Slot"
85
+AMF.H264.IntraRefreshNumMBsPerSlot.Description="Cuantos macrobloques deben ser almacenados en cada slot?\nUn valor de 0 permite al codificador decidir al vuelo.\nLa codificación Intra-Refresh es usada para una reproducción y exploración mas fluida."
86
+AMF.H264.MotionEstimation="Estimación de movimiento"
87
+AMF.H264.MotionEstimation.Description="Estimación de movimiento permite al codificador reducir el flujo de datos necesario estimando de donde vienen los pixeles."
88
+AMF.H264.MotionEstimation.None="Ninguno"
89
+AMF.H264.MotionEstimation.Half="Mitad de Pixel"
90
+AMF.H264.MotionEstimation.Quarter="Cuarto de Pixel"
91
+AMF.H264.MotionEstimation.Both="Mitad y cuarto de Pixel"
92
+AMF.H264.Device="Dispositivo"
93
+AMF.H264.Device.Description="Que dispositivo usar para codificar.\nRequiere que el tipo de memoria seleccionado no sea 'Host'."
94
+AMF.H264.UseOpenCL="Usar OpenCL"
95
+AMF.H264.UseOpenCL.Description="Debe el codificador usar OpenCL para entregar los fotogramas individuales?"
96
+AMF.H264.View="Modo de Vista"
97
+AMF.H264.View.Description="Que propiedades deben ser visibles. No recibirás soporte si usas el modo de vista 'Experto' o 'Maestro'."
98
+AMF.H264.View.Basic="Básico"
99
+AMF.H264.View.Advanced="Avanzado"
100
+AMF.H264.View.Expert="Experto"
101
+AMF.H264.View.Master="Maestro"
102
+AMF.H264.UnlockProperties="Desbloquear propiedades"
103
+AMF.H264.UnlockProperties.Description="Desbloquea ciertas propiedades a su maxima capacidad en lugar de limitarlas de forma parcial."
104
+AMF.H264.Debug="Depurar"
105
+AMF.H264.Debug.Description="Habilita el registro de información de depuración adicional, debe ser activado cuando necesites ayuda con este codificador."
106
+AMF.Util.Default="Por defecto"
107
+AMF.Util.Automatic="Automático"
108
+AMF.Util.Manual="Manual"
109
+AMF.Util.Toggle.Disabled="Deshabilitado"
110
+AMF.Util.Toggle.Enabled="Habilitado"
111
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/eu-ES.ini
Added
79
1
2
+AMF.H264.Preset="Aurrezarrita"
3
+AMF.H264.Preset.ResetToDefaults="Berrezarri balio lehenetsiak"
4
+AMF.H264.Preset.Recording="Grabatzen"
5
+AMF.H264.Preset.HighQuality="Kalitate handia"
6
+AMF.H264.Preset.Indistinguishable="Sumaezina"
7
+AMF.H264.Preset.Lossless="Galerarik gabe"
8
+AMF.H264.Preset.Twitch="Twitch"
9
+AMF.H264.Preset.YouTube="YouTube"
10
+AMF.H264.Usage="Erabilpena"
11
+AMF.H264.Usage.Description="AMFrentzat zer erabilerak aukeratu behar dira:\n- 'Transcoding' oro har proposatzen da transmisiorako (gomendatua),\n- 'Ultra Low Latency' latentzia oso baxuko kodetzerako,\n- 'Low Latency' aurrekoaren antzekoa da latentzia apur bat handiagoarekin.\nStreaming bakarrik onartzen du 'Transcoding', gainerako balio guztiak erabili daitezke grabaziorako."
12
+AMF.H264.Usage.Transcoding="Kodeketa"
13
+AMF.H264.Usage.UltraLowLatency="Latentzia oso txikia"
14
+AMF.H264.Usage.LowLatency="Latentzia txikia"
15
+AMF.H264.QualityPreset="Aurrezarritako kalitatea"
16
+AMF.H264.QualityPreset.Speed="Abiadura"
17
+AMF.H264.QualityPreset.Balanced="Orekatua"
18
+AMF.H264.QualityPreset.Quality="Kalitatea"
19
+AMF.H264.Profile="Profila"
20
+AMF.H264.ProfileLevel="Profilaren maila"
21
+AMF.H264.ProfileLevel.Description="H.264 profilaren zein maila erabili behar da kodetzeko:\n- 'Automatic' automatikoki kalkulatzen du emandako abiadura eta fotogramen tamainarako egokiena,\n- '4.1'-ek onartzen du 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS\n- '4.2'-k onartzen du 1920x1080 60FPS, 1280x720 120FPS\n- '5.0'-k onartzen du 1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS\n- '5.1'-k onartzen du 3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS\n- '5.2'-k onartzen du 3840x2160 60FPS, 1920x1080 172FPS, 1280x720 172FPS, 960x540 172FPS"
22
+AMF.H264.MaximumLTRFrames="Gehienezko LTR fotogramak"
23
+AMF.H264.MaximumLTRFrames.Description="Long Term Reference (LTR) Fotogramak aukera ematen dio kodegailuari sekuentzia baten hainbat fotograma erreferente moduan markatzeko.\nHonek kalitatean eragin positiboa izan dezake B-Pictures onartzen ez direnean.\nLTR Fotogramak ezin dira B-Pictures-ekin erabili eta kodegailuak B-Pictures-ak desgaituko ditu hauek erabiltzean."
24
+AMF.H264.ScanType="Eskaneatze mota"
25
+AMF.H264.ScanType.Progressive="Progresiboa"
26
+AMF.H264.ScanType.Interlaced="Gurutzelarkatua"
27
+AMF.H264.RateControlMethod="Emaria kontrolatzeko metodoa"
28
+AMF.H264.RateControlMethod.CQP="Konstantea QP (CQP)"
29
+AMF.H264.RateControlMethod.CBR="Bit emari konstantea (CBR)"
30
+AMF.H264.RateControlMethod.VBR.Peak="Bit emari aldakorra (gailur mugatuak) (VBR)"
31
+AMF.H264.RateControlMethod.VBR.Latency="Bit emari aldakorra (Latentzia mugatua) (VBR_LAT)"
32
+AMF.H264.Bitrate.Target="Bit emari helburua"
33
+AMF.H264.Bitrate.Peak="Gehienezko gailurra"
34
+AMF.H264.QP.Minimum="Gutxieneko QP"
35
+AMF.H264.QP.Maximum="Gehienezko QP"
36
+AMF.H264.QP.IFrame="I-Frame QP"
37
+AMF.H264.QP.PFrame="P-Frame QP"
38
+AMF.H264.QP.BFrame="B-Frame QP"
39
+AMF.H264.QP.BPictureDelta="B-Picture Delta QP"
40
+AMF.H264.QP.ReferenceBPictureDelta="B-Picture Delta QP erreferentzia"
41
+AMF.H264.VBVBuffer="VBV bufferra"
42
+AMF.H264.VBVBuffer.Strictness="VBV bufferraren zorroztasuna"
43
+AMF.H264.VBVBuffer.Size="VBV bufferraren tamaina"
44
+AMF.H264.VBVBuffer.Fullness="VBV bufferraren betetasuna"
45
+AMF.H264.FillerData="Datu betegarria"
46
+AMF.H264.FrameSkipping="Fotogramen saltoa"
47
+AMF.H264.EnforceHRDCompatibility="Behartu HRD bateragarritasuna"
48
+AMF.H264.MaximumAccessUnitSize="Sarbide unitatearen gehienezko tamaina"
49
+AMF.H264.KeyframeInterval="Gako fotogramen tartea"
50
+AMF.H264.IDRPeriod="IDR periodoa"
51
+AMF.H264.HeaderInsertionSpacing="Goiburuak txertatzeko tartea"
52
+AMF.H264.BPicture.Pattern="B-Picture eredua"
53
+AMF.H264.BPicture.Reference="B-Picture erreferentzia"
54
+AMF.H264.DeblockingFilter="Desblokeoko iragazkia"
55
+AMF.H264.SlicesPerFrame="Zatiak fotogramako"
56
+AMF.H264.IntraRefreshNumMBsPerSlot="Makroblokeen barne freskatze kopura erreteneko"
57
+AMF.H264.MotionEstimation="Mugimenduaren estimazioa"
58
+AMF.H264.MotionEstimation.None="Ezer ez"
59
+AMF.H264.MotionEstimation.Half="Pixel erdia"
60
+AMF.H264.MotionEstimation.Quarter="Pixel laurdena"
61
+AMF.H264.MotionEstimation.Both="Pixel erdia eta laurdena"
62
+AMF.H264.Device="Gailua"
63
+AMF.H264.Device.Description="Zein gailu erabili kodeketarako.\nHautatutako memoria mota ez du 'Host' izan behar."
64
+AMF.H264.UseOpenCL="Erabili OpenCL"
65
+AMF.H264.UseOpenCL.Description="Kodifikagailuak OpenCL erabili behar du banakako fotogramak bidaltzeko?"
66
+AMF.H264.View="Ikuspegia"
67
+AMF.H264.View.Description="Zein propietate ikusi behar dira. Ez duzu laguntzarik jasoko 'Aditu' edo 'Maisu' ikuspegian."
68
+AMF.H264.View.Basic="Oinarrizkoa"
69
+AMF.H264.View.Advanced="Aurreratua"
70
+AMF.H264.View.Expert="Aditu"
71
+AMF.H264.View.Master="Maixu"
72
+AMF.H264.UnlockProperties="Desblokeatu propietateak"
73
+AMF.H264.Debug="Garbiketa"
74
+AMF.Util.Default="Lehenetsia"
75
+AMF.Util.Automatic="Automatikoa"
76
+AMF.Util.Manual="Eskuz"
77
+AMF.Util.Toggle.Disabled="Ezgaituta"
78
+AMF.Util.Toggle.Enabled="Gaituta"
79
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/fi-FI.ini
Added
59
1
2
+AMF.H264.Preset="Esiasetus"
3
+AMF.H264.Preset.ResetToDefaults="Palauta oletukset"
4
+AMF.H264.Preset.Recording="Tallennus"
5
+AMF.H264.Preset.HighQuality="Korkea laatu"
6
+AMF.H264.Preset.Indistinguishable="Erottamaton"
7
+AMF.H264.Preset.Lossless="Häviötön"
8
+AMF.H264.Preset.Twitch="Twitch"
9
+AMF.H264.Preset.YouTube="YouTube"
10
+AMF.H264.Usage="Käyttö"
11
+AMF.H264.Usage.Transcoding="Transkoodaus"
12
+AMF.H264.Usage.UltraLowLatency="Erittäin alhainen latenssi"
13
+AMF.H264.Usage.LowLatency="Alhainen latenssi"
14
+AMF.H264.QualityPreset="Laatuasetus"
15
+AMF.H264.QualityPreset.Speed="Nopeus"
16
+AMF.H264.QualityPreset.Balanced="Tasapainotettu"
17
+AMF.H264.QualityPreset.Quality="Laatu"
18
+AMF.H264.Profile="Profiili"
19
+AMF.H264.ProfileLevel="Profiilin taso"
20
+AMF.H264.ScanType="Skannaustyyppi"
21
+AMF.H264.ScanType.Progressive="Progressiivinen"
22
+AMF.H264.ScanType.Interlaced="Lomitettu"
23
+AMF.H264.RateControlMethod="Rate Control -tapa"
24
+AMF.H264.RateControlMethod.CQP="Pysyvä QP (CQP)"
25
+AMF.H264.RateControlMethod.CBR="Jatkuva bitrate (CBR)"
26
+AMF.H264.RateControlMethod.VBR.Peak="Vaihteleva bitrate (Piikkiin sidottu) (VBR)"
27
+AMF.H264.RateControlMethod.VBR.Latency="Vaihteleva bitrate (Latenssiin sidottu) (VBR_LAT)"
28
+AMF.H264.Bitrate.Target="Bitrate-tavoite"
29
+AMF.H264.Bitrate.Peak="Bitrate-piikki"
30
+AMF.H264.QP.Minimum="Minimi QP"
31
+AMF.H264.QP.Maximum="Maksimi QP"
32
+AMF.H264.QP.IFrame="I-Frame QP"
33
+AMF.H264.QP.PFrame="P-Frame QP"
34
+AMF.H264.QP.BFrame="B-Frame QP"
35
+AMF.H264.QP.BPictureDelta="B-Picture Delta QP"
36
+AMF.H264.QP.ReferenceBPictureDelta="Reference B-Picture Delta QP"
37
+AMF.H264.VBVBuffer="VBV-puskuri"
38
+AMF.H264.VBVBuffer.Size="VBV-puskurin koko"
39
+AMF.H264.FillerData="Täyttödata"
40
+AMF.H264.FrameSkipping="Ruudun ohitus"
41
+AMF.H264.EnforceHRDCompatibility="Pakota HRD-yhteensopivuus"
42
+AMF.H264.BPicture.Pattern="B-Picture Pattern"
43
+AMF.H264.BPicture.Reference="B-Picture Reference"
44
+AMF.H264.DeblockingFilter="Deblocking filtteri"
45
+AMF.H264.MotionEstimation="Liikkeen ennakointi"
46
+AMF.H264.MotionEstimation.None="Ei mitään"
47
+AMF.H264.View="Näyttötila"
48
+AMF.H264.View.Basic="Yksinkertainen"
49
+AMF.H264.View.Advanced="Kehittynyt"
50
+AMF.H264.View.Expert="Expertti"
51
+AMF.H264.View.Master="Jumalallinen"
52
+AMF.H264.UnlockProperties="Avaa ominaisuudet"
53
+AMF.H264.Debug="Debug"
54
+AMF.Util.Default="Oletusarvo"
55
+AMF.Util.Automatic="Automaattinen"
56
+AMF.Util.Manual="Manuaalinen"
57
+AMF.Util.Toggle.Disabled="Pois käytöstä"
58
+AMF.Util.Toggle.Enabled="Käytössä"
59
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/fr-FR.ini
Added
84
1
2
+AMF.H264.Preset="Préréglage"
3
+AMF.H264.Preset.ResetToDefaults="Valeurs par défaut"
4
+AMF.H264.Preset.Recording="Enregistrement"
5
+AMF.H264.Preset.HighQuality="Qualité élevée"
6
+AMF.H264.Preset.Indistinguishable="Indifférenciable"
7
+AMF.H264.Preset.Lossless="Sans pertes"
8
+AMF.H264.Preset.Twitch="Twitch"
9
+AMF.H264.Preset.YouTube="YouTube"
10
+AMF.H264.Usage="Mode"
11
+AMF.H264.Usage.Description="Le mode d'optimisation utilisé par AMF :\n- '\@AMF.H264.Usage.Transcoding\@' : utilisation pour du transcodage (réglage recommandé),\n- '\@AMF.H264.Usage.UltraLowLatency\@' : encodage à très faible latence,\n- '\@AMF.H264.Usage.LowLatency\@' : quasiment identique au réglage ci-dessus, avec une latence légèrement plus élevée.\nLe streaming n'est possible qu'en mode '\@AMF.H264.Usage.Transcoding\@', l'enregistrement est possible avec tous les autres modes."
12
+AMF.H264.Usage.Transcoding="Transcodage"
13
+AMF.H264.Usage.UltraLowLatency="Très faible latence"
14
+AMF.H264.Usage.LowLatency="Faible latence"
15
+AMF.H264.QualityPreset="Préréglages de qualité"
16
+AMF.H264.QualityPreset.Description="Le préréglage de qualité qu'AMF doit cibler :\n- \"\@AMF.H264.QualityPreset.Speed\@\" est le plus rapide, au détriment d'une qualité déplorable,\n- \"\@AMF.H264.QualityPreset.Balanced\@\" est un compromis entre \"\@AMF.H264.QualityPreset.Speed\@\" et \"\@AMF.H264.QualityPreset.Quality\@\",\n- \"\@AMF.H264.QualityPreset.Quality\@\" délivre la meilleure qualité pour un débit donné."
17
+AMF.H264.QualityPreset.Speed="Vitesse"
18
+AMF.H264.QualityPreset.Balanced="Equilibré"
19
+AMF.H264.QualityPreset.Quality="Qualité"
20
+AMF.H264.Profile="Profil"
21
+AMF.H264.Profile.Description="Le profil H.264 utilisé pour l'encodage :\n- 'Baseline' est compatible avec la majorité des lecteurs,\n-'Main' est compatible avec les lecteurs d'ancienne génération (recommandé pour les lecteurs mobiles),\n- 'High' est compatible avec la plupart des lecteurs récents (réglage recommandé pour la plupart des cas)."
22
+AMF.H264.ProfileLevel="Niveau de profil"
23
+AMF.H264.ProfileLevel.Description="Quel niveau de profil H.264 utiliser pour l'encodage :\n- \"Automatique\" laisse l'encodeur déterminer le meilleur profil en fonction de la résolution d'image et du nombre d'images par seconde.\n- \"4.1\" supporte les formats suivants : 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS\n- \"4.2\" supporte les formats suivants : 1920x1080 60FPS, 1280x720 120FPS, 960x540 172FPS\n- \"5.0\" supporte les formats suivants : 1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS\n- \"5.1\" supporte les formats suivants : 3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS\n- \"5.2\" supporte les formats suivants : 3840x2160 60FPS, 1920x1080 172FPS, 1280x720 172FPS, 960x540 172FPS"
24
+AMF.H264.MaximumLTRFrames="Maximum de trames LTR"
25
+AMF.H264.MaximumLTRFrames.Description="Les trames LTR (Long Term Reference) sont une fonctionnalité de l'encodeur qui l'autorise à marquer certaines trames comme étant des trames de référence au sein d'une séquence d'images.\nUtiliser cette fonctionnalité peut apporter un gain de qualité dans le cas où les images B (B-Pictures) ne sont pas supportées ou activées.\nLes trames LTR ne sont pas utilisables en conjonction des images B, et l'encodeur désactivera les images B si cette fonctionnalité (trames LTR) est activée."
26
+AMF.H264.ScanType="Balayage"
27
+AMF.H264.ScanType.Description="La méthode de balayage à utiliser (laissez cette valeur sur \"\@AMF.H264.ScanType.Progressive\@\")."
28
+AMF.H264.ScanType.Progressive="Progressif"
29
+AMF.H264.ScanType.Interlaced="Entrelacé"
30
+AMF.H264.RateControlMethod="Méthode de contrôle du débit"
31
+AMF.H264.RateControlMethod.CQP="QP constant (CQP)"
32
+AMF.H264.RateControlMethod.CBR="Débit constant (CBR)"
33
+AMF.H264.RateControlMethod.VBR.Peak="Débit Variable (maximum) (VBR)"
34
+AMF.H264.RateControlMethod.VBR.Latency="Débit Variable (latence limitée) (VBR_LAT)"
35
+AMF.H264.Bitrate.Target="Débit cible"
36
+AMF.H264.Bitrate.Peak="Débit maximal"
37
+AMF.H264.QP.Minimum="QP minimal"
38
+AMF.H264.QP.Maximum="QP maximal"
39
+AMF.H264.QP.IFrame="QP I-Frame"
40
+AMF.H264.QP.PFrame="QP P-Frame"
41
+AMF.H264.QP.BFrame="QP B-Frame"
42
+AMF.H264.QP.BPictureDelta="QP B-Image Delta"
43
+AMF.H264.QP.ReferenceBPictureDelta="Delta QP de l'image B de référence"
44
+AMF.H264.VBVBuffer="Tampon VBV"
45
+AMF.H264.VBVBuffer.Strictness="Respect du tampon VBV"
46
+AMF.H264.VBVBuffer.Size="Taille du tampon VBV"
47
+AMF.H264.VBVBuffer.Fullness="Remplissage du tampon VBV"
48
+AMF.H264.FillerData="Données de remplissage"
49
+AMF.H264.FrameSkipping="Saut d'images"
50
+AMF.H264.EnforceHRDCompatibility="Appliquer la compatibilité avec l'HRD"
51
+AMF.H264.MaximumAccessUnitSize="Taille max. d'une Access Unit"
52
+AMF.H264.KeyframeInterval="Intervalle d'images-clé"
53
+AMF.H264.IDRPeriod="Périodicité des trames IDR"
54
+AMF.H264.HeaderInsertionSpacing="Intervalle d'insertion de l'en-tête de stream"
55
+AMF.H264.BPicture.Pattern="Modèle d'image B"
56
+AMF.H264.BPicture.Reference="Référence d'image B"
57
+AMF.H264.DeblockingFilter="Filtre de dégroupage"
58
+AMF.H264.SlicesPerFrame="Tranches par image"
59
+AMF.H264.MotionEstimation="Estimation de mouvement"
60
+AMF.H264.MotionEstimation.Description="L'estimation du mouvement permet à l'encodeur de réduire le débit en calculant le déplacement des pixels."
61
+AMF.H264.MotionEstimation.None="Aucun"
62
+AMF.H264.MotionEstimation.Half="Demi-pixel"
63
+AMF.H264.MotionEstimation.Quarter="Quart de pixel"
64
+AMF.H264.MotionEstimation.Both="Demi-pixel & quart de pixel"
65
+AMF.H264.Device="Périphérique"
66
+AMF.H264.Device.Description="Quel périphérique utiliser pour l'encodage.\n<Seulement dans le cas où \"Type de mémoire\" n'est pas réglé sur \"Hôte\"."
67
+AMF.H264.UseOpenCL="OpenCL"
68
+AMF.H264.UseOpenCL.Description="L'encodeur doit-il utiliser OpenCL pour transmettre chaque image ?"
69
+AMF.H264.View="Mode de visualisation"
70
+AMF.H264.View.Description="Quels paramètres afficher ?\nChoisir '\@AMF.H264.View.Master\@' est réservé aux utilisateurs avancés, et vous exclus d'office de toute possibilité d'assistance de la part du développeur."
71
+AMF.H264.View.Basic="Basique"
72
+AMF.H264.View.Advanced="Avancé"
73
+AMF.H264.View.Expert="Expert"
74
+AMF.H264.View.Master="Maître"
75
+AMF.H264.UnlockProperties="Débloquer les propriétés"
76
+AMF.H264.UnlockProperties.Description="Sur certains paramètres, débloque au maximum la plage des valeurs possibles plutôt que de la limiter à une plage partielle."
77
+AMF.H264.Debug="Débogage"
78
+AMF.H264.Debug.Description="Activer le débogage avancé dans le fichier journal (dans le cas où vous souhaitez solliciter une assistance auprès du développeur de l'encodeur)."
79
+AMF.Util.Default="Défaut"
80
+AMF.Util.Automatic="Automatique"
81
+AMF.Util.Manual="Manuel"
82
+AMF.Util.Toggle.Disabled="Désactivé"
83
+AMF.Util.Toggle.Enabled="Activé"
84
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/hr-HR.ini
Added
38
1
2
+AMF.H264.Usage.Transcoding="Transkodiranje"
3
+AMF.H264.Usage.UltraLowLatency="Ultra nisko kašnjenje"
4
+AMF.H264.Usage.LowLatency="Nisko kašnjenje"
5
+AMF.H264.QualityPreset="Šablon kvaliteta"
6
+AMF.H264.QualityPreset.Speed="Brzina"
7
+AMF.H264.QualityPreset.Balanced="Izbalansirano"
8
+AMF.H264.QualityPreset.Quality="Kvalitet"
9
+AMF.H264.Profile="Profil"
10
+AMF.H264.ProfileLevel="Nivo profila"
11
+AMF.H264.ScanType="Vrsta skeniranja"
12
+AMF.H264.ScanType.Progressive="Progresivno"
13
+AMF.H264.ScanType.Interlaced="Isprekidano"
14
+AMF.H264.RateControlMethod="Metoda kontrole protoka"
15
+AMF.H264.RateControlMethod.CQP="Konstantan kvalitet (CQP)"
16
+AMF.H264.RateControlMethod.CBR="Konstantan protok (CBR)"
17
+AMF.H264.RateControlMethod.VBR.Peak="Promenjivi protok (sa gornjom granicom) (VBR)"
18
+AMF.H264.RateControlMethod.VBR.Latency="Promenjivi protok (sa granicom kašnjenja) (VBR_LAT)"
19
+AMF.H264.Bitrate.Target="Ciljani protok"
20
+AMF.H264.Bitrate.Peak="Granica protoka"
21
+AMF.H264.QP.Minimum="Minimalni QP"
22
+AMF.H264.QP.Maximum="Maksimalni QP"
23
+AMF.H264.QP.IFrame="I-Frejm QP"
24
+AMF.H264.QP.PFrame="P-Frejm QP"
25
+AMF.H264.QP.BFrame="B-Frejm QP"
26
+AMF.H264.QP.BPictureDelta="B-Promena slike QP"
27
+AMF.H264.QP.ReferenceBPictureDelta="Referenca B-Promena slike QP"
28
+AMF.H264.FillerData="Data za popunjavanje"
29
+AMF.H264.FrameSkipping="Preskakanje frejmova"
30
+AMF.H264.EnforceHRDCompatibility="Prisilna HRD kompatibilnost"
31
+AMF.H264.BPicture.Pattern="B-Šablonska slika"
32
+AMF.H264.BPicture.Reference="B-Referentna slika"
33
+AMF.H264.DeblockingFilter="Odblokirajući filter"
34
+AMF.Util.Default="Podrazumevano"
35
+AMF.Util.Automatic="Automatski"
36
+AMF.Util.Toggle.Disabled="Onemogućeno"
37
+AMF.Util.Toggle.Enabled="Omogućeno"
38
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/hu-HU.ini
Added
82
1
2
+AMF.H264.Preset="Készlet"
3
+AMF.H264.Preset.ResetToDefaults="Alapértelmezett beállítások visszaállítása"
4
+AMF.H264.Preset.Recording="Felvétel"
5
+AMF.H264.Preset.HighQuality="Kiváló minőség"
6
+AMF.H264.Preset.Indistinguishable="Megkülönböztethetetlen"
7
+AMF.H264.Preset.Lossless="Veszteségmentes"
8
+AMF.H264.Preset.Twitch="Twitch"
9
+AMF.H264.Preset.YouTube="YouTube"
10
+AMF.H264.Usage="Használat"
11
+AMF.H264.Usage.Transcoding="Transzkódolás"
12
+AMF.H264.Usage.UltraLowLatency="Nagyon alacsony késleltesésű"
13
+AMF.H264.Usage.LowLatency="Alacsony késleltetésű"
14
+AMF.H264.QualityPreset="Minőségi profil"
15
+AMF.H264.QualityPreset.Speed="Gyors"
16
+AMF.H264.QualityPreset.Balanced="Kiegyenlített"
17
+AMF.H264.QualityPreset.Quality="Minőségi"
18
+AMF.H264.Profile="Enkóder profil"
19
+AMF.H264.Profile.Description="Mely H.264 Profilt használja kódoláshoz:\n- 'Baseline' a legnagyobb platform támogatottsággal,\n- 'Main' a régebbi eszközök támogatják (ajánlott ha mobil eszköz tulajdonosokat céloz meg),\n- 'High' a jelenlegi eszközök támogatják (ajánlott)."
20
+AMF.H264.ProfileLevel="Profil szint"
21
+AMF.H264.MaximumLTRFrames="Maximális LTR képkocka"
22
+AMF.H264.ScanType="Rögzítés módja"
23
+AMF.H264.ScanType.Progressive="Progreszív"
24
+AMF.H264.ScanType.Interlaced="Interlaced (Kísérleti)"
25
+AMF.H264.RateControlMethod="Bitráta vezérlés"
26
+AMF.H264.RateControlMethod.CQP="Erőltetett QP (CQP)"
27
+AMF.H264.RateControlMethod.CBR="Konstans bitráta (CBR)"
28
+AMF.H264.RateControlMethod.VBR.Peak="Változó bitráta (Csúcsértéket betartva) (VBR)"
29
+AMF.H264.RateControlMethod.VBR.Latency="Változó bitráta (Késleltetés kényszerítése) (VBR_LAT)"
30
+AMF.H264.Bitrate.Target="Bitráta (Bitben)"
31
+AMF.H264.Bitrate.Target.Description="Bitráta amelyet szeretne elérni a konvertálás során."
32
+AMF.H264.Bitrate.Peak="Csúcs bitráta (Bitben)"
33
+AMF.H264.Bitrate.Peak.Description="Bitráta amelyet maximálisan elérhet a konvertálás során."
34
+AMF.H264.QP.Minimum="Minimum QP"
35
+AMF.H264.QP.Minimum.Description="Legalacsonyabb QP (Quantization Parameter) képkockában használható érték."
36
+AMF.H264.QP.Maximum="Maximum QP"
37
+AMF.H264.QP.Maximum.Description="Legmagasabb QP (Quantization Parameter) képkockában használható érték."
38
+AMF.H264.QP.IFrame="I-Képkocka QP"
39
+AMF.H264.QP.IFrame.Description="Rögzített QP (Quantization Parameter) érték használata az I-Képkockákhoz.\nI-Képkocka QP értéknek nagyobbnak kell lennie a P- és B-Képkocka QP értéknél."
40
+AMF.H264.QP.PFrame="P-Képkocka QP"
41
+AMF.H264.QP.PFrame.Description="Rögzített QP (Quantization Parameter) érték használata a P-Képkockákhoz.\nIPKépkocka QP értéknek nagyobbnak kell lennie a B-Képkocka QP értéknél."
42
+AMF.H264.QP.BFrame="B-Képkocka QP"
43
+AMF.H264.QP.BFrame.Description="Rögzített QP (Quantization Parameter) érték a B-Képkockák használatához."
44
+AMF.H264.QP.BPictureDelta="B-Képkocka Delta QP"
45
+AMF.H264.QP.BPictureDelta.Description="Delta QP (Quantization Parameter) érték az utolsó nem referencia a B-Képhez."
46
+AMF.H264.QP.ReferenceBPictureDelta="Referencia B-képkocka Delta QP"
47
+AMF.H264.QP.ReferenceBPictureDelta.Description="Delta QP (Quantization Parameter) érték az utolsó referencia a B-Képhez."
48
+AMF.H264.VBVBuffer="VBV puffer"
49
+AMF.H264.VBVBuffer.Strictness="VBV Puffer kötöttség"
50
+AMF.H264.VBVBuffer.Size="VBV pufferméret"
51
+AMF.H264.VBVBuffer.Fullness="VBV puffer telítettség"
52
+AMF.H264.FillerData="Filler adat"
53
+AMF.H264.FrameSkipping="Képkocka kihagyás"
54
+AMF.H264.EnforceHRDCompatibility="HRD Kompatibilitás kényszerítése"
55
+AMF.H264.MaximumAccessUnitSize="Hozzáférési egység maximális mérete"
56
+AMF.H264.KeyframeInterval="Kulcsképkocka időköze"
57
+AMF.H264.IDRPeriod="IDR időköz"
58
+AMF.H264.BPicture.Pattern="B-képkockák száma"
59
+AMF.H264.BPicture.Reference="B-képkocka referencia"
60
+AMF.H264.DeblockingFilter="Deblocking Filter"
61
+AMF.H264.SlicesPerFrame="Szeletelés képkockánként"
62
+AMF.H264.MotionEstimation="Mozgásbecslés"
63
+AMF.H264.MotionEstimation.None="Semmi"
64
+AMF.H264.MotionEstimation.Half="Fél-pixel"
65
+AMF.H264.MotionEstimation.Quarter="Negyed-pixel"
66
+AMF.H264.MotionEstimation.Both="Fél-&negyed-pixel"
67
+AMF.H264.Device="Eszköz"
68
+AMF.H264.UseOpenCL="OpenCL Használata"
69
+AMF.H264.View="Nézet mód"
70
+AMF.H264.View.Basic="Alap"
71
+AMF.H264.View.Advanced="Haladó"
72
+AMF.H264.View.Expert="Szakértő"
73
+AMF.H264.View.Master="Mester"
74
+AMF.H264.UnlockProperties="Tulajdonságok feloldása"
75
+AMF.H264.Debug="Hibakeresés"
76
+AMF.H264.Debug.Description="További hibakeresési naplózás engedélyezése, aktiválja amennyiben tanácsadásra van szüksége a kódolóval kapcsolatban."
77
+AMF.Util.Default="Alapértelmezett"
78
+AMF.Util.Automatic="Automatikus"
79
+AMF.Util.Manual="Manuális"
80
+AMF.Util.Toggle.Disabled="Letiltva"
81
+AMF.Util.Toggle.Enabled="Engedélyezve"
82
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/it-IT.ini
Added
74
1
2
+AMF.H264.Preset="Preset"
3
+AMF.H264.Preset.ResetToDefaults="Ripristina a Predefiniti"
4
+AMF.H264.Preset.Recording="Registrazione"
5
+AMF.H264.Preset.HighQuality="Alta Qualità"
6
+AMF.H264.Preset.Indistinguishable="Indistinguibili"
7
+AMF.H264.Preset.Lossless="Lossless"
8
+AMF.H264.Preset.Twitch="Twitch"
9
+AMF.H264.Preset.YouTube="YouTube"
10
+AMF.H264.Usage="Utilizzo"
11
+AMF.H264.Usage.Transcoding="Transcodifica"
12
+AMF.H264.Usage.UltraLowLatency="Latenza ultra bassa"
13
+AMF.H264.Usage.LowLatency="Bassa latenza"
14
+AMF.H264.QualityPreset="Qualità Preset"
15
+AMF.H264.QualityPreset.Speed="Velocità"
16
+AMF.H264.QualityPreset.Balanced="Bilanciato"
17
+AMF.H264.QualityPreset.Quality="Qualità"
18
+AMF.H264.Profile="Profilo"
19
+AMF.H264.ProfileLevel="Livello profilo"
20
+AMF.H264.ProfileLevel.Description="Quale livello di profilo H.264 usare per l'encoding:\n- 'Automatico' calcola il miglior livello per il dato Frame Rate e Frame Size,\n- '4.1' supporta 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS\n- '4.2' supporta 1920x1080 60FPS, 1280x720 120FPS, 960x540 172FPS\n- '5.0' supporta 1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS\n- '5.1' supporta 3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS\n- '5.2' supporta 3840x2160 60FPS, 1920x1080 172FPS, 1280x720 172FPS, 960x540 172FPS"
21
+AMF.H264.MaximumLTRFrames="Fotogrammi LTR Massimi"
22
+AMF.H264.ScanType="Tipo di scansione"
23
+AMF.H264.ScanType.Progressive="Progressivo"
24
+AMF.H264.ScanType.Interlaced="Interlacciato"
25
+AMF.H264.RateControlMethod="Metodo di controllo della frequenza"
26
+AMF.H264.RateControlMethod.CQP="QP Costante (QPC)"
27
+AMF.H264.RateControlMethod.CBR="Bitrate costante (CBR)"
28
+AMF.H264.RateControlMethod.VBR.Peak="Bitrate Variabile (Peak Constrained) (VBR)"
29
+AMF.H264.RateControlMethod.VBR.Latency="Bitrate variabile (latenza vincolata) (VBR_LAT)"
30
+AMF.H264.Bitrate.Target="Bitrate di destinazione"
31
+AMF.H264.Bitrate.Peak="Picco Bitrate"
32
+AMF.H264.QP.Minimum="QP Minimo"
33
+AMF.H264.QP.Maximum="QP Massimo"
34
+AMF.H264.QP.IFrame="I-Frame QP"
35
+AMF.H264.QP.PFrame="P-Frame QP"
36
+AMF.H264.QP.BFrame="B-Frame QP"
37
+AMF.H264.QP.BPictureDelta="B-Picture Delta QP"
38
+AMF.H264.QP.ReferenceBPictureDelta="Riferimento B-Picture Delta QP"
39
+AMF.H264.VBVBuffer="Buffer VBV"
40
+AMF.H264.VBVBuffer.Strictness="Strettezza Buffer VBV"
41
+AMF.H264.VBVBuffer.Size="Dimensione Buffer VBV"
42
+AMF.H264.VBVBuffer.Fullness="Larghezza Buffer VBV"
43
+AMF.H264.FillerData="Dati di riempimento"
44
+AMF.H264.FrameSkipping="Frame Skipping"
45
+AMF.H264.EnforceHRDCompatibility="Forza compatibilità HRD"
46
+AMF.H264.MaximumAccessUnitSize="Massima dimensione di unità d'accesso"
47
+AMF.H264.KeyframeInterval="Intervallo Keyframe"
48
+AMF.H264.IDRPeriod="Periodo IDR"
49
+AMF.H264.HeaderInsertionSpacing="Spaziatura di inserimento di intestazione"
50
+AMF.H264.BPicture.Pattern="Modello B-Picture"
51
+AMF.H264.BPicture.Reference="Riferimento B-Picture"
52
+AMF.H264.DeblockingFilter="Filtro di deblock"
53
+AMF.H264.SlicesPerFrame="Slices Per Frame"
54
+AMF.H264.IntraRefreshNumMBsPerSlot="Intra-Refresh Number of Macroblocks Per Slot"
55
+AMF.H264.MotionEstimation="Stima Movimento"
56
+AMF.H264.MotionEstimation.None="Nessuno"
57
+AMF.H264.MotionEstimation.Half="Metà-Pixel"
58
+AMF.H264.MotionEstimation.Quarter="Quarto-Pixel"
59
+AMF.H264.MotionEstimation.Both="Meta- & Quarto-Pixel"
60
+AMF.H264.Device="Dispositivo"
61
+AMF.H264.UseOpenCL="OpenCL"
62
+AMF.H264.View="Modalità di visualizzazione"
63
+AMF.H264.View.Basic="Basico"
64
+AMF.H264.View.Advanced="Avanzate"
65
+AMF.H264.View.Expert="Esperto"
66
+AMF.H264.View.Master="Master"
67
+AMF.H264.UnlockProperties="Sblocca proprietà"
68
+AMF.H264.Debug="Debug"
69
+AMF.Util.Default="Predefinito"
70
+AMF.Util.Automatic="Automatico"
71
+AMF.Util.Manual="Manuale"
72
+AMF.Util.Toggle.Disabled="Disabilitato"
73
+AMF.Util.Toggle.Enabled="Attivo"
74
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/ja-JP.ini
Added
85
1
2
+AMF.H264.Preset="プリセット"
3
+AMF.H264.Preset.ResetToDefaults="既定値に戻す"
4
+AMF.H264.Preset.Recording="録画中"
5
+AMF.H264.Preset.HighQuality="高品質"
6
+AMF.H264.Preset.Indistinguishable="区別不能品質"
7
+AMF.H264.Preset.Lossless="無損失品質"
8
+AMF.H264.Preset.Twitch="Twitch"
9
+AMF.H264.Preset.YouTube="YouTube"
10
+AMF.H264.Usage="用途"
11
+AMF.H264.Usage.Transcoding="変換"
12
+AMF.H264.Usage.UltraLowLatency="超低遅延"
13
+AMF.H264.Usage.LowLatency="低遅延"
14
+AMF.H264.QualityPreset="品質プリセット"
15
+AMF.H264.QualityPreset.Speed="速度"
16
+AMF.H264.QualityPreset.Balanced="バランス"
17
+AMF.H264.QualityPreset.Quality="品質"
18
+AMF.H264.Profile="プロファイル"
19
+AMF.H264.ProfileLevel="プロファイルレベル"
20
+AMF.H264.ProfileLevel.Description="エンコードに使用する H.264 プロファイルレベル:\n- '自動' は与えられたフレームレートと解像度に対して最適なプロファイルレベルを計算し、\n- '4.1' は 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS をサポートし、\n- '4.2' は 1920x1080 60FPS, 1280x720 120FPS, 960x540 172FPS をサポートし、\n- '5.0' は 1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS をサポートし、\n- '5.1' は 3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS をサポートし、\n- '5.2' は 3840x2160 60FPS、1920 x 1080 172FPS, 1280 x 720 172FPS, 960 x 540 172FPS をサポートします。"
21
+AMF.H264.MaximumLTRFrames="最大 LTR フレーム"
22
+AMF.H264.ScanType="スキャンの種類"
23
+AMF.H264.ScanType.Description="どのスキャン方法が使用されるか、'プログレッシブ'を常にこのままにしておきます。"
24
+AMF.H264.ScanType.Progressive="プログレッシブ"
25
+AMF.H264.ScanType.Interlaced="インターレース"
26
+AMF.H264.RateControlMethod="レート制御方式"
27
+AMF.H264.RateControlMethod.CQP="固定QP (CQP)"
28
+AMF.H264.RateControlMethod.CBR="固定ビットレート (CBR)"
29
+AMF.H264.RateControlMethod.VBR.Peak="可変ビットレート (ピーク制約) (VBR)"
30
+AMF.H264.RateControlMethod.VBR.Latency="可変ビットレート (遅延制約) (VBR_LAT)"
31
+AMF.H264.Bitrate.Target="目標ビットレート"
32
+AMF.H264.Bitrate.Peak="最大ビットレート"
33
+AMF.H264.Bitrate.Peak.Description="全体的なシーケンスでピークを最大にしようとするビットレート。"
34
+AMF.H264.QP.Minimum="最小QP"
35
+AMF.H264.QP.Minimum.Description="フレームで使用する最低 QP (量子化パラメーター) の値です。"
36
+AMF.H264.QP.Maximum="最大QP"
37
+AMF.H264.QP.Maximum.Description="フレームで使用する最高 QP (量子化パラメーター) の値です。"
38
+AMF.H264.QP.IFrame="I-フレーム QP"
39
+AMF.H264.QP.PFrame="P-フレーム QP"
40
+AMF.H264.QP.BFrame="B-フレーム QP"
41
+AMF.H264.QP.BPictureDelta="B-画像デルタ QP"
42
+AMF.H264.QP.BPictureDelta.Description="最後の非参照B-画像のデルタQPです。"
43
+AMF.H264.QP.ReferenceBPictureDelta="B-画像参照のデルタQP"
44
+AMF.H264.QP.ReferenceBPictureDelta.Description="最後の参照B-画像のデルタQPです。"
45
+AMF.H264.VBVBuffer="VBV バッファ"
46
+AMF.H264.VBVBuffer.Strictness="VBV バッファ厳密性"
47
+AMF.H264.VBVBuffer.Size="VBV バッファサイズ"
48
+AMF.H264.VBVBuffer.Fullness="VBV バッファ充満"
49
+AMF.H264.FillerData="フィラーデータ"
50
+AMF.H264.FrameSkipping="フレームスキップ"
51
+AMF.H264.EnforceHRDCompatibility="HRD 互換性を強制"
52
+AMF.H264.MaximumAccessUnitSize="最大アクセスユニットサイズ"
53
+AMF.H264.KeyframeInterval="キーフレーム間隔"
54
+AMF.H264.KeyframeInterval.Description="ドロップ不可能なフレーム間の秒数。\nGOPのサイズも制御します。"
55
+AMF.H264.IDRPeriod="IDR 周期"
56
+AMF.H264.HeaderInsertionSpacing="ヘッダー挿入間隔"
57
+AMF.H264.BPicture.Pattern="B-画像パターン"
58
+AMF.H264.BPicture.Reference="B-画像参照"
59
+AMF.H264.DeblockingFilter="デブロックフィルタ"
60
+AMF.H264.DeblockingFilter.Description="デコーダがエンコードされたストリームに対してデブロックフィルタの使用を許可されているかのフラグを設定します。"
61
+AMF.H264.SlicesPerFrame="フレームあたりのスライス"
62
+AMF.H264.IntraRefreshNumMBsPerSlot="スロットごとのマクロブロックのイントラリフレッシュ数"
63
+AMF.H264.MotionEstimation="動き推定"
64
+AMF.H264.MotionEstimation.Description="動き推定はピクセルがどこに移動したかを推定することによってエンコーダが必要とするビットレートを削減します。"
65
+AMF.H264.MotionEstimation.None="未設定"
66
+AMF.H264.MotionEstimation.Half="1/2ピクセル"
67
+AMF.H264.MotionEstimation.Quarter="1/4ピクセル"
68
+AMF.H264.MotionEstimation.Both="ハーフ & クォーターピクセル"
69
+AMF.H264.Device="デバイス"
70
+AMF.H264.UseOpenCL="OpenCL を使用する"
71
+AMF.H264.View="表示モード"
72
+AMF.H264.View.Description="どのプロパティが表示されるか。 'エキスパート' または 'マスター' の表示モードを使用する場合はサポートを受けられません。"
73
+AMF.H264.View.Basic="基本"
74
+AMF.H264.View.Advanced="詳細設定"
75
+AMF.H264.View.Expert="エキスパート"
76
+AMF.H264.View.Master="マスター"
77
+AMF.H264.UnlockProperties="プロパティのロック解除"
78
+AMF.H264.Debug="デバッグ"
79
+AMF.H264.Debug.Description="追加のデバッグログ出力を有効にし、これはこのエンコーダでサポートが必要なときにアクティブにする必要があります。"
80
+AMF.Util.Default="既定値"
81
+AMF.Util.Automatic="自動"
82
+AMF.Util.Manual="手動"
83
+AMF.Util.Toggle.Disabled="無効"
84
+AMF.Util.Toggle.Enabled="有効"
85
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/ko-KR.ini
Added
111
1
2
+AMF.H264.Preset="사전 설정"
3
+AMF.H264.Preset.ResetToDefaults="기본값으로 복구"
4
+AMF.H264.Preset.Recording="녹화"
5
+AMF.H264.Preset.HighQuality="우수한 품질"
6
+AMF.H264.Preset.Indistinguishable="무손실과 거의 구분 불가"
7
+AMF.H264.Preset.Lossless="무손실"
8
+AMF.H264.Preset.Twitch="트위치"
9
+AMF.H264.Preset.YouTube="유튜브"
10
+AMF.H264.Usage="용도"
11
+AMF.H264.Usage.Description="용도에 따라 AMF을 조율합니다:\n- '트랜스코딩'은 일반적인 용도에 적합한 설정입니다(추천).\n- '매우 낮은 지연시간'은 아주 낮은 인코딩 레이턴시를 의미합니다.\n- '낮은 지연시간'은 그 수준이 조금 더 높습니다.\n방송 목적으로는 '트랜스코딩'만 지원됩니다. 모든 다른 설정값은 녹화 용도에만 사용됩니다."
12
+AMF.H264.Usage.Transcoding="트랜스코딩"
13
+AMF.H264.Usage.UltraLowLatency="매우 낮은 지연 시간"
14
+AMF.H264.Usage.LowLatency="낮은 지연 시간"
15
+AMF.H264.QualityPreset="품질 사전 설정"
16
+AMF.H264.QualityPreset.Description="AMF 품질을 결정할 때 어떤 수준을 목표로 할지 결정합니다:\n-'속도'는 가장 빠르지만, 품질이 가장 나쁘며,\n- '균형'은 '속도'와 '품질' 사이의 수준을 제공합니다.\n- '품질'은 주어진 비트레이트 내에서 가장 뛰어난 품질을 제공합니다."
17
+AMF.H264.QualityPreset.Speed="속도"
18
+AMF.H264.QualityPreset.Balanced="균형"
19
+AMF.H264.QualityPreset.Quality="품질"
20
+AMF.H264.Profile="프로파일"
21
+AMF.H264.Profile.Description="인코딩에 사용할 H.264 프로파일을 선택합니다:\n- 'Baseline'은 지원하는 플랫폼이 가장 많습니다,\n- 'Main'은 비교적 오래된 장치에서 지원합니다. (모바일 장치를 대상으로 한다면 추천하는 설정입니다),\n- 'High'는 현재 장치에서 지원하는 설정입니다 (추천)."
22
+AMF.H264.ProfileLevel="프로필 수준"
23
+AMF.H264.ProfileLevel.Description="인코딩으로 사용할 H.264 프로파일 수준을 지정합니다:\n-'자동'은 설정된 프레임과 그 크기에 맞춰 가장 좋은 수준을 계산합니다,\n-'4.1'은 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS을 지원합니다,\n-'4.2'는 1920x1080 60FPS, 1280x720 120FPS, 960x540 172FPS을 지원합니다,\n- '5.0'은 1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS을 지원합니다,\n- '5.1'은 3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS을 지원합니다,\n- '5.2'은 3840x2160 60FPS, 1920x1080 172FPS, 1280x720 172FPS, 960x540 172FPS을 지원합니다."
24
+AMF.H264.MaximumLTRFrames="최대 장기참조 프레임"
25
+AMF.H264.MaximumLTRFrames.Description="장기참조 프레임(LTR)은 인코더가 특정 프레임을 참조 가능하게 만들어 줍니다.\n이 설정은 B-화면 기능이 지원되지 않거나 필요한 경우 품질을 올리는데 도움이 될 수 있습니다.\n장기참조 프레임은 B-화면과 동시에 사용할 수 없습니다."
26
+AMF.H264.ScanType="스캔 형식"
27
+AMF.H264.ScanType.Description="주사 방식을 설정합니다. 항상 '프로그레시브'로 두십시오."
28
+AMF.H264.ScanType.Progressive="프로그레시브"
29
+AMF.H264.ScanType.Interlaced="인터레이스"
30
+AMF.H264.RateControlMethod="속도 제어 방식"
31
+AMF.H264.RateControlMethod.Description="속도 제어 동작 방식을 설정합니다:\n- '\@AMF.H264.RateControlMethod.CQP\@'는 고정된 I-/P-/B- 프레임 QP (양자화 매개변수) 값을 할당합니다, \n- '\@AMF.H264.RateControlMethod.CBR\@'은 주어진 목표 비트레이트를 유지합니다. (채우기 정보를 사용)(방송에 추천함),\n- '\@AMF.H264.RateControlMethod.VBR\@'은 주어진 최대 비트레이트보다 낮은 수준을 유지합니다,\n- '\@AMF.H264.RateControlMethod.VBR_LAT\@'는 GPU의 지연시간과 부하가 허용한다면 목표 비트레이트에 가까운 수준을 유지하며, 그렇지 않은 상황에서는 그보다 높은 비트레이트를 사용합니다. (녹화에 추천)."
32
+AMF.H264.RateControlMethod.CQP="고정 QP (CQP)"
33
+AMF.H264.RateControlMethod.CBR="고정 비트레이트 (CBR)"
34
+AMF.H264.RateControlMethod.VBR.Peak="가변 비트레이트 (최대 비트레이트 제약) (VBR)"
35
+AMF.H264.RateControlMethod.VBR.Latency="가변 비트레이트(지연율 제약) (VBR_LAT)"
36
+AMF.H264.Bitrate.Target="목표 비트레이트"
37
+AMF.H264.Bitrate.Target.Description="전체 장면에서 달성하려는 비트레이트"
38
+AMF.H264.Bitrate.Peak="최대 비트레이트"
39
+AMF.H264.Bitrate.Peak.Description="전체 장면에서 달성하려는 비트레이트 최고조"
40
+AMF.H264.QP.Minimum="최소 QP"
41
+AMF.H264.QP.Minimum.Description="하나의 프레임에 사용하는 최저 QP (양자화 매개변수) 값"
42
+AMF.H264.QP.Maximum="최대 QP"
43
+AMF.H264.QP.Maximum.Description="하나의 프레임에 사용하는 최고 QP (양자화 매개변수) 값"
44
+AMF.H264.QP.IFrame="I-프레임 QP"
45
+AMF.H264.QP.IFrame.Description="I-화면에 사용하는 고정 QP (양자화 매개변수) 값.\nI-화면 QP는 P-와 B-화면 QP값과 같거나 커야 함."
46
+AMF.H264.QP.PFrame="P-프레임 QP"
47
+AMF.H264.QP.PFrame.Description="P-화면에 사용하는 고정 QP (양자화 매개변수) 값.\nP-화면 QP는 B-화면 QP값과 같거나 혹은 커야 함."
48
+AMF.H264.QP.BFrame="BP-프레임 QP"
49
+AMF.H264.QP.BFrame.Description="B-화면에 사용하는 고정 QP (양자화 매개변수) 값."
50
+AMF.H264.QP.BPictureDelta="B-화면 델타 QP"
51
+AMF.H264.QP.BPictureDelta.Description="마지막 비참조 B-화면의 델타 QP."
52
+AMF.H264.QP.ReferenceBPictureDelta="참조 B-화면 델타 QP"
53
+AMF.H264.QP.ReferenceBPictureDelta.Description="마지막 참조 B-화면의 델타 QP."
54
+AMF.H264.VBVBuffer="VBV 버퍼"
55
+AMF.H264.VBVBuffer.Description="VBV 버퍼 크기를 결정하는 방식을 설정합니다:\n-'자동'은 엄격도의 제약하에 크기를 계산합니다.\n-'수동'은 사용자가 크기를 조절할 수 있도록 허용합니다.\n일부 특정 속도제어 방식이 사용하는 VBV (Video Buffering Verifier) 버퍼는 제공된 제약 안에서 전반적인 비트레이트를 유지합니다."
56
+AMF.H264.VBVBuffer.Strictness="VBV 버퍼 엄격도"
57
+AMF.H264.VBVBuffer.Strictness.Description="VBV 버퍼가 어떤 수준으로 제어될지 결정합니다. 100%에는 목표로 정한 비트레이트와 거의 일치하도록 조절하며 0%에서는 제약이 사라집니다."
58
+AMF.H264.VBVBuffer.Size="VBV 버퍼 크기"
59
+AMF.H264.VBVBuffer.Size.Description="한 장면의 비트레이트 제어에 사용하는 VBV 버퍼의 크기를 설정합니다.\n크기를 작게 설정하면 거의 완벽하게 비트레이트 수준에 일치하는 결과를 얻지만, 작업을 하는데 더 많은 자원을 요구합니다."
60
+AMF.H264.VBVBuffer.Fullness="VBV 버퍼 충만도"
61
+AMF.H264.VBVBuffer.Fullness.Description="초기 VBV버퍼가 얼마나 충만한지는 오로지 인코딩의 초반에만 영향을 미칩니다."
62
+AMF.H264.FillerData="채우기 정보"
63
+AMF.H264.FillerData.Description="데이터 채우기는 인코더가 한 장면에 남은 공간을 빈 정보로 채워 목표 비트레이트를 유지할 수 있도록 합니다."
64
+AMF.H264.FrameSkipping="프레임 생략"
65
+AMF.H264.FrameSkipping.Description="프레임 생략은 인코더가 목표로 하는 비트레이트 요건을 맞추기 위해 프레임을 떨어뜨릴 수 있습니다.\n인코더가 프레임 하나를 떨어뜨리면 마지막 프레임 NAL을 대신 전송합니다.\n목표 비트레이트가 아주 낮을 때 도움이 될 수 있습니다."
66
+AMF.H264.EnforceHRDCompatibility="HDR 호환모드 적용"
67
+AMF.H264.EnforceHRDCompatibility.Description="이론적 기본 디코더 강제는 프레임 하나의 최대 QP값 변화를 제한하는 설정입니다.\n녹화나 방송에는 적합하지 않고 기본 소프트웨어 디코더만 사용 가능한 매우 낡은 장치에서 영상을 재생할 때 사용합니다."
68
+AMF.H264.MaximumAccessUnitSize="최대 접근 유닛 크기"
69
+AMF.H264.MaximumAccessUnitSize.Description="NAL 장치에서 단일 접근 유닛의 가장 큰 크기를 결정합니다. 0 값은 인코더가 최적화된 수치를 결정하도록 허용합니다."
70
+AMF.H264.KeyframeInterval="키프레임 간격"
71
+AMF.H264.KeyframeInterval.Description="손실이 불가능한 프레임 사이에 얼마나 많은 시간(초)이 필요한지 설정합니다.\n또한 영상(GOP) 크기도 제어합니다."
72
+AMF.H264.IDRPeriod="IDR 주기"
73
+AMF.H264.IDRPeriod.Description="프레임 내에서 순간 복호 갱신(nstantaneous Decoding Refreshes) 사이의 거리를 설정합니다. 또한, GOP-장면 크기를 제어합니다."
74
+AMF.H264.HeaderInsertionSpacing="헤더 삽입 간격"
75
+AMF.H264.HeaderInsertionSpacing.Description="NAL 헤더 사이에 얼마나 많은 프레임이 필요한지 설정합니다. 0(자동)에서 바꾸는 것은 추천하지 않습니다."
76
+AMF.H264.BPicture.Pattern="B-화면 양식"
77
+AMF.H264.BPicture.Pattern.Description="인코딩에서 얼마나 많은 B-화면이 필요한지 결정합니다. 수치가 늘어날수록 품질은 올라가고 필요한 성능은 높아집니다.\n2세대와 3 세대 VCE 카드에서만 지원이 됩니다."
78
+AMF.H264.BPicture.Reference="B-화면 참조"
79
+AMF.H264.BPicture.Reference.Description="다른 B-화면뿐만 아니라 P-/I-화면에도 B-화면을 참조할 수 있도록 허용합니다.\n높은 성능이 요구되지만 품질 개선에는 그리 큰 효과가 없습니다."
80
+AMF.H264.DeblockingFilter="디블록 필터"
81
+AMF.H264.DeblockingFilter.Description="디코더가 인코딩된 작업에 디블록 필터를 사용할 수 있도록 허용합니다."
82
+AMF.H264.SlicesPerFrame="조각 당 프레임"
83
+AMF.H264.SlicesPerFrame.Description="프레임마다 얼마나 많은 I-화면 조각을 저장할지 결정합니다.\n0값은 인코더가 상태에 따라 맞춰 조절합니다.\n인트라-리프레시 인코딩은 더 빠른 재생과 탐색을 위해 사용합니다."
84
+AMF.H264.IntraRefreshNumMBsPerSlot="슬롯 당 매크로블록의 인트라-리프레시 수"
85
+AMF.H264.IntraRefreshNumMBsPerSlot.Description="슬롯마다 얼마나 많은 매크로 블록을 저장할지 결정합니다.\n\0값은 인코더가 상태에 따라 맞춰 조절합니다.\n인인트라-리프레시 인코딩은 더 빠른 재생과 탐색을 위해 사용합니다."
86
+AMF.H264.MotionEstimation="동작 예측"
87
+AMF.H264.MotionEstimation.Description="동작 추정은 픽셀의 움직임을 추정하여 필요한 비트레이트를 줄일 수 있게 합니다."
88
+AMF.H264.MotionEstimation.None="없음"
89
+AMF.H264.MotionEstimation.Half="1/2 화소"
90
+AMF.H264.MotionEstimation.Quarter="1/4 화소"
91
+AMF.H264.MotionEstimation.Both="1/2 & 1/4 화소"
92
+AMF.H264.Device="장치"
93
+AMF.H264.Device.Description="인코덩에 사용할 장치를 설정합니다.\n메모리 형식에서 'Host'를 선택하면 안됩니다."
94
+AMF.H264.UseOpenCL="OpenCL 사용"
95
+AMF.H264.UseOpenCL.Description="해당 인코더가 개별 프레임을 제출할 때 OpenCL을 사용하겠습니까?"
96
+AMF.H264.View="보기 모드"
97
+AMF.H264.View.Description="어떤 설정을 표시할지 결정합니다. '숙련' 혹은 '달인' 표시 모드에서는 지원을 받을 수 없습니다."
98
+AMF.H264.View.Basic="기본"
99
+AMF.H264.View.Advanced="고급"
100
+AMF.H264.View.Expert="숙련"
101
+AMF.H264.View.Master="달인"
102
+AMF.H264.UnlockProperties="속성 잠금해제"
103
+AMF.H264.UnlockProperties.Description="특정 설정을 부분적이 아닌 전체 범위를 다룰 수 있도록 잠금을 해제합니다."
104
+AMF.H264.Debug="디버그"
105
+AMF.H264.Debug.Description="추가적인 디버그 기록을 활성화하여 이 인코더에 대한 지원이 필요할 때 제출하십시오."
106
+AMF.Util.Default="기본값"
107
+AMF.Util.Automatic="자동"
108
+AMF.Util.Manual="수동"
109
+AMF.Util.Toggle.Disabled="비활성화"
110
+AMF.Util.Toggle.Enabled="활성화"
111
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/nb-NO.ini
Added
21
1
2
+AMF.H264.Usage.Transcoding="Transkoding"
3
+AMF.H264.Usage.UltraLowLatency="Ultra-lav latens"
4
+AMF.H264.Usage.LowLatency="Lav latens"
5
+AMF.H264.QualityPreset="Kvalitet forhåndsinnstilling"
6
+AMF.H264.QualityPreset.Speed="Hastighet"
7
+AMF.H264.QualityPreset.Balanced="Balansert"
8
+AMF.H264.QualityPreset.Quality="Kvalitet"
9
+AMF.H264.Profile="Profil"
10
+AMF.H264.ProfileLevel="Profilnivå"
11
+AMF.H264.ScanType="Skanne Type"
12
+AMF.H264.Bitrate.Target="Mål Bitrate"
13
+AMF.H264.Bitrate.Peak="Maks bitrate"
14
+AMF.H264.QP.Minimum="Minste QP"
15
+AMF.H264.QP.Maximum="Maksimal QP"
16
+AMF.H264.EnforceHRDCompatibility="Håndheve HRD kompatibilitet"
17
+AMF.Util.Default="Standard"
18
+AMF.Util.Automatic="Automatisk"
19
+AMF.Util.Toggle.Disabled="Deaktivert"
20
+AMF.Util.Toggle.Enabled="Aktivert"
21
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/nl-NL.ini
Added
53
1
2
+AMF.H264.Preset="Voorkeursinstelling"
3
+AMF.H264.Preset.Recording="Opname"
4
+AMF.H264.Preset.HighQuality="Hoge kwaliteit"
5
+AMF.H264.Preset.Indistinguishable="Ononderscheidbaar"
6
+AMF.H264.Preset.Lossless="Lossless"
7
+AMF.H264.Preset.Twitch="Twitch"
8
+AMF.H264.Preset.YouTube="YouTube"
9
+AMF.H264.Usage="Gebruik"
10
+AMF.H264.Usage.Description="Voor welk gebruik moet AMF ingesteld worden:\n- 'Transcoden' is standaard transcoden (aanbevolen),\n- 'Ultra Low Latency' is voor erg lage latency encoding,\n- 'Low Latency' is vergelijkbaar met bovenstaande met een iets hogere latency.\nVoor streamen is alleen 'Transcoden' mogelijk, alle andere waarden kunnen worden gebruikt voor opnemen."
11
+AMF.H264.Usage.Transcoding="Transcoding"
12
+AMF.H264.Usage.UltraLowLatency="Ultra Low Latency"
13
+AMF.H264.Usage.LowLatency="Low Latency"
14
+AMF.H264.QualityPreset="Kwaliteitsinstelling"
15
+AMF.H264.QualityPreset.Speed="Snelheid"
16
+AMF.H264.QualityPreset.Balanced="Gebalanceerd"
17
+AMF.H264.QualityPreset.Quality="Kwaliteit"
18
+AMF.H264.Profile="Profiel"
19
+AMF.H264.ProfileLevel="Profielniveau"
20
+AMF.H264.ProfileLevel.Description="Welk H.264 profielniveau moet worden gebruikt voor encoden:\n- 'Automatisch' berekent het beste profielniveau voor de gebruikte framerate en framegrootte.\n- '4.1' ondersteunt 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS\n- '4.2' ondersteunt 1920x1080 60FPS, 1280x720 120FPS, 960x540 172FPS\n- '5.0' ondersteunt1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS\n- '5.1' ondersteunt3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS\n- '5.2' ondersteunt 3840x2160 60FPS, 1920x1080 172FPS, 1280x720 172FPS, 960x540 172FPS"
21
+AMF.H264.MaximumLTRFrames="Maximale LTR Frames"
22
+AMF.H264.MaximumLTRFrames.Description="Long Term Reference (LTR) Frames zijn een functie waarmee de encoder bepaalde frames achter elkaar als refereerbaar kan markern.\nDit kan een positief effect hebben op de kwaliteit wanneer B-Pictures niet ondersteund of gewild zijn.\nLTR Frames kunnen niet samen met B-Pictures gebruikt worden en deencoder zal B-Pictures uitschakelen als deze worden gebruikt."
23
+AMF.H264.ScanType="Scantype"
24
+AMF.H264.ScanType.Progressive="Progressive"
25
+AMF.H264.ScanType.Interlaced="Interlaced"
26
+AMF.H264.RateControlMethod="Rate control methode"
27
+AMF.H264.RateControlMethod.CQP="Constant QP (CQP)"
28
+AMF.H264.RateControlMethod.CBR="Constant Bitrate (CBR)"
29
+AMF.H264.RateControlMethod.VBR.Peak="Variable Bitrate (Peak Constrained) (VBR)"
30
+AMF.H264.RateControlMethod.VBR.Latency="Variable Bitrate (Latency Constrained) (VBR_LAT)"
31
+AMF.H264.Bitrate.Target="Doelbitrate"
32
+AMF.H264.Bitrate.Peak="Maximale bitrate"
33
+AMF.H264.QP.Minimum="Minimale QP"
34
+AMF.H264.QP.Maximum="Maximale QP"
35
+AMF.H264.QP.IFrame="I-Frame QP"
36
+AMF.H264.QP.PFrame="P-Frame QP"
37
+AMF.H264.QP.BFrame="B-Frame QP"
38
+AMF.H264.QP.BPictureDelta="B-Picture Delta QP"
39
+AMF.H264.QP.BPictureDelta.Description="Delta QP (Quantization Parameter) waarde tot de laatste niet-reference B-Picture."
40
+AMF.H264.QP.ReferenceBPictureDelta="Referentie B-Picture Delta QP"
41
+AMF.H264.QP.ReferenceBPictureDelta.Description="Delta QP (Quantization Parameter) waarde tot de laatste referentie B-Picture,."
42
+AMF.H264.VBVBuffer="VBV Buffer"
43
+AMF.H264.FillerData="Opvuldata"
44
+AMF.H264.FrameSkipping="Frames overslaan"
45
+AMF.H264.EnforceHRDCompatibility="Forceer HDR compatibiliteit"
46
+AMF.H264.BPicture.Pattern="B-Picture patroon"
47
+AMF.H264.BPicture.Reference="B-Picture referentie"
48
+AMF.H264.DeblockingFilter="Deblocking Filter"
49
+AMF.Util.Default="Standaard"
50
+AMF.Util.Automatic="Automatisch"
51
+AMF.Util.Toggle.Disabled="Uitgeschakeld"
52
+AMF.Util.Toggle.Enabled="Ingeschakeld"
53
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/pl-PL.ini
Added
46
1
2
+AMF.H264.Preset="Profil"
3
+AMF.H264.Preset.Recording="Nagrywanie"
4
+AMF.H264.Preset.HighQuality="Wysoka jakość"
5
+AMF.H264.Preset.Indistinguishable="Nie do odróżnienia"
6
+AMF.H264.Preset.Lossless="Bezstratny"
7
+AMF.H264.Preset.Twitch="Twitch"
8
+AMF.H264.Preset.YouTube="YouTube"
9
+AMF.H264.Usage="Sposób użycia"
10
+AMF.H264.Usage.Transcoding="Konwersja"
11
+AMF.H264.Usage.UltraLowLatency="Bardzo niskie opóźnienie"
12
+AMF.H264.Usage.LowLatency="Niskie opóźnienie"
13
+AMF.H264.QualityPreset="Ustawienie jakości"
14
+AMF.H264.QualityPreset.Speed="Szybkość"
15
+AMF.H264.QualityPreset.Balanced="Zrównoważone"
16
+AMF.H264.QualityPreset.Quality="Jakość"
17
+AMF.H264.Profile="Profil"
18
+AMF.H264.ProfileLevel="Profil"
19
+AMF.H264.ScanType="Metoda skanowania"
20
+AMF.H264.ScanType.Progressive="Progresywne"
21
+AMF.H264.ScanType.Interlaced="Z przeplotem"
22
+AMF.H264.RateControlMethod="Metoda kontroli przepływności"
23
+AMF.H264.RateControlMethod.CQP="Stała QP (CQP)"
24
+AMF.H264.RateControlMethod.CBR="Stała przepływność (CBR)"
25
+AMF.H264.RateControlMethod.VBR.Peak="Zmienna przepływność (z ograniczeniem górnym) (VBR)"
26
+AMF.H264.RateControlMethod.VBR.Latency="Zmienna przepływność (z ograniczeniem opóźnieniem) (VBR_LAT)"
27
+AMF.H264.Bitrate.Target="Przepływność docelowa"
28
+AMF.H264.Bitrate.Peak="Przepływność szczytowa"
29
+AMF.H264.QP.Minimum="Minimalna QP"
30
+AMF.H264.QP.Maximum="Maksymalna QP"
31
+AMF.H264.QP.IFrame="I-Frame QP"
32
+AMF.H264.QP.PFrame="P-Frame QP"
33
+AMF.H264.QP.BFrame="B-Frame QP"
34
+AMF.H264.QP.BPictureDelta="B-Picture Delta QP"
35
+AMF.H264.QP.ReferenceBPictureDelta="Referencyjne B-Picture Delta QP"
36
+AMF.H264.FillerData="Filler Data"
37
+AMF.H264.FrameSkipping="Pomijanie klatek"
38
+AMF.H264.EnforceHRDCompatibility="Wymuszanie zgodności HRD"
39
+AMF.H264.BPicture.Pattern="Schemat B-Picture"
40
+AMF.H264.BPicture.Reference="Referencyjny B-Picture"
41
+AMF.H264.DeblockingFilter="Filtr niwelujacy bloki obrazu"
42
+AMF.Util.Default="Domyślne"
43
+AMF.Util.Automatic="Automatycznie"
44
+AMF.Util.Toggle.Disabled="Wyłączone"
45
+AMF.Util.Toggle.Enabled="Włączone"
46
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/ru-RU.ini
Added
105
1
2
+AMF.H264.Preset="Предустановка"
3
+AMF.H264.Preset.ResetToDefaults="Сброс по умолчанию"
4
+AMF.H264.Preset.Recording="Запись"
5
+AMF.H264.Preset.HighQuality="Высокое качество"
6
+AMF.H264.Preset.Indistinguishable="Незаметные потери"
7
+AMF.H264.Preset.Lossless="Без потерь"
8
+AMF.H264.Preset.Twitch="Twitch"
9
+AMF.H264.Preset.YouTube="YouTube"
10
+AMF.H264.Usage="Назначение"
11
+AMF.H264.Usage.Description="На какой режим использования должен быть настроен AMF:\n- 'Перекодировка' — для перекодировки общего назначения (рекомендуется),\n- 'Очень низкая задержка' — для кодировки с очень низкой задержкой,\n- 'Низкая задержка' похожа на пункт выше, но с немного большей задержкой.\nТрансляции поддерживают только 'перекодировку', все остальные значения могут быть использованы для записи."
12
+AMF.H264.Usage.Transcoding="Транскодирование"
13
+AMF.H264.Usage.UltraLowLatency="Очень низкая задержка"
14
+AMF.H264.Usage.LowLatency="Низкая задержка"
15
+AMF.H264.QualityPreset="Предустановки качества"
16
+AMF.H264.QualityPreset.Description="К какому пресету качества AMF нужно стремиться:\n-'Speed' самый быстрый, но имеет самое низкое качество,\n-'Balanced' между 'Speed' и 'Quality', предоставляет хорошее соотношение между скоростью и качеством,\n-'Quality' предоставляет наилучшее качество для предоставленного битрейта."
17
+AMF.H264.QualityPreset.Speed="Скорость"
18
+AMF.H264.QualityPreset.Balanced="Баланс"
19
+AMF.H264.QualityPreset.Quality="Качество"
20
+AMF.H264.Profile="Профиль кодирования"
21
+AMF.H264.ProfileLevel="Уровень профиля"
22
+AMF.H264.ProfileLevel.Description="Какой уровень профиля H.264 использовать для кодирования:\n- 'Автоматически' выбирает наиболее подходящий уровень под выбранную частоту и размер кадра,\n- '4.1' поддерживает 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS\n- '4.2' поддерживает 1920x1080 60FPS, 1280x720 120FPS, 960x540 172FPS\n- '5.0' поддерживает 1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS\n- '5.1' поддерживает 3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS\n- '5.2' поддерживает 3840x2160 60FPS, 1920x1080 172FPS, 1280x720 172FPS, 960x540 172FPS"
23
+AMF.H264.MaximumLTRFrames="Максимум LTR-кадров"
24
+AMF.H264.MaximumLTRFrames.Description="Long Term Reference (LTR) Frames - функция позволяющая кодировщику помечать определенные кадры в последовательности как ссылаемые.\nЭта функция может поднять качество, если функция B-Pictrues не поддерживается или не желательна.\nФункция LTR Frames не может использоваться вместе с функцией B-Pictrues и кодировщик отключит функцию B-Pictrues если таковая используется."
25
+AMF.H264.ScanType="Развертка"
26
+AMF.H264.ScanType.Description="Какой режим сканирования использовать; всегда оставляется этот параметр на 'прогрессивном'."
27
+AMF.H264.ScanType.Progressive="Прогрессивная"
28
+AMF.H264.ScanType.Interlaced="Чересстрочная"
29
+AMF.H264.RateControlMethod="Метод кодирования"
30
+AMF.H264.RateControlMethod.CQP="CQP: постоянное качество"
31
+AMF.H264.RateControlMethod.CBR="CBR: постоянный битрейт"
32
+AMF.H264.RateControlMethod.VBR.Peak="VBR: переменный битрейт (Ограничение пиков)"
33
+AMF.H264.RateControlMethod.VBR.Latency="VBR: переменный битрейт (Ограничение задержки)"
34
+AMF.H264.Bitrate.Target="Битрейт"
35
+AMF.H264.Bitrate.Target.Description="Битрейт желаемый для получения во всей последовательности."
36
+AMF.H264.Bitrate.Peak="Пиковый битрейт"
37
+AMF.H264.Bitrate.Peak.Description="Максимальный пиковый битрейт желаемый для получения во всей последовательности."
38
+AMF.H264.QP.Minimum="Минимальное QP"
39
+AMF.H264.QP.Minimum.Description="Наименьшее значение QP (Параметр квантования) для использования в кадре."
40
+AMF.H264.QP.Maximum="Максимальное QP"
41
+AMF.H264.QP.Maximum.Description="Наибольшее значение QP (Параметр квантования) для использования в кадре."
42
+AMF.H264.QP.IFrame="I-кадр QP"
43
+AMF.H264.QP.IFrame.Description="Фиксированное значение QP (Параметр квантования) для использования в I-Кадрах.\nQP I-Кадров должен быть равен или больше чем QP P- и B-Кадров."
44
+AMF.H264.QP.PFrame="P-кадр QP"
45
+AMF.H264.QP.PFrame.Description="Фиксированное значение QP (Параметр квантования) для использования в P-Кадрах.\nQP P-Кадров должен быть равен или больше чем QP B-Кадров."
46
+AMF.H264.QP.BFrame="B-кадр QP"
47
+AMF.H264.QP.BFrame.Description="Фиксированное значение QP (Параметр квантования) для использования в B-Кадрах."
48
+AMF.H264.QP.BPictureDelta="B-кадры дельта QP"
49
+AMF.H264.QP.BPictureDelta.Description="Дельта QP до последнего не референсного B-кадра."
50
+AMF.H264.QP.ReferenceBPictureDelta="Референсные B-кадры дельта QP"
51
+AMF.H264.QP.ReferenceBPictureDelta.Description="Дельта QP до последнего референсного B-кадра."
52
+AMF.H264.VBVBuffer="Буфер VBV"
53
+AMF.H264.VBVBuffer.Description="Какой метод следует использовать для определения Размера буфера VBV:\n- '\@AMF.Util.Automatic\@' рассчитывает размер ограничивающийся строгостью,\n- '\@AMF.Util.Manual\@' позволяет пользователю контролировать размер буфера.\nVBV (Верификатор буферизации видео) буфер используется некоторыми Методами управления скоростью, чтобы сохранить общий битрейт в пределах заданных ограничений."
54
+AMF.H264.VBVBuffer.Strictness="Строгость буфера VBV"
55
+AMF.H264.VBVBuffer.Strictness.Description="Насколько строго должен быть ограничен буфер VBV: 100% — почти полное соответствие целевому битрейту, 0% — без ограничений."
56
+AMF.H264.VBVBuffer.Size="Размер буфера VBV"
57
+AMF.H264.VBVBuffer.Fullness="Заполнение буфера VBV"
58
+AMF.H264.VBVBuffer.Fullness.Description="Изначальная степень заполнения VBV буфера, будет влиять только на первоначальную последовательность кодирования."
59
+AMF.H264.FillerData="Данные наполнителя"
60
+AMF.H264.FrameSkipping="Пропуск кадров"
61
+AMF.H264.EnforceHRDCompatibility="Принудительная HRD совместимость"
62
+AMF.H264.MaximumAccessUnitSize="Максимальный Размер Блока Доступа"
63
+AMF.H264.MaximumAccessUnitSize.Description="Большой размер блока доступа для NAL. Значение 0 позволяет регулировать, чтобы выбрать лучший."
64
+AMF.H264.KeyframeInterval="Интервал ключевых кадров"
65
+AMF.H264.KeyframeInterval.Description="Сколько секунд должен быть просадок кадров.\nТакже контролирует GOP Size."
66
+AMF.H264.IDRPeriod="Период IDR"
67
+AMF.H264.IDRPeriod.Description="Определяет расстояние между Мгновенными обновлениями декодирования (IDR) в кадрах. Так же контролирует размер последовательности GOP."
68
+AMF.H264.HeaderInsertionSpacing="Расстояние вставки заголовка"
69
+AMF.H264.HeaderInsertionSpacing.Description="Сколько кадров должно быть между заголовками NAL. Не рекомендуется менять значение с 0 (автоматически)."
70
+AMF.H264.BPicture.Pattern="Патерн B-кадра"
71
+AMF.H264.BPicture.Pattern.Description="Сколько кадров B-Pictures должно быть разрешено для кодирования. Имеет положительный эффект на качестве и негативный на производительности.\nПоддерживает только второе поколение VCE. Значение функции LTR Frames должно быть равно нулю."
72
+AMF.H264.BPicture.Reference="Референс B-кадра"
73
+AMF.H264.BPicture.Reference.Description="Разрешает B-Кадрам ссылаться на другие B-Кадры как и на P- и I-Кадры.\nОгромный урон производительности, исправление низкого качества."
74
+AMF.H264.DeblockingFilter="Фильтр деблокинга"
75
+AMF.H264.DeblockingFilter.Description="Устанавливает флаг, что декодер может использовать фильтр удаления блочности для прямой трансляции."
76
+AMF.H264.SlicesPerFrame="Количество частей на кадр"
77
+AMF.H264.SlicesPerFrame.Description="Сколько кусков I-Кадров должно быть сохранено в каждом кадре?\nЗначение 0 позволяет кодировщику выбирать \"на лету\".\nКодирование Intra-Refresh используется для быстрого воспроизведения и поиска при перемотке."
78
+AMF.H264.IntraRefreshNumMBsPerSlot="Интра-обновить Количество Макроблоков в слот"
79
+AMF.H264.IntraRefreshNumMBsPerSlot.Description="Сколько Макроблоков должно быть сохранено в каждом слоте?\nЗначение 0 позволяет кодировщику выбирать \"на лету\".\nКодирование Intra-Refresh используется для быстрого воспроизведения и поиска при перемотке."
80
+AMF.H264.MotionEstimation="Оценка движения"
81
+AMF.H264.MotionEstimation.Description="Оценки движения позволяет кодировщику необходимость уменьшить Битрейт, оценивая, где пиксель прошел."
82
+AMF.H264.MotionEstimation.None="Нет"
83
+AMF.H264.MotionEstimation.Half="Пол-пиксельная"
84
+AMF.H264.MotionEstimation.Quarter="Четверть-пиксельная"
85
+AMF.H264.MotionEstimation.Both="Пол- & Четверть-пиксельная"
86
+AMF.H264.Device="Устройство"
87
+AMF.H264.Device.Description="Которое из устройств использовать для кодирования.\nТип памяти должен быть не 'Host'."
88
+AMF.H264.UseOpenCL="Использовать OpenCL"
89
+AMF.H264.UseOpenCL.Description="Должен ли кодировщик использовать OpenCL для подтверждения индивидуальных кадров?"
90
+AMF.H264.View="Режим просмотра"
91
+AMF.H264.View.Description="Какие параметры должны быть видны. Вы не будете получать поддержку при использовании режимов 'Эксперт' и 'Мастер'."
92
+AMF.H264.View.Basic="Обычный"
93
+AMF.H264.View.Advanced="Расширенный"
94
+AMF.H264.View.Expert="Эксперт"
95
+AMF.H264.View.Master="Мастер"
96
+AMF.H264.UnlockProperties="Разблокировать параметры"
97
+AMF.H264.UnlockProperties.Description="Разблокировать определённые параметры до их полного, неограниченного диапазона."
98
+AMF.H264.Debug="Отладка"
99
+AMF.H264.Debug.Description="Включить дополнительные логи для отладки; следует включить, если вам нужна поддержка с этим кодировщиком."
100
+AMF.Util.Default="По умолчанию"
101
+AMF.Util.Automatic="Автоматически"
102
+AMF.Util.Manual="Руководство"
103
+AMF.Util.Toggle.Disabled="Выключено"
104
+AMF.Util.Toggle.Enabled="Включено"
105
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/sk-SK.ini
Added
8
1
2
+AMF.H264.Preset="Predvoľba"
3
+AMF.H264.Preset.ResetToDefaults="Obnoviť predvolené"
4
+AMF.H264.Preset.HighQuality="Vysoká kvalita"
5
+AMF.H264.Preset.Twitch="Twitch"
6
+AMF.H264.Preset.YouTube="YouTube"
7
+AMF.H264.Profile="Profil"
8
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/sr-CS.ini
Added
46
1
2
+AMF.H264.Preset="Šablon"
3
+AMF.H264.Preset.Recording="Snimanje"
4
+AMF.H264.Preset.HighQuality="Visoki kvalitet"
5
+AMF.H264.Preset.Indistinguishable="Istovetno"
6
+AMF.H264.Preset.Lossless="Bez gubitaka"
7
+AMF.H264.Preset.Twitch="Twitch"
8
+AMF.H264.Preset.YouTube="YouTube"
9
+AMF.H264.Usage.Transcoding="Transkodiranje"
10
+AMF.H264.Usage.UltraLowLatency="Ultra nisko kašnjenje"
11
+AMF.H264.Usage.LowLatency="Nisko kašnjenje"
12
+AMF.H264.QualityPreset="Šablon kvaliteta"
13
+AMF.H264.QualityPreset.Speed="Brzina"
14
+AMF.H264.QualityPreset.Balanced="Izbalansirano"
15
+AMF.H264.QualityPreset.Quality="Kvalitet"
16
+AMF.H264.Profile="Profil"
17
+AMF.H264.ProfileLevel="Nivo profila"
18
+AMF.H264.MaximumLTRFrames="Maksimalan broj LTR frejmova"
19
+AMF.H264.ScanType="Vrsta skeniranja"
20
+AMF.H264.ScanType.Progressive="Progresivno"
21
+AMF.H264.ScanType.Interlaced="Isprekidano"
22
+AMF.H264.RateControlMethod="Metoda kontrole protoka"
23
+AMF.H264.RateControlMethod.CQP="Konstantan kvalitet (CQP)"
24
+AMF.H264.RateControlMethod.CBR="Konstantan protok (CBR)"
25
+AMF.H264.RateControlMethod.VBR.Peak="Promenjivi protok (sa gornjom granicom) (VBR)"
26
+AMF.H264.RateControlMethod.VBR.Latency="Promenjivi protok (sa granicom kašnjenja) (VBR_LAT)"
27
+AMF.H264.Bitrate.Target="Ciljani protok"
28
+AMF.H264.Bitrate.Peak="Granica protoka"
29
+AMF.H264.QP.Minimum="Minimalni QP"
30
+AMF.H264.QP.Maximum="Maksimalni QP"
31
+AMF.H264.QP.IFrame="I-Frejm QP"
32
+AMF.H264.QP.PFrame="P-Frejm QP"
33
+AMF.H264.QP.BFrame="B-Frejm QP"
34
+AMF.H264.QP.BPictureDelta="B-Promena slike QP"
35
+AMF.H264.QP.ReferenceBPictureDelta="Referenca B-Promena slike QP"
36
+AMF.H264.FillerData="Podaci za popunjavanje"
37
+AMF.H264.FrameSkipping="Preskakanje frejmova"
38
+AMF.H264.EnforceHRDCompatibility="Prisilna HRD kompatibilnost"
39
+AMF.H264.BPicture.Pattern="B-Šablonska slika"
40
+AMF.H264.BPicture.Reference="B-Referentna slika"
41
+AMF.H264.DeblockingFilter="Odblokirajući filter"
42
+AMF.Util.Default="Podrazumevano"
43
+AMF.Util.Automatic="Automatski"
44
+AMF.Util.Toggle.Disabled="Onemogućeno"
45
+AMF.Util.Toggle.Enabled="Omogućeno"
46
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/sr-SP.ini
Added
38
1
2
+AMF.H264.Usage.Transcoding="Транскодирање"
3
+AMF.H264.Usage.UltraLowLatency="Ултра ниско кашњење"
4
+AMF.H264.Usage.LowLatency="Ниско кашњење"
5
+AMF.H264.QualityPreset="Шаблон квалитета"
6
+AMF.H264.QualityPreset.Speed="Брзина"
7
+AMF.H264.QualityPreset.Balanced="Избалансирано"
8
+AMF.H264.QualityPreset.Quality="Квалитет"
9
+AMF.H264.Profile="Профил"
10
+AMF.H264.ProfileLevel="Ниво профила"
11
+AMF.H264.ScanType="Врста скенирања"
12
+AMF.H264.ScanType.Progressive="Прогресивно"
13
+AMF.H264.ScanType.Interlaced="Испрекидано"
14
+AMF.H264.RateControlMethod="Метода контроле протока"
15
+AMF.H264.RateControlMethod.CQP="Константан квалитет (CQP)"
16
+AMF.H264.RateControlMethod.CBR="Константан проток (CBR)"
17
+AMF.H264.RateControlMethod.VBR.Peak="Промењиви проток (са горњом границом) (VBR)"
18
+AMF.H264.RateControlMethod.VBR.Latency="Промењиви проток (са границом кашњења) (VBR_LAT)"
19
+AMF.H264.Bitrate.Target="Циљани проток"
20
+AMF.H264.Bitrate.Peak="Граница протока"
21
+AMF.H264.QP.Minimum="Минимални QP"
22
+AMF.H264.QP.Maximum="Максимални QP"
23
+AMF.H264.QP.IFrame="I-Фрејм QP"
24
+AMF.H264.QP.PFrame="P-Фрејм QP"
25
+AMF.H264.QP.BFrame="B-Фрејм QP"
26
+AMF.H264.QP.BPictureDelta="B-Промена слике QP"
27
+AMF.H264.QP.ReferenceBPictureDelta="Референца B-Промена слике QP"
28
+AMF.H264.FillerData="Подаци за попуњавање"
29
+AMF.H264.FrameSkipping="Прескакање фрејмова"
30
+AMF.H264.EnforceHRDCompatibility="Присилна HRD компатибилност"
31
+AMF.H264.BPicture.Pattern="B-Шаблонска слика"
32
+AMF.H264.BPicture.Reference="B-Референтна слика"
33
+AMF.H264.DeblockingFilter="Одблокирајући филтер"
34
+AMF.Util.Default="Подразумевано"
35
+AMF.Util.Automatic="Аутоматски"
36
+AMF.Util.Toggle.Disabled="Онемогућено"
37
+AMF.Util.Toggle.Enabled="Омогућено"
38
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/sv-SE.ini
Added
42
1
2
+AMF.H264.Preset="Förinställning"
3
+AMF.H264.Preset.HighQuality="Hög kvalitet"
4
+AMF.H264.Preset.Indistinguishable="Oskiljbar"
5
+AMF.H264.Preset.Lossless="Förlustfri"
6
+AMF.H264.Preset.Twitch="Twitch"
7
+AMF.H264.Preset.YouTube="YouTube"
8
+AMF.H264.Usage="Användning"
9
+AMF.H264.Usage.Transcoding="Omkodning"
10
+AMF.H264.Usage.UltraLowLatency="Ultralåg latens"
11
+AMF.H264.Usage.LowLatency="Låg latens"
12
+AMF.H264.QualityPreset="Kvalitetsförinställning"
13
+AMF.H264.QualityPreset.Speed="Hastighet"
14
+AMF.H264.QualityPreset.Balanced="Balanserad"
15
+AMF.H264.QualityPreset.Quality="Kvalitet"
16
+AMF.H264.Profile="Profil"
17
+AMF.H264.ProfileLevel="Profilnivå"
18
+AMF.H264.ScanType="Typ av skanning"
19
+AMF.H264.ScanType.Progressive="Progressiv"
20
+AMF.H264.ScanType.Interlaced="Sammanflätad"
21
+AMF.H264.RateControlMethod.CQP="Konstant QP (CQP)"
22
+AMF.H264.RateControlMethod.CBR="Konstant bithastighet (CBR)"
23
+AMF.H264.Bitrate.Target="Målets bithastighet"
24
+AMF.H264.Bitrate.Peak="Maximal bithastighet"
25
+AMF.H264.QP.Minimum="Minimal QP"
26
+AMF.H264.QP.Maximum="Maximal QP"
27
+AMF.H264.FrameSkipping="Hoppa över bildrutor"
28
+AMF.H264.EnforceHRDCompatibility="Tvinga HRD-kompatibilitet"
29
+AMF.H264.DeblockingFilter="Avblockningsfilter"
30
+AMF.H264.MotionEstimation.None="Ingen"
31
+AMF.H264.View="Visningsläge"
32
+AMF.H264.View.Basic="Grundläggande"
33
+AMF.H264.View.Advanced="Avancerad"
34
+AMF.H264.View.Expert="Expert"
35
+AMF.H264.View.Master="Master"
36
+AMF.H264.Debug="Felsök"
37
+AMF.Util.Default="Standard"
38
+AMF.Util.Automatic="Automatisk"
39
+AMF.Util.Manual="Manuell"
40
+AMF.Util.Toggle.Disabled="Inaktiverad"
41
+AMF.Util.Toggle.Enabled="Aktiverad"
42
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/uk-UA.ini
Added
111
1
2
+AMF.H264.Preset="Шаблон"
3
+AMF.H264.Preset.ResetToDefaults="Відновити параметри за замовчанням"
4
+AMF.H264.Preset.Recording="Звичайний запис"
5
+AMF.H264.Preset.HighQuality="Висока якість"
6
+AMF.H264.Preset.Indistinguishable="Якість майже без втрат"
7
+AMF.H264.Preset.Lossless="Без втрат якості"
8
+AMF.H264.Preset.Twitch="Twitch"
9
+AMF.H264.Preset.YouTube="YouTube"
10
+AMF.H264.Usage="Використання"
11
+AMF.H264.Usage.Description="Тип використання AMF або напрямок його використання, тобто:\n 'Для перекодування' - загальний тип налаштувань (рекомендований).\n 'З ультра-низькою затримкою' - тип лише для дійсно низької затримки під час кодування.\n 'З низькою затримкою' - схожий на зазначений вище, але з трохи більшою затримкою.\n\nТрансляції підтримують лише напрямок використання 'Для перекодування'."
12
+AMF.H264.Usage.Transcoding="Для перекодування"
13
+AMF.H264.Usage.UltraLowLatency="З ультра-низькою затримкою"
14
+AMF.H264.Usage.LowLatency="З низькою затримкою"
15
+AMF.H264.QualityPreset="Шаблон якості"
16
+AMF.H264.QualityPreset.Description="Визначає який Шаблон якості AMF намагатиметься встановити:\n 'Швидкість' - є найшвидшим, але має гіршу якість відео.\n 'Збалансований' - це баланс між шаблонами Швидкість та Якість.\n 'Якість' - дає найкращу якість відео для заданого бітрейту."
17
+AMF.H264.QualityPreset.Speed="Швидкість"
18
+AMF.H264.QualityPreset.Balanced="Збалансований"
19
+AMF.H264.QualityPreset.Quality="Якість"
20
+AMF.H264.Profile="Профіль"
21
+AMF.H264.Profile.Description="Зазначений профіль H.264 буде використано енкодером:\n 'Baseline' - найпоширеніший серед пристроїв відтворення\n 'Main' - майже всі пристрої відтворення мають підтримку цього профілю\n 'High' - профіль підтримується найсучаснішими пристроями (рекомендується)."
22
+AMF.H264.ProfileLevel="Рівень профілю"
23
+AMF.H264.ProfileLevel.Description="Визначає рівень профілю H.264 який буде використано під час кодування:\n 'Автоматично' - програма сама встановить найкращій рівень профілю згідно розміру та частоти кадрів,\n '4.1' - підтримує 1920x1080 30 кадрів/с, 1280x720 60 кадрів/с, 960x540 90 кадрів/с\n '4.2' - підтримує 1920x1080 60 кадрів/с, 1280x720 120 кадрів/с, 960x540 172 кадрів/с\n '5.0' - підтримує 1920x1080 60 кадрів/с, 1280x720 144 кадрів/с, 960x540 172 кадрів/с\n '5.1' - підтримує 3840x2160 30 кадрів/с, 1920x1080 120 кадрів/с, 1280x720 172 кадрів/с, 960x540 172 кадрів/с\n '5.2' - підтримує 3840x2160 60 кадрів/с, 1920x1080 172 кадрів/с, 1280x720 172 кадрів/с, 960x540 172 кадрів/с"
24
+AMF.H264.MaximumLTRFrames="Кількість LTR-кадрів контрольованих користувачем"
25
+AMF.H264.MaximumLTRFrames.Description="Long-Term Reference (LTR) кадри дозволяють при кодуванні маркувати декілька кадрів як опорні для інших.\nЦе може поліпшити якість у разі відсутності підтримки B-кадрів або небажаності їх використання.\nЯкщо 'Кількість LTR-кадрів контрольованих користувачем' вказано, то енкодер не підтримуватиме B-кадри у відео."
26
+AMF.H264.ScanType="Вид розгортки"
27
+AMF.H264.ScanType.Description="Визначає вид розгортки який треба використовувати у кодуванні,\nзавжди користуйтеся значенням 'Прогресивна'."
28
+AMF.H264.ScanType.Progressive="Прогресивна"
29
+AMF.H264.ScanType.Interlaced="Черезрядкова"
30
+AMF.H264.RateControlMethod="Метод керування потоком"
31
+AMF.H264.RateControlMethod.Description="Визначає метод керування потоком:\n 'Фіксований QP (CQP)' - встановлює фіксовані QP для I-/P-/B-кадрів,\n 'Постійний бітрейт (CBR)' - дотримується значення Бажаний бітрейт потоку (використовуючи\nопцію Заповнювати пустоти у бітрейту) (рекомендується для трансляцій),\n 'Змінний бітрейт (максимальний бітрейт обмежено) (VBR)' - потік завжди залишається нижче значення Максимальний бітрейт,\n 'Змінний бітрейт (затримку обмежено) (VBR_LAT)' - потік буде збережено близько до значення Бажаний бітрейт,\nдопоки затримка графічного адаптеру та навантаження на нього дозволятимуть це,\nв іншому випадку бітрейт буде збільшено (рекомендується для запису).\n\nQP - Quantization Parameter (параметр квантування)."
32
+AMF.H264.RateControlMethod.CQP="Фіксований QP (CQP)"
33
+AMF.H264.RateControlMethod.CBR="Постійний бітрейт (CBR)"
34
+AMF.H264.RateControlMethod.VBR.Peak="Змінний бітрейт (максимальний бітрейт обмежено) (VBR)"
35
+AMF.H264.RateControlMethod.VBR.Latency="Змінний бітрейт (затримку обмежено) (VBR_LAT)"
36
+AMF.H264.Bitrate.Target="Бажаний бітрейт"
37
+AMF.H264.Bitrate.Target.Description="Енкодер буде намагатися дотримуватись цього бітрейту."
38
+AMF.H264.Bitrate.Peak="Максимальний бітрейт"
39
+AMF.H264.Bitrate.Peak.Description="Енкодер буде намагатися не перевищувати цього бітрейту."
40
+AMF.H264.QP.Minimum="Мінімальний QP"
41
+AMF.H264.QP.Minimum.Description="Найнижчий QP (параметр квантування) в кадрі."
42
+AMF.H264.QP.Maximum="Максимальний QP"
43
+AMF.H264.QP.Maximum.Description="Найвищий QP (параметр квантування) в кадрі."
44
+AMF.H264.QP.IFrame="QP для I-кадрів"
45
+AMF.H264.QP.IFrame.Description="Фіксоване значення QP (параметр квантування) для I-кадрів.\nQP для I-кадрів повинно бути на рівні або вище за QP для P- та B-кадрів."
46
+AMF.H264.QP.PFrame="QP для P-кадрів"
47
+AMF.H264.QP.PFrame.Description="Фіксоване значення QP (параметр квантування) для P-кадрів.\nQP для P-кадрів повинно бути на рівні або вище за QP для B-кадрів."
48
+AMF.H264.QP.BFrame="QP для B-кадрів"
49
+AMF.H264.QP.BFrame.Description="Фіксоване значення QP (параметр квантування) для B-кадрів."
50
+AMF.H264.QP.BPictureDelta="B-кадри, відхил QP"
51
+AMF.H264.QP.BPictureDelta.Description="Відхил QP (параметра квантування) для не опорних B-кадрів, по відношенню до I-кадрів."
52
+AMF.H264.QP.ReferenceBPictureDelta="Опорні B-кадри, відхил QP"
53
+AMF.H264.QP.ReferenceBPictureDelta.Description="Відхил QP (параметра квантування) для порних B-кадрів, по відношенню до I-кадрів."
54
+AMF.H264.VBVBuffer="Буфер VBV"
55
+AMF.H264.VBVBuffer.Description="Метод, що використовується для визначення параметру Розмір VBV буфера:\n 'Автоматично' - енкодер вираховує розмір враховуючи параметр Буфер VBV, кореляція.\n 'Вручну' - дозволяє користувачеві контролювати цей розмір.\nVBV (Video Buffering Verifier) Буфер використовується різними Методами керування потоком для збереження бітрейту у зазначених межах."
56
+AMF.H264.VBVBuffer.Strictness="Буфер VBV, кореляція"
57
+AMF.H264.VBVBuffer.Strictness.Description="Визначає як близько значення Буфер VBV дорівнюють значенню Бажаний бітрейт, у відсотках."
58
+AMF.H264.VBVBuffer.Size="Розмір VBV буфера"
59
+AMF.H264.VBVBuffer.Size.Description="Розмір VBV буфера (Video Buffering Verifier) використовується під час контролю бітрейта відео.\nМалі значення дозволяють цілком збігатися зі встановленим бітрейтом але здійснюють додаткове навантаження."
60
+AMF.H264.VBVBuffer.Fullness="Початкова повнота буферу VBV"
61
+AMF.H264.VBVBuffer.Fullness.Description="Визначає початкову заповнюваність Буферу VBV, діє лише на початку кодування."
62
+AMF.H264.FillerData="Заповнювати пустоти у бітрейту"
63
+AMF.H264.FillerData.Description="Заповнювати пустоти у бітрейту - це наповнювання інформацією, яку декодер просто ігнорує. Якщо увімкнено то зайве місце у бітрейті буде заповнено нічого не значущою інформацією за для досягнення точного значення Бажаний бітрейт. Аналог Filler Data."
64
+AMF.H264.FrameSkipping="Пропускати кадри"
65
+AMF.H264.FrameSkipping.Description="Пропускати кадри - дозволяє енкодеру відкидати кадри, якщо керування потоком не може досягти встановленого значення Бажаний бітрейт.\nКоли енкодер пропускає кадр, він додає дублювати-останній-кадр NAL до потоку.\nМоже допомогти при встановленні дуже низьких значень Бажаний бітрейт."
66
+AMF.H264.EnforceHRDCompatibility="Застосувати примусову сумісність з HRD"
67
+AMF.H264.EnforceHRDCompatibility.Description="Застосувати примусову сумісність з HRD (Hypothetical Reference Decoder) - накладає обмеження на максимальне значення QP (параметра квантування) у кадрі задля досягнення сумісності з HRD.\nНе рекомендується для записів або трансляцій. Використовувати лише для сумісності з найстарішими пристроями які мають лише базовий декодер."
68
+AMF.H264.MaximumAccessUnitSize="Максимальний розмір Access Unit"
69
+AMF.H264.MaximumAccessUnitSize.Description="Визначає максимальний розмір Access Unit для NAL. Значення 0 дозволяє енкодеру обирати найкращий розмір самостійно."
70
+AMF.H264.KeyframeInterval="Інтервал ключових кадрів"
71
+AMF.H264.KeyframeInterval.Description="Визначає кількість секунд між двома повними кадрами (ключовими кадрами).\nТакож контролює довжину послідовності кадрів у групі зображень (GOP)."
72
+AMF.H264.IDRPeriod="IDR, період (кадрів)"
73
+AMF.H264.IDRPeriod.Description="Визначає відстань між Instantaneous Decoding Refreshes (IDR) (ключовими кадрами), в кадрах.\nТакож контролює довжину послідовності кадрів у групі зображень (GOP)."
74
+AMF.H264.HeaderInsertionSpacing="Заголовки потоку, період (кадрів)"
75
+AMF.H264.HeaderInsertionSpacing.Description="Визначає скільки кадрів повинно бути між NAL заголовками. Не рекомендується змінювати цей параметр від значення 0 (автоматично)."
76
+AMF.H264.BPicture.Pattern="Послідовні B-кадри"
77
+AMF.H264.BPicture.Pattern.Description="Визначає кількість дозволених B-кадрів у кодуванні. Має позитивний вплив на якість зображення та негативний на продуктивність.\nПідтримується принаймні 2-м та 3-м поколінням VCE карт."
78
+AMF.H264.BPicture.Reference="B-кадри як опорні"
79
+AMF.H264.BPicture.Reference.Description="Дозволяє робити B-кадри опорними для інших B-кадрів в додаток до вже існуючих P- та I-кадрів.\nЗдійснює величезне навантаження, при незначному поліпшенні якості."
80
+AMF.H264.DeblockingFilter="Деблокінг-фільтр"
81
+AMF.H264.DeblockingFilter.Description="Встановлює позначку, що дозволяє декодеру використовувати Деблокінг-фільтр для цього відео."
82
+AMF.H264.SlicesPerFrame="Фрагментів на кадр"
83
+AMF.H264.SlicesPerFrame.Description="Скільки фрагментів I-кадрів буде у кожному кадру?\nНульове значення дозволяє енкодеру визначати цю кількість під час кодування самостійно.\nIntra-Refresh кодування використовується для більш швидкого відтворення та навігації."
84
+AMF.H264.IntraRefreshNumMBsPerSlot="Кількість Intra-Refresh макроблоків на слот"
85
+AMF.H264.IntraRefreshNumMBsPerSlot.Description="Скільки Intra-Refresh макроблоків буде у кожному слоті?\nНульове значення дозволяє енкодеру визначати цю кількість під час кодування самостійно.\nIntra-Refresh кодування використовується для більш швидкого відтворення та навігації."
86
+AMF.H264.MotionEstimation="Оцінка руху"
87
+AMF.H264.MotionEstimation.Description="Оцінка руху дозволяє енкодеру зменшити вимоги до бітрейту завдяки розрахункам з переміщення пікселів."
88
+AMF.H264.MotionEstimation.None="Немає"
89
+AMF.H264.MotionEstimation.Half="Пів-пікселя"
90
+AMF.H264.MotionEstimation.Quarter="Чверть-пікселя"
91
+AMF.H264.MotionEstimation.Both="Пів-пікселя та Чверть-пікселя"
92
+AMF.H264.Device="Пристрій"
93
+AMF.H264.Device.Description="Визначає Пристрій що буде використано у кодуванні.\nПотребує встановити параметр Пам'ять адресується у значення відмінне від 'Host'."
94
+AMF.H264.UseOpenCL="Використовувати OpenCL"
95
+AMF.H264.UseOpenCL.Description="Чи буде енкодер використовувати OpenCL щоб надсилати кожен окремий кадр?"
96
+AMF.H264.View="Вид для налаштувань"
97
+AMF.H264.View.Description="Визначає кількість наявних опцій для налаштування. Навряд чи розробник вам допомагатиме, якщо ви оберете рівень 'Експерт' або 'Бог енкодерів'."
98
+AMF.H264.View.Basic="Базовий"
99
+AMF.H264.View.Advanced="Розширений"
100
+AMF.H264.View.Expert="Експерт"
101
+AMF.H264.View.Master="Бог енкодерів"
102
+AMF.H264.UnlockProperties="Розширити ввод параметрів"
103
+AMF.H264.UnlockProperties.Description="Дозволяє вводити деякі параметри у їх необробленому виді, тобто без\nперерахунків на Кбайтність/Кбітність та без деяких обмежень."
104
+AMF.H264.Debug="Відладка"
105
+AMF.H264.Debug.Description="Вмикає занесення до лог-файлу додаткової інформації про процес кодування. Корисно у випадку коли ви бажаєте звернутися за допомогою до розробника енкодера."
106
+AMF.Util.Default="За замовчанням"
107
+AMF.Util.Automatic="Автоматично"
108
+AMF.Util.Manual="Вручну"
109
+AMF.Util.Toggle.Disabled="Вимкнено"
110
+AMF.Util.Toggle.Enabled="Увімкнено"
111
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/vi-VN.ini
Added
62
1
2
+AMF.H264.Preset="Mẫu thiết lập"
3
+AMF.H264.Preset.Recording="Quay video"
4
+AMF.H264.Preset.HighQuality="Chất lượng cao"
5
+AMF.H264.Preset.Indistinguishable="Không thể phân biệt"
6
+AMF.H264.Preset.Lossless="Lossless"
7
+AMF.H264.Preset.Twitch="Twitch"
8
+AMF.H264.Preset.YouTube="YouTube"
9
+AMF.H264.Usage.Transcoding="Chuyển mã"
10
+AMF.H264.Usage.UltraLowLatency="Độ trễ cực thấp"
11
+AMF.H264.Usage.LowLatency="Độ trễ thấp"
12
+AMF.H264.QualityPreset="Quality Preset"
13
+AMF.H264.QualityPreset.Speed="Tốc độ"
14
+AMF.H264.QualityPreset.Balanced="Cân bằng"
15
+AMF.H264.QualityPreset.Quality="Chất lượng"
16
+AMF.H264.Profile="Profile"
17
+AMF.H264.ProfileLevel="Profile Level"
18
+AMF.H264.MaximumLTRFrames="LTR Frames tối đa"
19
+AMF.H264.ScanType="Quét hình loại"
20
+AMF.H264.ScanType.Progressive="Quét nguyên ảnh (Progressive)"
21
+AMF.H264.ScanType.Interlaced="Quét 1/2 ảnh (Interlaced)"
22
+AMF.H264.RateControlMethod="Cách kiểm soát Bitrate"
23
+AMF.H264.RateControlMethod.CQP="QP Không thay đổi (CQP)"
24
+AMF.H264.RateControlMethod.CBR="Bitrate Không thay đổi (CBR)"
25
+AMF.H264.RateControlMethod.VBR.Peak="Bitrate Thay đổi được (Phụ thuộc vào Bitrate Cao nhất) (VBR)"
26
+AMF.H264.RateControlMethod.VBR.Latency="Bitrate Thay đổi được (Phụ thuộc vào độ trễ) (VBR_LAT)"
27
+AMF.H264.Bitrate.Target="Bitrate Mục tiêu"
28
+AMF.H264.Bitrate.Peak="Bitrate Cao nhất"
29
+AMF.H264.QP.Minimum="QP Thấp nhất"
30
+AMF.H264.QP.Maximum="QP Cao nhất"
31
+AMF.H264.QP.IFrame="I-Frame QP"
32
+AMF.H264.QP.PFrame="P-Frame QP"
33
+AMF.H264.QP.BFrame="B-Frame QP"
34
+AMF.H264.QP.BPictureDelta="B-Picture Delta QP"
35
+AMF.H264.QP.ReferenceBPictureDelta="Reference B-Picture Delta QP"
36
+AMF.H264.FillerData="Filler Data (Thêm data cho đủ bitrate)"
37
+AMF.H264.FrameSkipping="Frame Skipping"
38
+AMF.H264.EnforceHRDCompatibility="Enforce HRD Compatibility"
39
+AMF.H264.KeyframeInterval="Thời gian đặt keyframe"
40
+AMF.H264.BPicture.Pattern="B-Picture Pattern"
41
+AMF.H264.BPicture.Reference="B-Picture Reference"
42
+AMF.H264.DeblockingFilter="De-blocking Filter (Lọc chống nhiễu ảnh)"
43
+AMF.H264.SlicesPerFrame="Lát cho mỗi khung hình"
44
+AMF.H264.MotionEstimation="Dự đoán bù trừ chuyển động"
45
+AMF.H264.MotionEstimation.Description="Dự toán chuyển động cho phép bộ mã hóa giảm bitrate cần thiết bằng cách ước tính một pixel sẽ đi đâu."
46
+AMF.H264.MotionEstimation.None="Không"
47
+AMF.H264.MotionEstimation.Half="1/2 Pixel"
48
+AMF.H264.MotionEstimation.Quarter="1/4 Pixel"
49
+AMF.H264.MotionEstimation.Both="1/2 và 1/4 Pixel"
50
+AMF.H264.View="Chế độ xem"
51
+AMF.H264.View.Basic="Cơ bản"
52
+AMF.H264.View.Advanced="Nâng cao"
53
+AMF.H264.View.Expert="Chuyên gia"
54
+AMF.H264.View.Master="Bật cả tính năng ẩn"
55
+AMF.H264.UnlockProperties="Mở khóa Properties"
56
+AMF.H264.Debug="Gỡ lỗi"
57
+AMF.Util.Default="Mặc định"
58
+AMF.Util.Automatic="Tự động"
59
+AMF.Util.Manual="Thủ công"
60
+AMF.Util.Toggle.Disabled="Tắt"
61
+AMF.Util.Toggle.Enabled="Bật"
62
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/zh-CN.ini
Added
111
1
2
+AMF.H264.Preset="预设"
3
+AMF.H264.Preset.ResetToDefaults="重置为默认值"
4
+AMF.H264.Preset.Recording="录像"
5
+AMF.H264.Preset.HighQuality="高质量"
6
+AMF.H264.Preset.Indistinguishable="无法区分"
7
+AMF.H264.Preset.Lossless="无损"
8
+AMF.H264.Preset.Twitch="Twitch"
9
+AMF.H264.Preset.YouTube="YouTube"
10
+AMF.H264.Usage="使用"
11
+AMF.H264.Usage.Description="AMF 应调整为什么用法:\n-'转码' 是通用转码(推荐), \n '超低延迟' 对于真的低延迟编码,\n-'低延迟' 类似于上面稍高的延迟.\n 推流仅支持 '转码', 所有其他值可以用于录制."
12
+AMF.H264.Usage.Transcoding="转码"
13
+AMF.H264.Usage.UltraLowLatency="超低延迟"
14
+AMF.H264.Usage.LowLatency="低延迟"
15
+AMF.H264.QualityPreset="质量预设"
16
+AMF.H264.QualityPreset.Description="哪种质量预设 AMF 应该尝试对于目标:\n-'速度' 是最快但有最差的质量,\n-'平衡' 是 '速度' 和 '质量' 之间, 提供一个两者之间的较好的平衡,\n-'质量' 给出了最好的质量对于给定的比特率."
17
+AMF.H264.QualityPreset.Speed="速度"
18
+AMF.H264.QualityPreset.Balanced="平衡"
19
+AMF.H264.QualityPreset.Quality="质量"
20
+AMF.H264.Profile="配置文件"
21
+AMF.H264.Profile.Description="H.264的编码选项有:\n-'Baseline' 支持的平台最广,\n-'Main' 支持较老的设备(如果使用的平台是手机,推荐使用),\n-'High' 被当下的设备支持(推荐使用)。"
22
+AMF.H264.ProfileLevel="配置等级"
23
+AMF.H264.ProfileLevel.Description="对于编码使用哪种 H.264 Profile Level:\n-'Automatic' 根据给定的帧率和帧大小计算最优的 profile level,\n-'4.1' 支持 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS\n-'4.2' 支持 1920x1080 60FPS, 1280x720 120FPS, 960x540 172FPS\n-'5.0' 支持 1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS\n-'5.1' 支持 3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS\n-'5.2' 支持 3840x2160 60FPS, 1920x1080 172FPS, 1280x720 172FPS, 960x540 172FPS"
24
+AMF.H264.MaximumLTRFrames="最大的 LTR 帧"
25
+AMF.H264.MaximumLTRFrames.Description="长期参考帧(LTR) 是一个特性允许编码器来标记在一个序列的一些帧作为参考帧.\n这会使当 B 帧不支持或者不需要时提高质量.\nLTR真不能和 B 帧一起使用, 并且当使用LTR时, 编码器会禁用 B 帧."
26
+AMF.H264.ScanType="扫描类型"
27
+AMF.H264.ScanType.Description="使用哪种扫描方法, 通常设置为'Progressive'."
28
+AMF.H264.ScanType.Progressive="渐进"
29
+AMF.H264.ScanType.Interlaced="交错"
30
+AMF.H264.RateControlMethod="速率控制方法"
31
+AMF.H264.RateControlMethod.Description="该使用什么调节码率的方法:\n- '\@AMF.H264.RateControlMethod.CQP\@' assigns fixed I-/P-/B-Frame QP (Quantization Parameter) values,\n- '\@AMF.H264.RateControlMethod.CBR\@' stays at the given Target Bitrate (using Filler Data) (推荐推流使用),\n- '\@AMF.H264.RateControlMethod.VBR\@' stays below the given Peak Bitrate,\n- '\@AMF.H264.RateControlMethod.VBR_LAT\@' stays close to the Target Bitrate if GPU latency and load allow for it, otherwise will use higher bitrate (推荐录像使用)."
32
+AMF.H264.RateControlMethod.CQP="恒定 QP (CQP)"
33
+AMF.H264.RateControlMethod.CBR="固定比特率 (CBR)"
34
+AMF.H264.RateControlMethod.VBR.Peak="变比特率 (峰值约束) (VBR)"
35
+AMF.H264.RateControlMethod.VBR.Latency="变比特率 (延迟约束) (VBR_LAT)"
36
+AMF.H264.Bitrate.Target="目标比特率"
37
+AMF.H264.Bitrate.Target.Description="尝试在这个序列中获取的比特率."
38
+AMF.H264.Bitrate.Peak="峰值比特率"
39
+AMF.H264.Bitrate.Peak.Description="尝试在这个序列中获取的峰值比特率."
40
+AMF.H264.QP.Minimum="最低 QP"
41
+AMF.H264.QP.Minimum.Description="一帧中最低 QP (量化参数) 值"
42
+AMF.H264.QP.Maximum="最高 QP"
43
+AMF.H264.QP.Maximum.Description="一帧中最高 QP (量化参数) 值"
44
+AMF.H264.QP.IFrame="I 帧 QP"
45
+AMF.H264.QP.IFrame.Description="用于 I 帧的固定 QP (量化参数) 值.\nI帧 QP值应该大于等于 P B 帧的 QP 值."
46
+AMF.H264.QP.PFrame="P 帧 QP"
47
+AMF.H264.QP.PFrame.Description="用于 P 帧的固定 QP (量化参数) 值.\nP帧 QP值应该大于等于 B 帧的 QP 值."
48
+AMF.H264.QP.BFrame="B 帧 QP"
49
+AMF.H264.QP.BFrame.Description="用于 B 帧的固定 QP (量化参数) 值."
50
+AMF.H264.QP.BPictureDelta="B 图片 差值 QP"
51
+AMF.H264.QP.BPictureDelta.Description="相对于上一个非参考 B 帧的差值 QP 值."
52
+AMF.H264.QP.ReferenceBPictureDelta="参考 B 图片 差值 QP"
53
+AMF.H264.QP.ReferenceBPictureDelta.Description="相对于上一个参考 B 帧的差值 QP 值."
54
+AMF.H264.VBVBuffer="VBV 缓存"
55
+AMF.H264.VBVBuffer.Description="应使用什么方法来确定 VBV 缓冲区大小:\n-'自动' 计算使用严格约束的大小,\n- '手册' 允许用户控制大小.\nVBV缓存 (视频缓冲程序验证程序) 用于某些率控制方法来保持整体的比特率在给定的约束内."
56
+AMF.H264.VBVBuffer.Strictness="VBV 缓存规范性"
57
+AMF.H264.VBVBuffer.Strictness.Description="VBV 缓存应该怎样严格, 100% 几乎完全和目标比特率一致和 0% 不受限制的."
58
+AMF.H264.VBVBuffer.Size="VBV 缓存大小"
59
+AMF.H264.VBVBuffer.Size.Description="VBV 缓存大小用于在一个序列中的比特率控制.\n小缓存会导致几乎完美的比特率控制但有较大的性能影响."
60
+AMF.H264.VBVBuffer.Fullness="VBV 缓冲满"
61
+AMF.H264.VBVBuffer.Fullness.Description="VBV 缓存最初应该多满, 将只会影响最初的序列的编码."
62
+AMF.H264.FillerData="填充数据"
63
+AMF.H264.FillerData.Description="启用填充数据允许编码器至少保持目标比特率, 通过填满空信息序列中的剩余空间."
64
+AMF.H264.FrameSkipping="跳过的帧"
65
+AMF.H264.FrameSkipping.Description="跳过的帧允许编码器下丢帧, 以满足目标比特率要求.\n当编码器丢帧时, 它反而插入一个重复最后一帧的 NAL 到流中.\n可以帮助非常低的目标比特率."
66
+AMF.H264.EnforceHRDCompatibility="强制 HRD 兼容"
67
+AMF.H264.EnforceHRDCompatibility.Description="强制假设的参考解码器限制在一个帧内的最大的 QP 值更改.\n不推荐用于录制或推流, 并且应仅用于面向只有参考软件解码器的很老的设备."
68
+AMF.H264.MaximumAccessUnitSize="最大访问单元大小"
69
+AMF.H264.MaximumAccessUnitSize.Description="一个 NAL 的访问单元的最大大小. 值 0 允许编码器挑选最好的一个."
70
+AMF.H264.KeyframeInterval="关键帧间隔"
71
+AMF.H264.KeyframeInterval.Description="非丢弃帧之间应该多少秒.\n也控制序列(GOP) 的大小."
72
+AMF.H264.IDRPeriod="IDR 周期"
73
+AMF.H264.IDRPeriod.Description="定义的帧内瞬时解码刷新 (IDR) 的距离. 也控制 GOP 序列长度."
74
+AMF.H264.HeaderInsertionSpacing="头部插入空白"
75
+AMF.H264.HeaderInsertionSpacing.Description="NAL 头之间应该多少帧. 不推荐改为非零(自动) 值."
76
+AMF.H264.BPicture.Pattern="B 图片模式"
77
+AMF.H264.BPicture.Pattern.Description="应该允许编码多少 B 帧, 对质量有好处和对性能有坏处.\n第二代和第三代 VCE 卡支持."
78
+AMF.H264.BPicture.Reference="B 图片参考"
79
+AMF.H264.BPicture.Reference.Description="允许 B 帧参考 P 帧和 I 帧之外的其他 B 帧.\n 巨大的性能影响, 较小的质量提高."
80
+AMF.H264.DeblockingFilter="去块滤波"
81
+AMF.H264.DeblockingFilter.Description="设置解码器允许使用的标记, 用于编码流去块滤波器."
82
+AMF.H264.SlicesPerFrame="每帧的切片数"
83
+AMF.H264.SlicesPerFrame.Description="每个帧应该和多少 I 帧切片一起存储?\n0 值让编码器运行时决定.\n内部刷新编码用于更快的回放和定位."
84
+AMF.H264.IntraRefreshNumMBsPerSlot="每个槽的内部宏块刷新数量"
85
+AMF.H264.IntraRefreshNumMBsPerSlot.Description="每个槽应该和多少宏块一起存储?\n0 值让编码器在运行时决定.\n帧内刷新编码用于更快的回放和定位."
86
+AMF.H264.MotionEstimation="移动侦测"
87
+AMF.H264.MotionEstimation.Description="运动侦测允许编码器通过估计一个像素去了哪里来降低比特率."
88
+AMF.H264.MotionEstimation.None="无"
89
+AMF.H264.MotionEstimation.Half="半像素"
90
+AMF.H264.MotionEstimation.Quarter="四分之一像素"
91
+AMF.H264.MotionEstimation.Both="半&四分之一像素"
92
+AMF.H264.Device="设备"
93
+AMF.H264.Device.Description="哪个设备用来编码.\n需要内存类型不能设置为'主机'."
94
+AMF.H264.UseOpenCL="使用 OpenCL"
95
+AMF.H264.UseOpenCL.Description="编码器应该使用 OpenCL 提交单独的帧吗?"
96
+AMF.H264.View="查看模式"
97
+AMF.H264.View.Description="哪些属性应该是可见的. 当使用 '专家' 或者 '大师' 模式时, 您将不会得到支持."
98
+AMF.H264.View.Basic="基本"
99
+AMF.H264.View.Advanced="高级"
100
+AMF.H264.View.Expert="专家"
101
+AMF.H264.View.Master="主"
102
+AMF.H264.UnlockProperties="解锁属性"
103
+AMF.H264.UnlockProperties.Description="解锁给他们完整范围的某些属性, 而不是将他们局限到一定范围内."
104
+AMF.H264.Debug="调试"
105
+AMF.H264.Debug.Description="启用附加调试日志记录, 应该是启用的, 无论何时您需要此编码器的支持."
106
+AMF.Util.Default="默认"
107
+AMF.Util.Automatic="自动"
108
+AMF.Util.Manual="手动"
109
+AMF.Util.Toggle.Disabled="禁用"
110
+AMF.Util.Toggle.Enabled="启用"
111
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Resources/locale/zh-TW.ini
Added
88
1
2
+AMF.H264.Preset="預設"
3
+AMF.H264.Preset.ResetToDefaults="重設為預設值"
4
+AMF.H264.Preset.Recording="錄影"
5
+AMF.H264.Preset.HighQuality="高品質"
6
+AMF.H264.Preset.Indistinguishable="無法區分"
7
+AMF.H264.Preset.Lossless="無損"
8
+AMF.H264.Preset.Twitch="Twitch"
9
+AMF.H264.Preset.YouTube="YouTube"
10
+AMF.H264.Usage="用法"
11
+AMF.H264.Usage.Description="根據用途 AMF 應調整為︰ \n- '\@AMF.H264.Usage.Transcoding\@' 是通用轉碼 (推薦),\n- '\@AMF.H264.Usage.UltraLowLatency\@' 是為了真的非常低延遲的編碼,\n- '\@AMF.H264.Usage.LowLatency\@'是類似於上面但延遲稍高。 \n串流僅支援'\@AMF.H264.Usage.Transcoding\@',其他值可以用於錄影。"
12
+AMF.H264.Usage.Transcoding="轉碼"
13
+AMF.H264.Usage.UltraLowLatency="超低延遲"
14
+AMF.H264.Usage.LowLatency="低延遲"
15
+AMF.H264.QualityPreset="預設品質"
16
+AMF.H264.QualityPreset.Speed="速度"
17
+AMF.H264.QualityPreset.Balanced="平衡"
18
+AMF.H264.QualityPreset.Quality="品質"
19
+AMF.H264.Profile="設定檔"
20
+AMF.H264.Profile.Description="用於編碼的 H.264 設定:\n- 'Baseline' 有最廣泛的平台支援度,\n- 'Main' 較舊的裝置也支援 (如果目標是行動裝置,建議選此),\n- 'High' 當前主流裝置支援 (建議選此)。"
21
+AMF.H264.ProfileLevel="設定檔級別"
22
+AMF.H264.ProfileLevel.Description="用於編碼的 H.264 設定等級:\n- '\@AMF.Util.Automatic\@'根據給定的畫面播放速率以及尺寸計算最佳的設定等級,\n- '4.1'支援 1920x1080 30FPS, 1280x720 60FPS, 960x540 90FPS\n- '4.2'支援 1920x1080 60FPS, 1280x720 120FPS, 960x540 172FPS\n- '5.0'支援 1920x1080 60FPS, 1280x720 144FPS, 960x540 172FPS\n- '5.1'支援3840x2160 30FPS, 1920x1080 120FPS, 1280x720 172FPS, 960x540 172FPS\n- '5.2'支援3840x2160 60FPS, 1920x1080 172FPS, 1280x720 172FPS, 960x540 172FPS"
23
+AMF.H264.MaximumLTRFrames="長期參照訊框(LTR)最大數量"
24
+AMF.H264.MaximumLTRFrames.Description="當指定了長期參照訊框(LTR)最大數量時,編碼器將會停用 B-Picture。"
25
+AMF.H264.ScanType="掃描類型"
26
+AMF.H264.ScanType.Progressive="漸進式"
27
+AMF.H264.ScanType.Interlaced="交错式"
28
+AMF.H264.RateControlMethod="速率控制方法"
29
+AMF.H264.RateControlMethod.Description="該使用什麼位元速率控制方法:\n- '\@AMF.H264.RateControlMethod.CQP\@' 指定固定的 I-/P-/B-訊框 QP (量化參數)值,\n- '\@AMF.H264.RateControlMethod.CBR\@' 固定在給定的目標位元速率 (藉由填塞空白資料)(建議用於串流),\n- '\@AMF.H264.RateControlMethod.VBR\@' 保持低於給定的位元速率最大值,\n- '\@AMF.H264.RateControlMethod.VBR_LAT\@' 在 GPU 延遲跟負載允許的情況下盡量接近目標位元速率,不足時使用較高的位元速率(建議用於錄影)。"
30
+AMF.H264.RateControlMethod.CQP="固定 QP (CQP)"
31
+AMF.H264.RateControlMethod.CBR="固定位元率 (CBR)"
32
+AMF.H264.RateControlMethod.VBR.Peak="可變位元率 (限制最大位元率) (VBR)"
33
+AMF.H264.RateControlMethod.VBR.Latency="可變位元率 (限制延遲) (VBR)"
34
+AMF.H264.Bitrate.Target="目標位元率"
35
+AMF.H264.Bitrate.Target.Description="在整體過程中嘗試達成的位元速率。"
36
+AMF.H264.Bitrate.Peak="最大位元率"
37
+AMF.H264.Bitrate.Peak.Description="在整體過程中嘗試不超過的位元速率。"
38
+AMF.H264.QP.Minimum="最低 QP 值"
39
+AMF.H264.QP.Minimum.Description="一個訊框中使用的最低 QP (量化參數) 值。"
40
+AMF.H264.QP.Maximum="最大 QP 值"
41
+AMF.H264.QP.Maximum.Description="一個訊框中使用的最高 QP (量化參數) 值。"
42
+AMF.H264.QP.IFrame="I-訊框 QP"
43
+AMF.H264.QP.IFrame.Description="I-訊框使用的固定 QP (量化參數) 值。\nI-訊框 QP 應該要跟 P/B-訊框 QP 一樣或更高。"
44
+AMF.H264.QP.PFrame="P-訊框 QP"
45
+AMF.H264.QP.PFrame.Description="P-訊框使用的固定 QP (量化參數) 值。\nP-訊框 QP 應該要跟 B-訊框 QP 一樣或更高。"
46
+AMF.H264.QP.BFrame="B-訊框 QP"
47
+AMF.H264.QP.BFrame.Description="B-訊框使用的固定 QP (量化參數) 值。"
48
+AMF.H264.QP.BPictureDelta="B-Picture Delta QP"
49
+AMF.H264.QP.BPictureDelta.Description="最後一個非參考 B-Picture 所使用的 Delta QP。"
50
+AMF.H264.QP.ReferenceBPictureDelta="Reference B-Picture Delta QP"
51
+AMF.H264.QP.ReferenceBPictureDelta.Description="最後一個參考 B-Picture 所使用的 Delta QP。"
52
+AMF.H264.VBVBuffer="VBV(Video Buffering Verifier) 緩衝區"
53
+AMF.H264.VBVBuffer.Description="決定 VBV 緩衝區大小的方法:\n- '\@AMF.Util.Automatic\@' 根據嚴格性計算大小,\n- '\@AMF.Util.Manual\@' 允許使用者調整大小。\n 某些速率控制方法會使用 VBV (Video Buffering Verifier) 緩衝區讓整體的位元速率保持在給定的條件之內。"
54
+AMF.H264.VBVBuffer.Strictness="VBV 緩衝區嚴格性"
55
+AMF.H264.VBVBuffer.Strictness.Description="VBV 緩衝區嚴格程度,100% 表示幾乎跟目標位元速率一樣,0% 則不受限制。"
56
+AMF.H264.VBVBuffer.Size="VBV 緩衝區大小"
57
+AMF.H264.VBVBuffer.Size.Description="用於位元流量控制的 VBV 緩衝區大小。\n一個極小值將會得到近乎完美的位元速率結果,但是會有較大的效能消耗。"
58
+AMF.H264.VBVBuffer.Fullness="初始 VBV 緩衝區填充度"
59
+AMF.H264.VBVBuffer.Fullness.Description="VBV 緩衝區起始該多滿,將只影響編碼的起始。"
60
+AMF.H264.FillerData="填塞空白資料"
61
+AMF.H264.FillerData.Description="啟用填塞空白資料允許編碼器保持位元速率至少有目標位元速率,編碼器將會將不足的位元用空白訊息填滿"
62
+AMF.H264.FrameSkipping="省略訊框"
63
+AMF.H264.EnforceHRDCompatibility="與 HRD 相容"
64
+AMF.H264.BPicture.Pattern="B-Picture 模式"
65
+AMF.H264.BPicture.Reference="B-Picture 參照"
66
+AMF.H264.DeblockingFilter="去塊狀色斑濾鏡"
67
+AMF.H264.MotionEstimation="動態估算"
68
+AMF.H264.MotionEstimation.Description="動態估算讓編碼器藉由估算像素移動來減少位元速率。"
69
+AMF.H264.MotionEstimation.None="無"
70
+AMF.H264.MotionEstimation.Half="半像素"
71
+AMF.H264.MotionEstimation.Quarter="四分之一像素"
72
+AMF.H264.MotionEstimation.Both="半 & 四分之一像素"
73
+AMF.H264.View="檢視模式"
74
+AMF.H264.View.Description="該顯示哪些屬性?\n使用'\@AMF.H264.View.Master\@'時將不提供任何的支援。"
75
+AMF.H264.View.Basic="基本"
76
+AMF.H264.View.Advanced="進階"
77
+AMF.H264.View.Expert="專家"
78
+AMF.H264.View.Master="上帝模式"
79
+AMF.H264.UnlockProperties="解除屬性值限制"
80
+AMF.H264.UnlockProperties.Description="允許一些屬性的數值範圍為全部可行的範圍,而非限定在一定的範圍內。"
81
+AMF.H264.Debug="除錯模式"
82
+AMF.H264.Debug.Description="啟用額外的除錯紀錄,當需要任何關於此編碼器的支援時皆應啟用。"
83
+AMF.Util.Default="預設"
84
+AMF.Util.Automatic="自動"
85
+AMF.Util.Manual="手動"
86
+AMF.Util.Toggle.Disabled="停用"
87
+AMF.Util.Toggle.Enabled="啟用"
88
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Source
Added
2
1
+(directory)
2
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Source/amd-amf-vce-capabilities.cpp
Added
201
1
2
+/*
3
+MIT License
4
+
5
+Copyright (c) 2016 Michael Fabian Dirks
6
+
7
+Permission is hereby granted, free of charge, to any person obtaining a copy
8
+of this software and associated documentation files (the "Software"), to deal
9
+in the Software without restriction, including without limitation the rights
10
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+copies of the Software, and to permit persons to whom the Software is
12
+furnished to do so, subject to the following conditions:
13
+
14
+The above copyright notice and this permission notice shall be included in all
15
+copies or substantial portions of the Software.
16
+
17
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+SOFTWARE.
24
+*/
25
+
26
+#pragma once
27
+
28
+//////////////////////////////////////////////////////////////////////////
29
+// Includes
30
+//////////////////////////////////////////////////////////////////////////
31
+#include <string>
32
+#include <sstream>
33
+
34
+#ifdef _WIN32
35
+#include <windows.h>
36
+#include <VersionHelpers.h>
37
+#endif
38
+
39
+#include "amd-amf-vce-capabilities.h"
40
+#include "api-d3d11.h"
41
+#include "api-d3d9.h"
42
+#include "misc-util.cpp"
43
+
44
+//////////////////////////////////////////////////////////////////////////
45
+// Code
46
+//////////////////////////////////////////////////////////////////////////
47
+
48
+std::shared_ptr<Plugin::AMD::VCECapabilities> Plugin::AMD::VCECapabilities::GetInstance() {
49
+ static std::shared_ptr<VCECapabilities> __instance = std::make_shared<VCECapabilities>();
50
+ static std::mutex __mutex;
51
+
52
+ const std::lock_guard<std::mutex> lock(__mutex);
53
+ return __instance;
54
+}
55
+
56
+void Plugin::AMD::VCECapabilities::ReportCapabilities() {
57
+ auto inst = GetInstance();
58
+
59
+ auto devs = inst->GetDevices();
60
+ for (auto dev : devs) {
61
+ ReportDeviceCapabilities(dev);
62
+ }
63
+}
64
+
65
+void Plugin::AMD::VCECapabilities::ReportDeviceCapabilities(Plugin::API::Device device) {
66
+ auto inst = GetInstance();
67
+
68
+ AMF_LOG_INFO("Capabilities for Device '%s':", device.Name.c_str());
69
+
70
+ VCEEncoderType types[] = { VCEEncoderType_AVC, VCEEncoderType_SVC };
71
+ for (VCEEncoderType type : types) {
72
+ auto caps = inst->GetDeviceCaps(device, type);
73
+
74
+ AMF_LOG_INFO(" %s (Acceleration: %s)",
75
+ (type == VCEEncoderType_AVC ? "AVC" : (type == VCEEncoderType_SVC ? "SVC" : (type == VCEEncoderType_HEVC ? "HEVC" : "Unknown"))),
76
+ (caps.acceleration_type == amf::AMF_ACCEL_SOFTWARE ? "Software" : (caps.acceleration_type == amf::AMF_ACCEL_GPU ? "GPU" : (caps.acceleration_type == amf::AMF_ACCEL_HARDWARE ? "Hardware" : "None")))
77
+ );
78
+
79
+ if (caps.acceleration_type == amf::AMF_ACCEL_NOT_SUPPORTED)
80
+ continue;
81
+
82
+ AMF_LOG_INFO(" Limits");
83
+ AMF_LOG_INFO(" # of Streams: %ld", caps.maxNumOfStreams);
84
+ AMF_LOG_INFO(" # of Instances: %ld", caps.maxNumOfHwInstances);
85
+ AMF_LOG_INFO(" Profile: %s", Plugin::Utility::ProfileAsString((VCEProfile)caps.maxProfile));
86
+ AMF_LOG_INFO(" Level: %ld.%ld", caps.maxProfileLevel / 10, caps.maxProfileLevel % 10);
87
+ AMF_LOG_INFO(" Bitrate: %ld", caps.maxBitrate);
88
+ AMF_LOG_INFO(" Temporal Layers: %ld", caps.maxTemporalLayers);
89
+ AMF_LOG_INFO(" Reference Frames: %ld (min) - %ld (max)", caps.minReferenceFrames, caps.maxReferenceFrames);
90
+ AMF_LOG_INFO(" Features")
91
+ AMF_LOG_INFO(" B-Frames: %s", caps.supportsBFrames ? "Supported" : "Not Supported");
92
+ AMF_LOG_INFO(" Fixed Slice Mode: %s", caps.supportsFixedSliceMode ? "Supported" : "Not Supported");
93
+ AMF_LOG_INFO(" Input");
94
+ ReportDeviceIOCapabilities(device, type, false);
95
+ AMF_LOG_INFO(" Output");
96
+ ReportDeviceIOCapabilities(device, type, true);
97
+ }
98
+}
99
+
100
+void Plugin::AMD::VCECapabilities::ReportDeviceIOCapabilities(Plugin::API::Device device, VCEEncoderType type, bool output) {
101
+ auto amf = Plugin::AMD::AMF::GetInstance();
102
+ auto inst = GetInstance();
103
+ auto ioCaps = inst->GetDeviceIOCaps(device, type, output);
104
+ AMF_LOG_INFO(" Resolution: %ldx%ld - %ldx%ld",
105
+ ioCaps.minWidth, ioCaps.minHeight,
106
+ ioCaps.maxWidth, ioCaps.maxHeight);
107
+ AMF_LOG_INFO(" Vertical Alignment: %ld", ioCaps.verticalAlignment);
108
+ AMF_LOG_INFO(" Interlaced: %s", ioCaps.isInterlacedSupported ? "Supported" : "Not Supported");
109
+ std::stringstream formatstr;
110
+ for (auto format : ioCaps.formats) {
111
+ std::vector<char> buf(1024);
112
+ wcstombs(buf.data(), amf->GetTrace()->SurfaceGetFormatName(format.first), 1024);
113
+ formatstr
114
+ << buf.data()
115
+ << (format.second ? " (Native)" : "")
116
+ << ", ";
117
+ }
118
+ AMF_LOG_INFO(" Formats: %s", formatstr.str().c_str());
119
+ std::stringstream memorystr;
120
+ for (auto memory : ioCaps.memoryTypes) {
121
+ std::vector<char> buf(1024);
122
+ wcstombs(buf.data(), amf->GetTrace()->GetMemoryTypeName(memory.first), 1024);
123
+ memorystr
124
+ << buf.data()
125
+ << (memory.second ? " (Native)" : "")
126
+ << ", ";
127
+ }
128
+ AMF_LOG_INFO(" Memory Types: %s", memorystr.str().c_str());
129
+}
130
+
131
+Plugin::AMD::VCECapabilities::VCECapabilities() {
132
+ this->Refresh();
133
+}
134
+
135
+Plugin::AMD::VCECapabilities::~VCECapabilities() {}
136
+
137
+static AMF_RESULT GetIOCapability(bool output, amf::AMFCapsPtr amfCaps, Plugin::AMD::VCEDeviceCapabilities::IOCaps* caps) {
138
+ AMF_RESULT res = AMF_OK;
139
+ amf::AMFIOCapsPtr amfIOCaps;
140
+ if (output)
141
+ res = amfCaps->GetOutputCaps(&amfIOCaps);
142
+ else
143
+ res = amfCaps->GetInputCaps(&amfIOCaps);
144
+ if (res != AMF_OK)
145
+ return res;
146
+
147
+ amfIOCaps->GetWidthRange(&(caps->minWidth), &(caps->maxWidth));
148
+ amfIOCaps->GetHeightRange(&(caps->minHeight), &(caps->maxHeight));
149
+ caps->isInterlacedSupported = amfIOCaps->IsInterlacedSupported();
150
+ caps->verticalAlignment = amfIOCaps->GetVertAlign();
151
+
152
+ int32_t numFormats = amfIOCaps->GetNumOfFormats();
153
+ caps->formats.resize(numFormats);
154
+ for (int32_t formatIndex = 0; formatIndex < numFormats; formatIndex++) {
155
+ amf::AMF_SURFACE_FORMAT format = amf::AMF_SURFACE_UNKNOWN;
156
+ bool isNative = false;
157
+
158
+ amfIOCaps->GetFormatAt(formatIndex, &format, &isNative);
159
+ caps->formats[formatIndex].first = format;
160
+ caps->formats[formatIndex].second = isNative;
161
+ }
162
+
163
+ int32_t numMemoryTypes = amfIOCaps->GetNumOfMemoryTypes();
164
+ caps->memoryTypes.resize(numMemoryTypes);
165
+ for (int32_t memoryTypeIndex = 0; memoryTypeIndex < numMemoryTypes; memoryTypeIndex++) {
166
+ amf::AMF_MEMORY_TYPE type = amf::AMF_MEMORY_UNKNOWN;
167
+ bool isNative = false;
168
+
169
+ amfIOCaps->GetMemoryTypeAt(memoryTypeIndex, &type, &isNative);
170
+ caps->memoryTypes[memoryTypeIndex].first = type;
171
+ caps->memoryTypes[memoryTypeIndex].second = isNative;
172
+ }
173
+
174
+ return AMF_OK;
175
+}
176
+
177
+bool Plugin::AMD::VCECapabilities::Refresh() {
178
+ AMF_RESULT res;
179
+
180
+ // Build a list of Devices
181
+ #ifdef _WIN32
182
+ if (IsWindows8OrGreater()) {
183
+ devices = Plugin::API::Direct3D11::EnumerateDevices();
184
+ } else if (IsWindowsXPOrGreater()) {
185
+ devices = Plugin::API::Direct3D9::EnumerateDevices();
186
+ } else
187
+ #endif
188
+ { // OpenGL
189
+ //devices = Plugin::API::OpenGL::EnumerateDevices();
190
+ }
191
+ //devices.insert(devices.begin(), Plugin::API::Device());
192
+
193
+ // Query Information for each Device
194
+ std::shared_ptr<AMD::AMF> amfInstance = AMD::AMF::GetInstance();
195
+ amf::AMFFactory* amfFactory = amfInstance->GetFactory();
196
+ for (Plugin::API::Device device : devices) {
197
+ amf::AMFContextPtr amfContext;
198
+ res = amfFactory->CreateContext(&amfContext);
199
+ if (res != AMF_OK) {
200
+ AMF_LOG_ERROR("Unable to gather capabilities for device '%s', error %ls (code %d).",
201
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Source/amd-amf-vce.cpp
Added
201
1
2
+/*
3
+MIT License
4
+
5
+Copyright (c) 2016 Michael Fabian Dirks
6
+
7
+Permission is hereby granted, free of charge, to any person obtaining a copy
8
+of this software and associated documentation files (the "Software"), to deal
9
+in the Software without restriction, including without limitation the rights
10
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+copies of the Software, and to permit persons to whom the Software is
12
+furnished to do so, subject to the following conditions:
13
+
14
+The above copyright notice and this permission notice shall be included in all
15
+copies or substantial portions of the Software.
16
+
17
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+SOFTWARE.
24
+*/
25
+
26
+//////////////////////////////////////////////////////////////////////////
27
+// Includes
28
+//////////////////////////////////////////////////////////////////////////
29
+#include <chrono>
30
+
31
+#include "amd-amf-vce.h"
32
+#include "amd-amf-vce-capabilities.h"
33
+#include "misc-util.cpp"
34
+
35
+// AMF
36
+#include "components/VideoEncoderVCE.h"
37
+#include "components/VideoConverter.h"
38
+
39
+// Windows
40
+#ifdef _WIN32
41
+#include <windows.h>
42
+#include <VersionHelpers.h>
43
+
44
+#include "api-d3d9.h"
45
+#include "api-d3d11.h"
46
+#endif
47
+
48
+//////////////////////////////////////////////////////////////////////////
49
+// Code
50
+//////////////////////////////////////////////////////////////////////////
51
+
52
+// Logging and Exception Helpers
53
+static void FormatTextWithAMFError(std::vector<char>* buffer, const char* format, AMF_RESULT res) {
54
+ sprintf(buffer->data(), format, Plugin::AMD::AMF::GetInstance()->GetTrace()->GetResultText(res), res);
55
+}
56
+
57
+template<typename _T>
58
+static void FormatTextWithAMFError(std::vector<char>* buffer, const char* format, _T other, AMF_RESULT res) {
59
+ sprintf(buffer->data(), format, other, Plugin::AMD::AMF::GetInstance()->GetTrace()->GetResultText(res), res);
60
+}
61
+
62
+// Class
63
+void Plugin::AMD::VCEEncoder::InputThreadMain(Plugin::AMD::VCEEncoder* p_this) {
64
+ p_this->InputThreadLogic();
65
+}
66
+
67
+void Plugin::AMD::VCEEncoder::OutputThreadMain(Plugin::AMD::VCEEncoder* p_this) {
68
+ p_this->OutputThreadLogic();
69
+}
70
+
71
+static void fastPrintVariant(const char* text, amf::AMFVariantStruct variant) {
72
+ std::vector<char> buf(1024);
73
+ switch (variant.type) {
74
+ case amf::AMF_VARIANT_EMPTY:
75
+ sprintf(buf.data(), "%s%s", text, "Empty");
76
+ break;
77
+ case amf::AMF_VARIANT_BOOL:
78
+ sprintf(buf.data(), "%s%s", text, variant.boolValue ? "true" : "false");
79
+ break;
80
+ case amf::AMF_VARIANT_INT64:
81
+ sprintf(buf.data(), "%s%lld", text, variant.int64Value);
82
+ break;
83
+ case amf::AMF_VARIANT_DOUBLE:
84
+ sprintf(buf.data(), "%s%f", text, variant.doubleValue);
85
+ break;
86
+ case amf::AMF_VARIANT_RECT:
87
+ sprintf(buf.data(), "%s[%ld,%ld,%ld,%ld]", text,
88
+ variant.rectValue.top, variant.rectValue.left,
89
+ variant.rectValue.bottom, variant.rectValue.right);
90
+ break;
91
+ case amf::AMF_VARIANT_SIZE:
92
+ sprintf(buf.data(), "%s%ldx%ld", text,
93
+ variant.sizeValue.width, variant.sizeValue.height);
94
+ break;
95
+ case amf::AMF_VARIANT_POINT:
96
+ sprintf(buf.data(), "%s[%ld,%ld]", text,
97
+ variant.pointValue.x, variant.pointValue.y);
98
+ break;
99
+ case amf::AMF_VARIANT_RATE:
100
+ sprintf(buf.data(), "%s%ld/%ld", text,
101
+ variant.rateValue.num, variant.rateValue.den);
102
+ break;
103
+ case amf::AMF_VARIANT_RATIO:
104
+ sprintf(buf.data(), "%s%ld:%ld", text,
105
+ variant.ratioValue.num, variant.ratioValue.den);
106
+ break;
107
+ case amf::AMF_VARIANT_COLOR:
108
+ sprintf(buf.data(), "%s(%d,%d,%d,%d)", text,
109
+ variant.colorValue.r,
110
+ variant.colorValue.g,
111
+ variant.colorValue.b,
112
+ variant.colorValue.a);
113
+ break;
114
+ case amf::AMF_VARIANT_STRING:
115
+ sprintf(buf.data(), "%s'%s'", text,
116
+ variant.stringValue);
117
+ break;
118
+ case amf::AMF_VARIANT_WSTRING:
119
+ sprintf(buf.data(), "%s'%ls'", text,
120
+ variant.wstringValue);
121
+ break;
122
+ }
123
+ AMF_LOG_INFO("%s", buf.data());
124
+};
125
+
126
+static void printDebugInfo(amf::AMFComponentPtr m_AMFEncoder) {
127
+ #ifdef _DEBUG
128
+ amf::AMFPropertyInfo* pInfo;
129
+ size_t propCount = m_AMFEncoder->GetPropertyCount();
130
+ AMF_LOG_INFO("-- Internal AMF Encoder Properties --");
131
+ for (size_t propIndex = 0; propIndex < propCount; propIndex++) {
132
+ static const char* typeToString[] = {
133
+ "Empty",
134
+ "Boolean",
135
+ "Int64",
136
+ "Double",
137
+ "Rect",
138
+ "Size",
139
+ "Point",
140
+ "Rate",
141
+ "Ratio",
142
+ "Color",
143
+ "String",
144
+ "WString",
145
+ "Interface"
146
+ };
147
+
148
+ AMF_RESULT res = m_AMFEncoder->GetPropertyInfo(propIndex, (const amf::AMFPropertyInfo**) &pInfo);
149
+ if (res != AMF_OK)
150
+ continue;
151
+ AMF_LOG_INFO(" [%ls] %ls (Type: %s, Index %d)",
152
+ pInfo->name, pInfo->desc, typeToString[pInfo->type], propIndex);
153
+ AMF_LOG_INFO(" Content Type: %d",
154
+ pInfo->contentType);
155
+ AMF_LOG_INFO(" Access: %s%s%s",
156
+ (pInfo->accessType & amf::AMF_PROPERTY_ACCESS_READ) ? "R" : "",
157
+ (pInfo->accessType & amf::AMF_PROPERTY_ACCESS_WRITE) ? "W" : "",
158
+ (pInfo->accessType & amf::AMF_PROPERTY_ACCESS_WRITE_RUNTIME) ? "X" : "");
159
+
160
+ AMF_LOG_INFO(" Values:");
161
+ amf::AMFVariantStruct curStruct = amf::AMFVariantStruct();
162
+ m_AMFEncoder->GetProperty(pInfo->name, &curStruct);
163
+ fastPrintVariant(" Current: ", curStruct);
164
+ fastPrintVariant(" Default: ", pInfo->defaultValue);
165
+ fastPrintVariant(" Minimum: ", pInfo->minValue);
166
+ fastPrintVariant(" Maximum: ", pInfo->maxValue);
167
+ if (pInfo->pEnumDescription) {
168
+ AMF_LOG_INFO(" Enumeration: ");
169
+ const amf::AMFEnumDescriptionEntry* pEnumEntry = pInfo->pEnumDescription;
170
+ while (pEnumEntry->name != nullptr) {
171
+ AMF_LOG_INFO(" %ls (%ld)",
172
+ pEnumEntry->name,
173
+ pEnumEntry->value);
174
+ pEnumEntry++;
175
+ }
176
+ }
177
+ }
178
+ #endif
179
+}
180
+
181
+Plugin::AMD::VCEEncoder::VCEEncoder(VCEEncoderType p_Type,
182
+ std::string p_DeviceId/* = ""*/,
183
+ bool p_OpenCL/* = false*/,
184
+ VCEColorFormat p_SurfaceFormat/* = VCESurfaceFormat_NV12*/
185
+) {
186
+ AMF_RESULT res;
187
+
188
+ AMF_LOG_DEBUG("<" __FUNCTION_NAME__ "> Initializing...");
189
+
190
+ // Solve the optimized away issue.
191
+ m_EncoderType = p_Type;
192
+ m_SurfaceFormat = p_SurfaceFormat;
193
+ m_UseOpenCL = p_OpenCL;
194
+ m_Flag_IsStarted = false;
195
+ m_Flag_FirstFrameReceived = false;
196
+ m_Flag_FirstFrameSubmitted = false;
197
+ m_FrameSize.first = 64; m_FrameSize.second = 64;
198
+ m_FrameRate.first = 30; m_FrameRate.second = 1;
199
+ m_FrameRateDivisor = ((double_t)m_FrameRate.first / (double_t)m_FrameRate.second);
200
+ m_FrameRateReverseDivisor = ((double_t)m_FrameRate.second / (double_t)m_FrameRate.first);
201
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Source/amd-amf.cpp
Added
201
1
2
+/*
3
+MIT License
4
+
5
+Copyright (c) 2016 Michael Fabian Dirks
6
+
7
+Permission is hereby granted, free of charge, to any person obtaining a copy
8
+of this software and associated documentation files (the "Software"), to deal
9
+in the Software without restriction, including without limitation the rights
10
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+copies of the Software, and to permit persons to whom the Software is
12
+furnished to do so, subject to the following conditions:
13
+
14
+The above copyright notice and this permission notice shall be included in all
15
+copies or substantial portions of the Software.
16
+
17
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+SOFTWARE.
24
+*/
25
+
26
+//////////////////////////////////////////////////////////////////////////
27
+// Includes
28
+//////////////////////////////////////////////////////////////////////////
29
+#include <vector>
30
+#include <mutex>
31
+
32
+#include "amd-amf.h"
33
+#include "windows.h"
34
+
35
+// AMD AMF SDK
36
+#include "components\Component.h"
37
+#include "components\ComponentCaps.h"
38
+#include "components\VideoEncoderVCE.h"
39
+
40
+//////////////////////////////////////////////////////////////////////////
41
+// Code
42
+//////////////////////////////////////////////////////////////////////////
43
+using namespace Plugin::AMD;
44
+
45
+class CustomWriter : public amf::AMFTraceWriter {
46
+ public:
47
+ virtual void Write(const wchar_t* scope, const wchar_t* message) override {
48
+ const wchar_t* realmsg = &(message[(33 + wcslen(scope) + 2)]); // Skip Time & Scope
49
+ size_t msgLen = wcslen(realmsg) - (sizeof(wchar_t));
50
+
51
+ blog(LOG_INFO, "[%ls] %.*ls", scope, msgLen, realmsg);
52
+ }
53
+
54
+ virtual void Flush() override {}
55
+
56
+ static std::shared_ptr<CustomWriter> GetInstance() {
57
+ static std::shared_ptr<CustomWriter> __instance = std::make_shared<CustomWriter>();
58
+ static std::mutex __mutex;
59
+
60
+ const std::lock_guard<std::mutex> lock(__mutex);
61
+ return __instance;
62
+ }
63
+};
64
+
65
+std::shared_ptr<Plugin::AMD::AMF> Plugin::AMD::AMF::GetInstance() {
66
+ static std::shared_ptr<AMF> __instance = std::make_shared<AMF>();
67
+ static std::mutex __mutex;
68
+
69
+ const std::lock_guard<std::mutex> lock(__mutex);
70
+ return __instance;
71
+}
72
+
73
+Plugin::AMD::AMF::AMF() {
74
+ AMF_RESULT res = AMF_OK;
75
+
76
+ // Initialize AMF Library
77
+ AMF_LOG_DEBUG("<Plugin::AMD::AMF::AMF> Initializing...");
78
+
79
+ #pragma region Null Class Members
80
+ m_TimerPeriod = 0;
81
+ m_AMFVersion_Compiler = 0;
82
+ m_AMFVersion_Runtime = 0;
83
+ m_AMFModule = 0;
84
+
85
+ m_AMFFactory = nullptr;
86
+ m_AMFTrace = nullptr;
87
+ m_AMFDebug = nullptr;
88
+ AMFQueryVersion = nullptr;
89
+ AMFInit = nullptr;
90
+ #pragma endregion Null Class Members
91
+
92
+ /// Load AMF Runtime into Memory.
93
+ m_AMFModule = LoadLibraryW(AMF_DLL_NAME);
94
+ if (!m_AMFModule) {
95
+ DWORD error = GetLastError();
96
+ std::vector<char> buf(1024);
97
+ sprintf(buf.data(), "Unable to load '%ls', error code %ld.", AMF_DLL_NAME, error);
98
+ AMF_LOG_ERROR("%s", buf.data());
99
+ throw std::exception(buf.data(), error);
100
+ }
101
+ AMF_LOG_DEBUG("<Plugin::AMD::AMF::AMF> Loaded '%ls'.", AMF_DLL_NAME);
102
+ #ifdef _WIN32 // Windows: Get Product Version
103
+ std::vector<char> verbuf(GetFileVersionInfoSizeW(AMF_DLL_NAME, nullptr));
104
+ GetFileVersionInfoW(AMF_DLL_NAME, 0, (DWORD)verbuf.size(), verbuf.data());
105
+
106
+ void* pBlock = verbuf.data();
107
+
108
+ // Read the list of languages and code pages.
109
+ struct LANGANDCODEPAGE {
110
+ WORD wLanguage;
111
+ WORD wCodePage;
112
+ } *lpTranslate;
113
+ UINT cbTranslate = sizeof(LANGANDCODEPAGE);
114
+
115
+ VerQueryValueA(pBlock, "\\VarFileInfo\\Translation", (LPVOID*)&lpTranslate, &cbTranslate);
116
+
117
+ std::vector<char> buf(1024);
118
+ sprintf(buf.data(), "%s%04x%04x%s",
119
+ "\\StringFileInfo\\",
120
+ lpTranslate[0].wLanguage,
121
+ lpTranslate[0].wCodePage,
122
+ "\\ProductVersion");
123
+
124
+ // Retrieve file description for language and code page "i".
125
+ void* lpBuffer;
126
+ uint32_t dwBytes;
127
+ VerQueryValueA(pBlock, buf.data(), &lpBuffer, &dwBytes);
128
+
129
+ AMF_LOG_INFO("Runtime Library is on Version %.*s.", dwBytes, lpBuffer);
130
+ #endif _WIN32 // Windows: Get Product Version
131
+
132
+ /// Find Function for Querying AMF Version.
133
+ #pragma region Query AMF Runtime Version
134
+ AMFQueryVersion = (AMFQueryVersion_Fn)GetProcAddress(m_AMFModule, AMF_QUERY_VERSION_FUNCTION_NAME);
135
+ if (!AMFQueryVersion) {
136
+ DWORD error = GetLastError();
137
+ std::vector<char> buf(1024);
138
+ sprintf(buf.data(), "<Plugin::AMD::AMF::AMF> Finding Address of Function '%s' failed with error code %ld.", AMF_QUERY_VERSION_FUNCTION_NAME, error);
139
+ AMF_LOG_ERROR("%s", buf.data());
140
+ throw std::exception(buf.data(), error);
141
+ }
142
+ /// Query Runtime Version
143
+ m_AMFVersion_Compiler = AMF_FULL_VERSION;
144
+ res = AMFQueryVersion(&m_AMFVersion_Runtime);
145
+ if (res != AMF_OK)
146
+ ThrowExceptionWithAMFError("<Plugin::AMD::AMF::AMF> Querying Version failed with error %ls (code %ld).", res);
147
+ /// Log some Information for Supporters.
148
+ AMF_LOG_INFO("Runtime is on Version %d.%d.%d.%d, compiled against Version %d.%d.%d.%d.",
149
+ (uint16_t)((m_AMFVersion_Runtime >> 48ull) & 0xFFFF),
150
+ (uint16_t)((m_AMFVersion_Runtime >> 32ull) & 0xFFFF),
151
+ (uint16_t)((m_AMFVersion_Runtime >> 16ull) & 0xFFFF),
152
+ (uint16_t)((m_AMFVersion_Runtime & 0xFFFF)),
153
+ (uint16_t)((m_AMFVersion_Compiler >> 48ull) & 0xFFFF),
154
+ (uint16_t)((m_AMFVersion_Compiler >> 32ull) & 0xFFFF),
155
+ (uint16_t)((m_AMFVersion_Compiler >> 16ull) & 0xFFFF),
156
+ (uint16_t)((m_AMFVersion_Compiler & 0xFFFF)));
157
+ #pragma endregion Query AMF Runtime Version
158
+
159
+ /// Find Function for Initializing AMF.
160
+ AMFInit = (AMFInit_Fn)GetProcAddress(m_AMFModule, AMF_INIT_FUNCTION_NAME);
161
+ if (!AMFInit) {
162
+ DWORD error = GetLastError();
163
+ std::vector<char> buf(1024);
164
+ sprintf(buf.data(), "<Plugin::AMD::AMF::AMF> Finding Address of Function '%s' failed with error code %ld.", AMF_INIT_FUNCTION_NAME, error);
165
+ AMF_LOG_ERROR("%s", buf.data());
166
+ throw std::exception(buf.data(), error);
167
+ } else {
168
+ res = AMFInit(m_AMFVersion_Runtime, &m_AMFFactory);
169
+ if (res != AMF_OK)
170
+ ThrowExceptionWithAMFError("<Plugin::AMD::AMF::AMF> Initializing AMF Library failed with error %ls (code %ld).", res);
171
+ }
172
+ AMF_LOG_DEBUG("<Plugin::AMD::AMF::AMF> AMF Library initialized.");
173
+
174
+ /// Retrieve Trace Object.
175
+ res = m_AMFFactory->GetTrace(&m_AMFTrace);
176
+ if (res != AMF_OK) {
177
+ ThrowExceptionWithAMFError("<Plugin::AMD::AMF::AMF> Retrieving Trace object failed with error %ls (code %ld).", res);
178
+ }
179
+
180
+ /// Retrieve Debug Object.
181
+ res = m_AMFFactory->GetDebug(&m_AMFDebug);
182
+ if (res != AMF_OK) {
183
+ AMF_LOG_ERROR("<Plugin::AMD::AMF::AMF> Retrieving Debug object failed with error code %ls (code %ld).", res);
184
+ throw std::exception("", res);
185
+ }
186
+
187
+ /// Register Custom Trace Writer and disable Debug Tracing.
188
+ m_AMFTrace->RegisterWriter(L"OBSWriter", CustomWriter::GetInstance().get(), true);
189
+ this->EnableDebugTrace(false);
190
+
191
+ AMF_LOG_DEBUG("<Plugin::AMD::AMF::AMF> Initialized.");
192
+}
193
+
194
+Plugin::AMD::AMF::~AMF() {
195
+ AMF_LOG_DEBUG("<Plugin::AMD::AMF::AMF> Finalizing.");
196
+
197
+ /// Unregister Writer
198
+ if (m_AMFTrace)
199
+ m_AMFTrace->UnregisterWriter(L"OBSWriter");
200
+
201
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Source/api-base.cpp
Added
156
1
2
+/*
3
+MIT License
4
+
5
+Copyright (c) 2016 Michael Fabian Dirks
6
+
7
+Permission is hereby granted, free of charge, to any person obtaining a copy
8
+of this software and associated documentation files (the "Software"), to deal
9
+in the Software without restriction, including without limitation the rights
10
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+copies of the Software, and to permit persons to whom the Software is
12
+furnished to do so, subject to the following conditions:
13
+
14
+The above copyright notice and this permission notice shall be included in all
15
+copies or substantial portions of the Software.
16
+
17
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+SOFTWARE.
24
+*/
25
+
26
+#pragma once
27
+//////////////////////////////////////////////////////////////////////////
28
+// Includes
29
+//////////////////////////////////////////////////////////////////////////
30
+#include "api-base.h"
31
+
32
+#include "api-d3d9.h"
33
+#include "api-d3d11.h"
34
+
35
+#if defined(_WIN32) || defined(_WIN64)
36
+#include <windows.h>
37
+#include <VersionHelpers.h>
38
+#endif
39
+
40
+//////////////////////////////////////////////////////////////////////////
41
+// Code
42
+//////////////////////////////////////////////////////////////////////////
43
+
44
+Plugin::API::Device::Device() {
45
+ this->Name = "Default";
46
+ this->UniqueId = "";
47
+}
48
+
49
+Plugin::API::Device::Device(std::string Name, std::string UniqueId) {
50
+ this->Name = Name;
51
+ this->UniqueId = UniqueId;
52
+}
53
+
54
+Plugin::API::Device::~Device() {
55
+}
56
+
57
+bool Plugin::API::operator<(const Plugin::API::Device & left, const Plugin::API::Device& right) {
58
+ return left.UniqueId < right.UniqueId;
59
+}
60
+
61
+bool Plugin::API::operator>(const Plugin::API::Device & left, const Plugin::API::Device& right) {
62
+ return right < left;
63
+}
64
+
65
+bool Plugin::API::operator<=(const Plugin::API::Device & left, const Plugin::API::Device& right) {
66
+ return !(right < left);
67
+}
68
+
69
+bool Plugin::API::operator>=(const Plugin::API::Device & left, const Plugin::API::Device& right) {
70
+ return !(left < right);
71
+}
72
+
73
+bool Plugin::API::operator==(const Plugin::API::Device & left, const Plugin::API::Device& right) {
74
+ return left.UniqueId == right.UniqueId;
75
+}
76
+
77
+bool Plugin::API::operator!=(const Plugin::API::Device & left, const Plugin::API::Device& right) {
78
+ return !(left == right);
79
+}
80
+
81
+std::vector<Plugin::API::Device> Plugin::API::APIBase::EnumerateDevices() {
82
+ // Build a list of Devices
83
+ #if defined(_WIN32) || defined(_WIN64)
84
+ if (IsWindows8OrGreater()) {
85
+ return Plugin::API::Direct3D11::EnumerateDevices();
86
+ } else if (IsWindowsXPOrGreater()) {
87
+ //return Plugin::API::Direct3D9::EnumerateDevices();
88
+ } else
89
+ #endif
90
+ { // OpenGL
91
+ //return Plugin::API::OpenGL::EnumerateDevices();
92
+ }
93
+ return std::vector<Plugin::API::Device>();
94
+}
95
+
96
+Plugin::API::Device Plugin::API::APIBase::GetDeviceForUniqueId(std::string uniqueId) {
97
+ auto devices = EnumerateDevices();
98
+ for (auto device : devices) {
99
+ if (device.UniqueId == uniqueId)
100
+ return device;
101
+ }
102
+ return Plugin::API::Device();
103
+}
104
+
105
+std::unique_ptr<Plugin::API::APIBase> Plugin::API::APIBase::CreateBestAvailableAPI(Plugin::API::Device device) {
106
+ std::unique_ptr<Plugin::API::APIBase> retVal = std::make_unique<Plugin::API::APIBase>();
107
+ #if defined(_WIN32) || defined(_WIN64)
108
+ if (IsWindows8OrGreater()) {
109
+ retVal = std::make_unique<Plugin::API::Direct3D11>(device);
110
+ } else if (IsWindowsXPOrGreater()) {
111
+ //retVal = std::make_unique<Plugin::API::Direct3D9>(device);
112
+ } else
113
+ #endif
114
+ { // OpenGL
115
+ //return Plugin::API::OpenGL::OpenGL(device);
116
+ }
117
+ return retVal;
118
+}
119
+
120
+Plugin::API::APIType Plugin::API::APIBase::GetBestAvailableAPI() {
121
+ #if defined(_WIN32) || defined(_WIN64)
122
+ if (IsWindows8OrGreater()) {
123
+ return APIType_Direct3D11;
124
+ } else if (IsWindowsXPOrGreater()) {
125
+ return APIType_Direct3D9;
126
+ } else
127
+ #endif
128
+ { // OpenGL
129
+ return APIType_OpenGL;
130
+ }
131
+ return APIType_Base;
132
+}
133
+
134
+Plugin::API::APIBase::APIBase() {
135
+ myDevice = Plugin::API::Device();
136
+}
137
+
138
+Plugin::API::APIBase::APIBase(Device device) {
139
+ myDevice = device;
140
+}
141
+
142
+Plugin::API::APIBase::~APIBase() {
143
+}
144
+
145
+Plugin::API::APIType Plugin::API::APIBase::GetType() {
146
+ return myType;
147
+}
148
+
149
+void* Plugin::API::APIBase::GetContext() {
150
+ return nullptr;
151
+}
152
+
153
+Plugin::API::Device Plugin::API::APIBase::GetDevice() {
154
+ return myDevice;
155
+}
156
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Source/api-d3d11.cpp
Added
201
1
2
+/*
3
+MIT License
4
+
5
+Copyright (c) 2016 Michael Fabian Dirks
6
+
7
+Permission is hereby granted, free of charge, to any person obtaining a copy
8
+of this software and associated documentation files (the "Software"), to deal
9
+in the Software without restriction, including without limitation the rights
10
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+copies of the Software, and to permit persons to whom the Software is
12
+furnished to do so, subject to the following conditions:
13
+
14
+The above copyright notice and this permission notice shall be included in all
15
+copies or substantial portions of the Software.
16
+
17
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+SOFTWARE.
24
+*/
25
+
26
+#ifdef _WIN32
27
+//////////////////////////////////////////////////////////////////////////
28
+// Includes
29
+//////////////////////////////////////////////////////////////////////////
30
+#include "api-d3d11.h"
31
+
32
+#include <vector>
33
+#include <string>
34
+#include <sstream>
35
+#include <stdlib.h>
36
+
37
+#include <dxgi.h>
38
+#include <d3d11.h>
39
+
40
+#include <mutex>
41
+
42
+//////////////////////////////////////////////////////////////////////////
43
+// Code
44
+//////////////////////////////////////////////////////////////////////////
45
+using namespace Plugin::API;
46
+
47
+class SingletonDXGI {
48
+ public:
49
+
50
+ #pragma region Singleton
51
+ static std::shared_ptr<SingletonDXGI> GetInstance() {
52
+ static std::shared_ptr<SingletonDXGI> __instance = std::make_shared<SingletonDXGI>();
53
+ static std::mutex __mutex;
54
+
55
+ const std::lock_guard<std::mutex> lock(__mutex);
56
+ return __instance;
57
+ }
58
+ #pragma endregion Singleton
59
+
60
+ SingletonDXGI() {
61
+ hModule = LoadLibrary(TEXT("dxgi.dll"));
62
+ if (hModule == 0)
63
+ throw std::exception("Unable to load 'dxgi.dll'.");
64
+
65
+ }
66
+ ~SingletonDXGI() {
67
+ if (hModule)
68
+ FreeLibrary(hModule);
69
+ }
70
+
71
+ HRESULT CreateDXGIFactory1(REFIID riid, _Out_ void **ppFactory) {
72
+ if (hModule == 0)
73
+ return S_FALSE;
74
+
75
+ typedef HRESULT(__stdcall *t_CreateDXGIFactory1)(REFIID, void**);
76
+ t_CreateDXGIFactory1 pCreateDXGIFactory1 = (t_CreateDXGIFactory1)GetProcAddress(hModule, "CreateDXGIFactory1");
77
+
78
+ if (pCreateDXGIFactory1) {
79
+ return pCreateDXGIFactory1(riid, ppFactory);
80
+ }
81
+ return S_FALSE;
82
+ }
83
+
84
+ private:
85
+ HMODULE hModule;
86
+};
87
+class SingletonD3D11 {
88
+ public:
89
+
90
+ #pragma region Singleton
91
+ static std::shared_ptr<SingletonD3D11> GetInstance() {
92
+ static std::shared_ptr<SingletonD3D11> __instance = std::make_shared<SingletonD3D11>();
93
+ static std::mutex __mutex;
94
+
95
+ const std::lock_guard<std::mutex> lock(__mutex);
96
+ return __instance;
97
+ }
98
+ #pragma endregion Singleton
99
+
100
+ SingletonD3D11() {
101
+ hModule = LoadLibrary(TEXT("d3d11.dll"));
102
+ if (hModule == 0)
103
+ throw std::exception("Unable to load 'd3d11.dll'.");
104
+
105
+ }
106
+ ~SingletonD3D11() {
107
+ if (hModule)
108
+ FreeLibrary(hModule);
109
+ }
110
+
111
+ HRESULT WINAPI D3D11CreateDevice(
112
+ _In_opt_ IDXGIAdapter* pAdapter,
113
+ D3D_DRIVER_TYPE DriverType,
114
+ HMODULE Software,
115
+ UINT Flags,
116
+ _In_reads_opt_(FeatureLevels) CONST D3D_FEATURE_LEVEL* pFeatureLevels,
117
+ UINT FeatureLevels,
118
+ UINT SDKVersion,
119
+ _Out_opt_ ID3D11Device** ppDevice,
120
+ _Out_opt_ D3D_FEATURE_LEVEL* pFeatureLevel,
121
+ _Out_opt_ ID3D11DeviceContext** ppImmediateContext) {
122
+
123
+ if (hModule == 0)
124
+ return S_FALSE;
125
+
126
+ typedef HRESULT(__stdcall *t_D3D11CreateDevice)(_In_opt_ IDXGIAdapter*, D3D_DRIVER_TYPE, HMODULE, UINT,
127
+ CONST D3D_FEATURE_LEVEL*, UINT, UINT, _Out_opt_ ID3D11Device**,
128
+ _Out_opt_ D3D_FEATURE_LEVEL*, _Out_opt_ ID3D11DeviceContext**);
129
+ t_D3D11CreateDevice pD3D11CreateDevice = (t_D3D11CreateDevice)GetProcAddress(hModule, "D3D11CreateDevice");
130
+
131
+ if (pD3D11CreateDevice) {
132
+ return pD3D11CreateDevice(pAdapter, DriverType, Software, Flags, pFeatureLevels, FeatureLevels,
133
+ SDKVersion, ppDevice, pFeatureLevel, ppImmediateContext);
134
+ }
135
+ return S_FALSE;
136
+ }
137
+
138
+ private:
139
+ HMODULE hModule;
140
+};
141
+
142
+Plugin::API::Device BuildDeviceFromAdapter(DXGI_ADAPTER_DESC1* pAdapter) {
143
+ if (pAdapter == nullptr)
144
+ return Device("INVALID DEVICE", "");
145
+
146
+ std::vector<char> uidBuf(1024);
147
+ sprintf(uidBuf.data(), "%ld:%ld",
148
+ pAdapter->AdapterLuid.LowPart,
149
+ pAdapter->AdapterLuid.HighPart);
150
+
151
+ std::vector<char> nameBuf(1024);
152
+ wcstombs(nameBuf.data(), pAdapter->Description, 1024);
153
+
154
+ return Device(std::string(nameBuf.data()), std::string(uidBuf.data()));
155
+}
156
+
157
+std::vector<Plugin::API::Device> Plugin::API::Direct3D11::EnumerateDevices() {
158
+ std::vector<Plugin::API::Device> devices = std::vector<Plugin::API::Device>();
159
+
160
+ IDXGIFactory1* pFactory = NULL;
161
+ auto singletonDXGI = SingletonDXGI::GetInstance();
162
+ HRESULT hr = singletonDXGI->CreateDXGIFactory1(__uuidof(IDXGIFactory1), (void**)(&pFactory));
163
+ if (FAILED(hr)) {
164
+ return devices;
165
+ }
166
+
167
+ IDXGIAdapter1* pAdapter = NULL;
168
+ for (uint32_t iAdapterIndex = 0; pFactory->EnumAdapters1(iAdapterIndex, &pAdapter) != DXGI_ERROR_NOT_FOUND; iAdapterIndex++) {
169
+ DXGI_ADAPTER_DESC1 adapterDesc = DXGI_ADAPTER_DESC1();
170
+ std::memset(&adapterDesc, 0, sizeof(DXGI_ADAPTER_DESC1));
171
+
172
+ if (pAdapter->GetDesc1(&adapterDesc) == S_OK) {
173
+ // Only allow AMD devices to be listed here.
174
+ if (adapterDesc.VendorId != 0x1002)
175
+ continue;
176
+
177
+ devices.push_back(BuildDeviceFromAdapter(&adapterDesc));
178
+ }
179
+ }
180
+
181
+ pFactory->Release();
182
+
183
+ return devices;
184
+}
185
+
186
+Plugin::API::Device Plugin::API::Direct3D11::GetDeviceForUniqueId(std::string uniqueId) {
187
+ Plugin::API::Device device = Device("", "");
188
+
189
+ IDXGIFactory1* pFactory = NULL;
190
+ auto singletonDXGI = SingletonDXGI::GetInstance();
191
+ HRESULT hr = singletonDXGI->CreateDXGIFactory1(__uuidof(IDXGIFactory1), (void**)(&pFactory));
192
+ if (FAILED(hr)) {
193
+ return device;
194
+ }
195
+
196
+ IDXGIAdapter1* pAdapter = NULL;
197
+ for (uint32_t iAdapterIndex = 0; pFactory->EnumAdapters1(iAdapterIndex, &pAdapter) != DXGI_ERROR_NOT_FOUND; iAdapterIndex++) {
198
+ DXGI_ADAPTER_DESC1 adapterDesc = DXGI_ADAPTER_DESC1();
199
+ std::memset(&adapterDesc, 0, sizeof(DXGI_ADAPTER_DESC1));
200
+
201
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Source/api-d3d9.cpp
Added
201
1
2
+/*
3
+MIT License
4
+
5
+Copyright (c) 2016 Michael Fabian Dirks
6
+
7
+Permission is hereby granted, free of charge, to any person obtaining a copy
8
+of this software and associated documentation files (the "Software"), to deal
9
+in the Software without restriction, including without limitation the rights
10
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+copies of the Software, and to permit persons to whom the Software is
12
+furnished to do so, subject to the following conditions:
13
+
14
+The above copyright notice and this permission notice shall be included in all
15
+copies or substantial portions of the Software.
16
+
17
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+SOFTWARE.
24
+*/
25
+
26
+#ifdef _WIN32
27
+//////////////////////////////////////////////////////////////////////////
28
+// Includes
29
+//////////////////////////////////////////////////////////////////////////
30
+#include "api-d3d9.h"
31
+
32
+//////////////////////////////////////////////////////////////////////////
33
+// Code
34
+//////////////////////////////////////////////////////////////////////////
35
+using namespace Plugin::API;
36
+
37
+Plugin::API::Device BuildDeviceFromAdapter(D3DADAPTER_IDENTIFIER9* pAdapter) {
38
+ if (pAdapter == nullptr)
39
+ return Device("INVALID DEVICE", "");
40
+
41
+ std::vector<char> uidBuf(1024);
42
+ sprintf(uidBuf.data(), "%ld:%ld:%ld:%ld",
43
+ pAdapter->VendorId,
44
+ pAdapter->DeviceId,
45
+ pAdapter->SubSysId,
46
+ pAdapter->Revision);
47
+
48
+ std::vector<char> nameBuf(1024);
49
+ sprintf(nameBuf.data(), "%s (%s)",
50
+ pAdapter->DeviceName,
51
+ pAdapter->Description);
52
+
53
+ return Device(std::string(nameBuf.data()), std::string(uidBuf.data()));
54
+}
55
+
56
+
57
+std::vector<Plugin::API::Device> Plugin::API::Direct3D9::EnumerateDevices() {
58
+ std::vector<Plugin::API::Device> devices = std::vector<Plugin::API::Device>();
59
+
60
+ IDirect3D9* pDirect3D = Direct3DCreate9(D3D_SDK_VERSION);
61
+
62
+ uint32_t adapterCount = pDirect3D->GetAdapterCount();
63
+ for (uint32_t adapterIndex = 0; adapterIndex < adapterCount; adapterIndex++) {
64
+ D3DADAPTER_IDENTIFIER9 adapterDesc = D3DADAPTER_IDENTIFIER9();
65
+ pDirect3D->GetAdapterIdentifier(adapterIndex, 0, &adapterDesc);
66
+
67
+ if (adapterDesc.VendorId != 0x1002)
68
+ continue;
69
+
70
+ Device device = BuildDeviceFromAdapter(&adapterDesc);
71
+ devices.push_back(device);
72
+ }
73
+
74
+ pDirect3D->Release();
75
+
76
+ return devices;
77
+}
78
+
79
+Plugin::API::Device Plugin::API::Direct3D9::GetDeviceForUniqueId(std::string uniqueId) {
80
+ Plugin::API::Device device = Device("", "");
81
+
82
+ IDirect3D9* pDirect3D = Direct3DCreate9(D3D_SDK_VERSION);
83
+
84
+ uint32_t adapterCount = pDirect3D->GetAdapterCount();
85
+ for (uint32_t adapterIndex = 0; adapterIndex <= adapterCount; adapterIndex++) {
86
+ D3DADAPTER_IDENTIFIER9 adapterDesc = D3DADAPTER_IDENTIFIER9();
87
+ pDirect3D->GetAdapterIdentifier(adapterIndex, 0, &adapterDesc);
88
+
89
+ if (adapterDesc.VendorId != 0x1002)
90
+ continue;
91
+
92
+ Device device2 = BuildDeviceFromAdapter(&adapterDesc);
93
+ if (device2.UniqueId == uniqueId)
94
+ device = device2;
95
+ }
96
+
97
+ pDirect3D->Release();
98
+
99
+ return device;
100
+}
101
+
102
+struct EnumWindowsData {
103
+ DWORD processId;
104
+ HWND bestWindowId;
105
+};
106
+
107
+BOOL CALLBACK EnumWindowsCallback(HWND handle, LPARAM lParam) {
108
+ EnumWindowsData* data = (EnumWindowsData*)lParam;
109
+
110
+ DWORD processId;
111
+ GetWindowThreadProcessId(handle, &processId);
112
+ if ((processId == data->processId)
113
+ && (GetWindow(handle, GW_OWNER) == (HWND)0)
114
+ && (IsWindowVisible(handle))) {
115
+ return TRUE;
116
+ }
117
+ data->bestWindowId = handle;
118
+ return FALSE;
119
+}
120
+
121
+Plugin::API::Direct3D9::Direct3D9(Device device) : APIBase(device) {
122
+ this->myType = APIType_Direct3D9;
123
+
124
+ pDirect3D = Direct3DCreate9(D3D_SDK_VERSION);
125
+ if (!pDirect3D)
126
+ throw std::exception("Unable to create D3D9 driver.");
127
+
128
+ // Find Adapter Index
129
+ uint32_t usedAdapter = 0;
130
+ uint32_t adapterCount = pDirect3D->GetAdapterCount();
131
+ for (uint32_t adapterIndex = 0; adapterIndex <= adapterCount; adapterIndex++) {
132
+ D3DADAPTER_IDENTIFIER9 adapterDesc = D3DADAPTER_IDENTIFIER9();
133
+ pDirect3D->GetAdapterIdentifier(adapterIndex, 0, &adapterDesc);
134
+
135
+ if (adapterDesc.VendorId != 0x1002)
136
+ continue;
137
+
138
+ Device device2 = BuildDeviceFromAdapter(&adapterDesc);
139
+ if (device2.UniqueId == device.UniqueId) {
140
+ usedAdapter = adapterIndex++;
141
+ break;
142
+ }
143
+ }
144
+
145
+ EnumWindowsData data = EnumWindowsData();
146
+ data.processId = GetCurrentProcessId();
147
+ EnumWindows(EnumWindowsCallback, (LPARAM)&data);
148
+
149
+ D3DPRESENT_PARAMETERS pPresentParameter = D3DPRESENT_PARAMETERS();
150
+ pPresentParameter.BackBufferWidth = 1280;
151
+ pPresentParameter.BackBufferHeight = 720;
152
+ pPresentParameter.BackBufferFormat = D3DFORMAT::D3DFMT_X8R8G8B8;
153
+ pPresentParameter.BackBufferCount = 2;
154
+ pPresentParameter.MultiSampleType = D3DMULTISAMPLE_TYPE::D3DMULTISAMPLE_NONE;
155
+ pPresentParameter.MultiSampleQuality = 0;
156
+ pPresentParameter.SwapEffect = D3DSWAPEFFECT::D3DSWAPEFFECT_DISCARD;
157
+ pPresentParameter.hDeviceWindow = data.bestWindowId;
158
+ pPresentParameter.Windowed = TRUE;
159
+ pPresentParameter.EnableAutoDepthStencil = FALSE;
160
+ pPresentParameter.AutoDepthStencilFormat = D3DFORMAT::D3DFMT_A1;
161
+ pPresentParameter.Flags = D3DPRESENTFLAG_VIDEO;
162
+ pPresentParameter.FullScreen_RefreshRateInHz = 0;
163
+ pPresentParameter.PresentationInterval = 60;
164
+
165
+ HRESULT hr = pDirect3D->CreateDevice(usedAdapter,
166
+ D3DDEVTYPE_HAL,
167
+ data.bestWindowId,
168
+ 0, //D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX | D3DCREATE_MULTITHREADED | D3DCREATE_PUREDEVICE | D3DCREATE_MIXED_VERTEXPROCESSING | D3DCREATE_NOWINDOWCHANGES,
169
+ &pPresentParameter,
170
+ &pDirect3DDevice);
171
+ switch (hr) {
172
+ case D3DERR_DEVICELOST:
173
+ throw std::exception("D3DERR_DEVICELOST");
174
+ break;
175
+ case D3DERR_INVALIDCALL:
176
+ throw std::exception("D3DERR_INVALIDCALL");
177
+ break;
178
+ case D3DERR_NOTAVAILABLE:
179
+ throw std::exception("D3DERR_NOTAVAILABLE");
180
+ break;
181
+ case D3DERR_OUTOFVIDEOMEMORY:
182
+ throw std::exception("D3DERR_OUTOFVIDEOMEMORY");
183
+ break;
184
+ }
185
+ if (FAILED(hr))
186
+ throw std::exception("Unable to create D3D9 device.");
187
+}
188
+
189
+Plugin::API::Direct3D9::~Direct3D9() {
190
+ if (pDirect3DDevice)
191
+ pDirect3DDevice->Release();
192
+
193
+ if (pDirect3D)
194
+ pDirect3D->Release();
195
+}
196
+
197
+void* Plugin::API::Direct3D9::GetContext() {
198
+ return pDirect3DDevice;
199
+}
200
+
201
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Source/enc-h264.cpp
Added
201
1
2
+/*
3
+MIT License
4
+
5
+Copyright (c) 2016 Michael Fabian Dirks
6
+
7
+Permission is hereby granted, free of charge, to any person obtaining a copy
8
+of this software and associated documentation files (the "Software"), to deal
9
+in the Software without restriction, including without limitation the rights
10
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+copies of the Software, and to permit persons to whom the Software is
12
+furnished to do so, subject to the following conditions:
13
+
14
+The above copyright notice and this permission notice shall be included in all
15
+copies or substantial portions of the Software.
16
+
17
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+SOFTWARE.
24
+*/
25
+
26
+#pragma once
27
+
28
+//////////////////////////////////////////////////////////////////////////
29
+// Includes
30
+//////////////////////////////////////////////////////////////////////////
31
+#include "enc-h264.h"
32
+#include "misc-util.cpp"
33
+
34
+#if (defined _WIN32) || (defined _WIN64)
35
+#include <VersionHelpers.h>
36
+
37
+#include "api-d3d9.h"
38
+#include "api-d3d11.h"
39
+#endif
40
+
41
+//////////////////////////////////////////////////////////////////////////
42
+// Code
43
+//////////////////////////////////////////////////////////////////////////
44
+using namespace Plugin;
45
+using namespace Plugin::AMD;
46
+using namespace Plugin::Interface;
47
+
48
+enum Presets {
49
+ None = -1,
50
+ ResetToDefaults = 0,
51
+ Recording,
52
+ HighQuality,
53
+ Indistinguishable,
54
+ Lossless,
55
+ Twitch,
56
+ YouTube,
57
+};
58
+enum ViewMode {
59
+ Basic,
60
+ Advanced,
61
+ Expert,
62
+ Master
63
+};
64
+
65
+void Plugin::Interface::H264Interface::encoder_register() {
66
+ static obs_encoder_info* encoder_info = new obs_encoder_info();
67
+ static const char* encoder_name = "amd_amf_h264";
68
+ static const char* encoder_codec = "h264";
69
+
70
+ std::memset(encoder_info, 0, sizeof(obs_encoder_info));
71
+
72
+ // Initialize Structure
73
+ encoder_info->id = encoder_name;
74
+ encoder_info->type = obs_encoder_type::OBS_ENCODER_VIDEO;
75
+ encoder_info->codec = encoder_codec;
76
+
77
+ // Functions
78
+ encoder_info->get_name = &get_name;
79
+ encoder_info->get_defaults = &get_defaults;
80
+ encoder_info->get_properties = &get_properties;
81
+ encoder_info->create = &create;
82
+ encoder_info->destroy = &destroy;
83
+ encoder_info->encode = &encode;
84
+ encoder_info->update = &update;
85
+ encoder_info->get_video_info = &get_video_info;
86
+ encoder_info->get_extra_data = &get_extra_data;
87
+
88
+ obs_register_encoder(encoder_info);
89
+}
90
+
91
+const char* Plugin::Interface::H264Interface::get_name(void*) {
92
+ static const char* name = "H264 Encoder (AMD Advanced Media Framework)";
93
+ return name;
94
+}
95
+
96
+//////////////////////////////////////////////////////////////////////////
97
+// Deprecated old Encoder
98
+const char* Plugin::Interface::H264Interface::get_name_simple(void*) {
99
+ static const char* name = "[DEPRECATED] H264 Encoder (AMD Advanced Media Framework)";
100
+ return name;
101
+}
102
+//////////////////////////////////////////////////////////////////////////
103
+void* Plugin::Interface::H264Interface::create(obs_data_t* settings, obs_encoder_t* encoder) {
104
+ Plugin::Interface::H264Interface* enc = nullptr;
105
+ try {
106
+ AMF_LOG_INFO("Starting up...");
107
+ enc = new Plugin::Interface::H264Interface(settings, encoder);
108
+ return enc;
109
+ } catch (std::exception e) {
110
+ AMF_LOG_ERROR("Exception: %s", e.what());
111
+ AMF_LOG_ERROR("Unable to create Encoder, see log for more information.");
112
+ if (enc)
113
+ delete enc;
114
+ return NULL;
115
+ } catch (...) {
116
+ AMF_LOG_ERROR("Unhandled Exception during start up.");
117
+ if (enc)
118
+ delete enc;
119
+ return NULL;
120
+ }
121
+}
122
+
123
+#pragma warning( push )
124
+#pragma warning( disable: 4702 )
125
+void Plugin::Interface::H264Interface::destroy(void* data) {
126
+ try {
127
+ AMF_LOG_INFO("Shutting down...");
128
+ Plugin::Interface::H264Interface* enc = static_cast<Plugin::Interface::H264Interface*>(data);
129
+ delete enc;
130
+ } catch (std::exception e) {
131
+ AMF_LOG_ERROR("Exception: %s", e.what());
132
+ AMF_LOG_ERROR("Unable to destroy Encoder, see log for more information.");
133
+ } catch (...) {
134
+ AMF_LOG_ERROR("Unhandled Exception during shut down.");
135
+ }
136
+ data = nullptr;
137
+}
138
+#pragma warning( pop )
139
+
140
+bool Plugin::Interface::H264Interface::encode(void *data, struct encoder_frame *frame, struct encoder_packet *packet, bool *received_packet) {
141
+ try {
142
+ return static_cast<Plugin::Interface::H264Interface*>(data)->encode(frame, packet, received_packet);
143
+ } catch (std::exception e) {
144
+ AMF_LOG_ERROR("Exception: %s", e.what());
145
+ AMF_LOG_ERROR("Unable to encode, see log for more information.");
146
+ return false;
147
+ } catch (...) {
148
+ throw;
149
+ }
150
+}
151
+
152
+void Plugin::Interface::H264Interface::get_defaults(obs_data_t *data) {
153
+ #pragma region OBS - Enforce Streaming Service Restrictions
154
+ // OBS - Enforce Streaming Service Restrictions
155
+ obs_data_set_default_int(data, "bitrate", -1);
156
+ obs_data_set_default_int(data, "keyint_sec", -1);
157
+ obs_data_set_default_string(data, "rate_control", "");
158
+ obs_data_set_default_string(data, "profile", "");
159
+ obs_data_set_default_string(data, "preset", "");
160
+ obs_data_set_int(data, "bitrate", -1);
161
+ obs_data_set_int(data, "keyint_sec", -1);
162
+ obs_data_set_string(data, "rate_control", "");
163
+ obs_data_set_string(data, "profile", "");
164
+ obs_data_set_string(data, "preset", "");
165
+ #pragma endregion OBS - Enforce Streaming Service Restrictions
166
+
167
+ // Cached Data
168
+ obs_data_set_string(data, "last" vstr(AMF_H264_DEVICE), "InvalidUniqueDeviceId");
169
+ obs_data_set_int(data, "last" vstr(AMF_H264_VIEW), -1);
170
+ obs_data_set_int(data, "last" vstr(AMF_H264_RATECONTROLMETHOD), -1);
171
+ obs_data_set_int(data, "last" vstr(AMF_H264_VBVBUFFER), -1);
172
+ obs_data_set_int(data, "last" vstr(AMF_H264_BPICTURE_PATTERN), -1);
173
+ obs_data_set_int(data, "last" vstr(AMF_H264_BPICTURE_REFERENCE), -1);
174
+
175
+ // Preset
176
+ obs_data_set_default_int(data, AMF_H264_PRESET, -1);
177
+
178
+ // Static Properties
179
+ obs_data_set_default_int(data, AMF_H264_USAGE, VCEUsage_Transcoding);
180
+ obs_data_set_default_int(data, AMF_H264_QUALITY_PRESET, VCEQualityPreset_Balanced);
181
+ obs_data_set_default_int(data, AMF_H264_PROFILE, VCEProfile_Main);
182
+ obs_data_set_default_int(data, AMF_H264_PROFILELEVEL, VCEProfileLevel_Automatic);
183
+ obs_data_set_default_int(data, AMF_H264_MAXIMUMLTRFRAMES, 0);
184
+ obs_data_set_default_int(data, AMF_H264_CODINGTYPE, 0);
185
+
186
+ // Rate Control Properties
187
+ obs_data_set_default_int(data, AMF_H264_RATECONTROLMETHOD, VCERateControlMethod_ConstantBitrate);
188
+ obs_data_set_default_int(data, AMF_H264_BITRATE_TARGET, 3500);
189
+ obs_data_set_default_int(data, AMF_H264_BITRATE_PEAK, 9000);
190
+ obs_data_set_default_int(data, AMF_H264_QP_MINIMUM, 0);
191
+ obs_data_set_default_int(data, AMF_H264_QP_MAXIMUM, 51);
192
+ obs_data_set_default_int(data, AMF_H264_QP_IFRAME, 22);
193
+ obs_data_set_default_int(data, AMF_H264_QP_PFRAME, 22);
194
+ obs_data_set_default_int(data, AMF_H264_QP_BFRAME, 22);
195
+ obs_data_set_default_int(data, AMF_H264_QP_BPICTURE_DELTA, 4);
196
+ obs_data_set_default_int(data, AMF_H264_QP_REFERENCE_BPICTURE_DELTA, 2);
197
+ obs_data_set_default_int(data, AMF_H264_VBVBUFFER, 0);
198
+ obs_data_set_default_int(data, AMF_H264_VBVBUFFER_SIZE, 3500);
199
+ obs_data_set_default_double(data, AMF_H264_VBVBUFFER_STRICTNESS, 0);
200
+ obs_data_set_default_double(data, AMF_H264_VBVBUFFER_FULLNESS, 100);
201
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Source/misc-util.cpp
Added
201
1
2
+/*
3
+MIT License
4
+
5
+Copyright (c) 2016 Michael Fabian Dirks
6
+
7
+Permission is hereby granted, free of charge, to any person obtaining a copy
8
+of this software and associated documentation files (the "Software"), to deal
9
+in the Software without restriction, including without limitation the rights
10
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+copies of the Software, and to permit persons to whom the Software is
12
+furnished to do so, subject to the following conditions:
13
+
14
+The above copyright notice and this permission notice shall be included in all
15
+copies or substantial portions of the Software.
16
+
17
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+SOFTWARE.
24
+*/
25
+
26
+#pragma once
27
+//////////////////////////////////////////////////////////////////////////
28
+// Includes
29
+//////////////////////////////////////////////////////////////////////////
30
+
31
+// Plugin
32
+#include "plugin.h"
33
+#include "amd-amf.h"
34
+#include "amd-amf-vce.h"
35
+#include "amd-amf-vce-capabilities.h"
36
+
37
+//////////////////////////////////////////////////////////////////////////
38
+// Code
39
+//////////////////////////////////////////////////////////////////////////
40
+using namespace Plugin::AMD;
41
+
42
+namespace Plugin {
43
+ namespace Utility {
44
+ VCEProfileLevel inline GetMinimumProfileLevel(std::pair<uint32_t, uint32_t> frameSize, std::pair<uint32_t, uint32_t> frameRate) {
45
+ typedef std::pair<uint32_t, uint32_t> levelRestriction;
46
+ typedef std::pair<VCEProfileLevel, levelRestriction> level;
47
+
48
+ static const level profileLevelLimit[] = { // [Level, [Samples, Samples_Per_Sec]]
49
+ level(VCEProfileLevel_10, levelRestriction(25344, 380160)),
50
+ level(VCEProfileLevel_11, levelRestriction(101376, 768000)),
51
+ level(VCEProfileLevel_12, levelRestriction(101376, 1536000)),
52
+ level(VCEProfileLevel_13, levelRestriction(101376, 3041280)),
53
+ level(VCEProfileLevel_20, levelRestriction(101376, 3041280)),
54
+ level(VCEProfileLevel_21, levelRestriction(202752, 5068800)),
55
+ level(VCEProfileLevel_22, levelRestriction(414720, 5184000)),
56
+ level(VCEProfileLevel_30, levelRestriction(414720, 10368000)),
57
+ level(VCEProfileLevel_31, levelRestriction(921600, 27648000)),
58
+ level(VCEProfileLevel_32, levelRestriction(1310720, 55296000)),
59
+ //level(VCEProfileLevel_40, levelRestriction(2097152, 62914560)), // Technically identical to 4.1, but backwards compatible.
60
+ level(VCEProfileLevel_41, levelRestriction(2097152, 62914560)),
61
+ level(VCEProfileLevel_42, levelRestriction(2228224, 133693440)),
62
+ level(VCEProfileLevel_50, levelRestriction(5652480, 150994944)),
63
+ level(VCEProfileLevel_51, levelRestriction(9437184, 251658240)),
64
+ level(VCEProfileLevel_52, levelRestriction(9437184, 530841600)),
65
+ level((VCEProfileLevel)-1, levelRestriction(0, 0))
66
+ };
67
+
68
+ uint32_t samples = frameSize.first * frameSize.second;
69
+ uint32_t samples_sec = (uint32_t)ceil((double_t)samples * ((double_t)frameRate.first / (double_t)frameRate.second));
70
+
71
+ level curLevel = profileLevelLimit[0];
72
+ for (uint32_t index = 0; curLevel.first != -1; index++) {
73
+ curLevel = profileLevelLimit[index];
74
+
75
+ if (samples > curLevel.second.first)
76
+ continue;
77
+
78
+ if (samples_sec > curLevel.second.second)
79
+ continue;
80
+
81
+ return curLevel.first;
82
+ }
83
+ return VCEProfileLevel_52;
84
+ }
85
+
86
+ #pragma region VCEMemoryType
87
+ inline const char* MemoryTypeAsString(VCEMemoryType memoryType) {
88
+ static const char* memoryTypeToString[] = {
89
+ "Host",
90
+ "DirectX9",
91
+ "DirectX11",
92
+ "OpenGL"
93
+ };
94
+ return memoryTypeToString[memoryType];
95
+ }
96
+ inline amf::AMF_MEMORY_TYPE MemoryTypeAsAMF(VCEMemoryType memoryType) {
97
+ static amf::AMF_MEMORY_TYPE memoryTypeToAMF[] = {
98
+ amf::AMF_MEMORY_HOST,
99
+ amf::AMF_MEMORY_DX9,
100
+ amf::AMF_MEMORY_DX11,
101
+ amf::AMF_MEMORY_OPENGL,
102
+ };
103
+ return memoryTypeToAMF[memoryType];
104
+ }
105
+ #pragma endregion VCEMemoryType
106
+ #pragma region VCESurfaceFormat
107
+ inline const char* SurfaceFormatAsString(VCEColorFormat surfaceFormat) {
108
+ static const char* surfaceFormatToString[] = {
109
+ "NV12",
110
+ "I420",
111
+ "YUY2",
112
+ "BGRA",
113
+ "RGBA",
114
+ "GRAY",
115
+ };
116
+ return surfaceFormatToString[surfaceFormat];
117
+ }
118
+ inline amf::AMF_SURFACE_FORMAT SurfaceFormatAsAMF(VCEColorFormat surfaceFormat) {
119
+ static amf::AMF_SURFACE_FORMAT surfaceFormatToAMF[] = {
120
+ // 4:2:0 Formats
121
+ amf::AMF_SURFACE_NV12,
122
+ amf::AMF_SURFACE_YUV420P,
123
+ // 4:2:2 Formats
124
+ amf::AMF_SURFACE_YUY2,
125
+ // Uncompressed
126
+ amf::AMF_SURFACE_BGRA,
127
+ amf::AMF_SURFACE_RGBA,
128
+ // Other
129
+ amf::AMF_SURFACE_GRAY8,
130
+ };
131
+ return surfaceFormatToAMF[surfaceFormat];
132
+ }
133
+ #pragma endregion VCESurfaceFormat
134
+ #pragma region VCEUsage
135
+ inline const char* UsageAsString(VCEUsage usage) {
136
+ static const char* usageToString[] = {
137
+ "Transcoding",
138
+ "Ultra Low Latency",
139
+ "Low Latency",
140
+ "Webcam"
141
+ };
142
+ return usageToString[usage];
143
+ }
144
+ inline AMF_VIDEO_ENCODER_USAGE_ENUM UsageAsAMF(VCEUsage usage) {
145
+ static AMF_VIDEO_ENCODER_USAGE_ENUM usageToAMF[] = {
146
+ AMF_VIDEO_ENCODER_USAGE_TRANSCONDING,
147
+ AMF_VIDEO_ENCODER_USAGE_ULTRA_LOW_LATENCY,
148
+ AMF_VIDEO_ENCODER_USAGE_LOW_LATENCY,
149
+ AMF_VIDEO_ENCODER_USAGE_WEBCAM,
150
+ };
151
+ return usageToAMF[usage];
152
+ }
153
+ inline VCEUsage UsageFromAMF(uint32_t usage) {
154
+ static VCEUsage usageFromAMF[] = {
155
+ VCEUsage_Transcoding,
156
+ VCEUsage_UltraLowLatency,
157
+ VCEUsage_LowLatency,
158
+ VCEUsage_Webcam,
159
+ };
160
+ return usageFromAMF[usage];
161
+ }
162
+ #pragma endregion VCEUsage
163
+ #pragma region VCEQualityPreset
164
+ inline const char* QualityPresetAsString(VCEQualityPreset preset) {
165
+ static const char* qualityPresetToString[] = {
166
+ "Speed",
167
+ "Balanced",
168
+ "Quality"
169
+ };
170
+ return qualityPresetToString[preset];
171
+ }
172
+ #pragma endregion VCEQualityPreset
173
+ #pragma region VCEProfile
174
+ inline const char* ProfileAsString(VCEProfile profile) {
175
+ switch (profile) {
176
+ case VCEProfile_Baseline:
177
+ return "Baseline";
178
+ case VCEProfile_Main:
179
+ return "Main";
180
+ case VCEProfile_High:
181
+ return "High";
182
+ case VCEProfile_ConstrainedBaseline:
183
+ return "Constrained Baseline";
184
+ case VCEProfile_ConstrainedHigh:
185
+ return "Constrained High";
186
+ }
187
+
188
+ return "Invalid";
189
+ }
190
+ #pragma endregion VCEProfile
191
+ #pragma region VCERateControlMethod
192
+ inline const char* RateControlMethodAsString(VCERateControlMethod method) {
193
+ static const char* rateControlMethodToString[] = {
194
+ "Constant Quantization Parameter (CQP)",
195
+ "Constant Bitrate (CBR)",
196
+ "Peak Constrained Variable Bitrate (VBR)",
197
+ "Latency Constrained Variable Bitrate (VBR_LAT)"
198
+ };
199
+ return rateControlMethodToString[method];
200
+ }
201
obs-studio-0.16.6.tar.xz/plugins/enc-amf/Source/plugin.cpp
Added
198
1
2
+/*
3
+MIT License
4
+
5
+Copyright (c) 2016 Michael Fabian Dirks
6
+
7
+Permission is hereby granted, free of charge, to any person obtaining a copy
8
+of this software and associated documentation files (the "Software"), to deal
9
+in the Software without restriction, including without limitation the rights
10
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+copies of the Software, and to permit persons to whom the Software is
12
+furnished to do so, subject to the following conditions:
13
+
14
+The above copyright notice and this permission notice shall be included in all
15
+copies or substantial portions of the Software.
16
+
17
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+SOFTWARE.
24
+*/
25
+
26
+#pragma once
27
+//////////////////////////////////////////////////////////////////////////
28
+// Includes
29
+//////////////////////////////////////////////////////////////////////////
30
+#include <windows.h>
31
+#include <sstream>
32
+#include <map>
33
+
34
+// Plugin
35
+#include "plugin.h"
36
+#include "amd-amf.h"
37
+#include "amd-amf-vce-capabilities.h"
38
+#include "enc-h264.h"
39
+
40
+//////////////////////////////////////////////////////////////////////////
41
+// Code
42
+//////////////////////////////////////////////////////////////////////////
43
+BOOL WINAPI DllMain(HINSTANCE, DWORD, LPVOID) {
44
+ return TRUE;
45
+}
46
+
47
+OBS_DECLARE_MODULE();
48
+OBS_MODULE_AUTHOR("Michael Fabian Dirks");
49
+OBS_MODULE_USE_DEFAULT_LOCALE("enc-amf", "en-US");
50
+
51
+/**
52
+* Required: Called when the module is loaded. Use this function to load all
53
+* the sources/encoders/outputs/services for your module, or anything else that
54
+* may need loading.
55
+*
56
+* @return Return true to continue loading the module, otherwise
57
+* false to indicate failure and unload the module
58
+*/
59
+MODULE_EXPORT bool obs_module_load(void) {
60
+ try {
61
+ AMF_LOG_INFO("Version " PLUGIN_VERSION_TEXT);
62
+
63
+ // Load AMF Runtime
64
+ auto instance = Plugin::AMD::AMF::GetInstance();
65
+
66
+ // Report AMF Capabilities
67
+ //Plugin::AMD::VCECapabilities::ReportCapabilities();
68
+
69
+ // Register Encoders
70
+ Plugin::Interface::H264Interface::encoder_register();
71
+ } catch (std::exception& e) {
72
+ AMF_LOG_ERROR("Uncaught Exception: %s", e.what());
73
+ } catch (std::exception* e) {
74
+ AMF_LOG_ERROR("Uncaught Exception: %s", e->what());
75
+ delete e;
76
+ } catch (...) {
77
+ AMF_LOG_ERROR("Uncaught Unknown Exception.");
78
+ }
79
+ return true;
80
+}
81
+
82
+/** Optional: Called when the module is unloaded. */
83
+MODULE_EXPORT void obs_module_unload(void) {}
84
+
85
+/** Optional: Returns the full name of the module */
86
+MODULE_EXPORT const char* obs_module_name() {
87
+ return "AMD Media Framework Plugin";
88
+}
89
+
90
+/** Optional: Returns a description of the module */
91
+MODULE_EXPORT const char* obs_module_description() {
92
+ return "AMD Media Framework Plugin";
93
+}
94
+
95
+// Allow translation strings to reference other translation strings up to a certain depth.
96
+static std::map<std::string, std::string> translatedMap;
97
+const char *obs_module_text_multi(const char *key, uint8_t depth) {
98
+ // Check if it already was translated.
99
+ if (!translatedMap.count(std::string(key))) { // If not, translate it now.
100
+ const char* out = obs_module_text(key);
101
+
102
+ // Allow for nested translations using \@...\@ sequences.
103
+ if (depth > 0) {
104
+ // I'm pretty sure this can be optimized a ton if necessary.
105
+
106
+ size_t seqStart = 0,
107
+ seqEnd = 0;
108
+ bool haveSequence = false;
109
+
110
+ std::stringstream fout;
111
+
112
+ // Walk the given string.
113
+ std::string walkable = std::string(out);
114
+
115
+ for (size_t pos = 0; pos <= walkable.length(); pos++) {
116
+ std::string walked = walkable.substr(pos, 2);
117
+
118
+ if (walked == "\\@") { // Sequence Start/End
119
+ if (haveSequence) {
120
+ seqEnd = pos;
121
+
122
+ std::string sequence = walkable.substr(seqStart, seqEnd - seqStart);
123
+ fout << obs_module_text_multi(sequence.c_str(), depth--);
124
+ } else {
125
+ seqStart = pos + 2;
126
+ }
127
+ haveSequence = !haveSequence;
128
+ pos = pos + 2;
129
+ } else if (!haveSequence) {
130
+ fout << walked.substr(0, 1); // Append the left character.
131
+ }
132
+ }
133
+
134
+ std::pair<std::string, std::string> kv = std::pair<std::string, std::string>(std::string(key), fout.str());
135
+ translatedMap.insert(kv);
136
+ } else {
137
+ return out;
138
+ }
139
+ }
140
+
141
+ auto value = translatedMap.find(std::string(key));
142
+ return value->second.c_str();
143
+}
144
+
145
+//////////////////////////////////////////////////////////////////////////
146
+// Threading Specific
147
+//////////////////////////////////////////////////////////////////////////
148
+
149
+#if (defined _WIN32) || (defined _WIN64) // Windows
150
+#include <windows.h>
151
+
152
+const DWORD MS_VC_EXCEPTION = 0x406D1388;
153
+
154
+#pragma pack(push,8)
155
+typedef struct tagTHREADNAME_INFO {
156
+ DWORD dwType; // Must be 0x1000.
157
+ LPCSTR szName; // Pointer to name (in user addr space).
158
+ DWORD dwThreadID; // Thread ID (-1=caller thread).
159
+ DWORD dwFlags; // Reserved for future use, must be zero.
160
+} THREADNAME_INFO;
161
+#pragma pack(pop)
162
+
163
+void SetThreadName(uint32_t dwThreadID, const char* threadName) {
164
+
165
+ // DWORD dwThreadID = ::GetThreadId( static_cast<HANDLE>( t.native_handle() ) );
166
+
167
+ THREADNAME_INFO info;
168
+ info.dwType = 0x1000;
169
+ info.szName = threadName;
170
+ info.dwThreadID = dwThreadID;
171
+ info.dwFlags = 0;
172
+
173
+ __try {
174
+ RaiseException(MS_VC_EXCEPTION, 0, sizeof(info) / sizeof(ULONG_PTR), (ULONG_PTR*)&info);
175
+ } __except (EXCEPTION_EXECUTE_HANDLER) {}
176
+}
177
+void SetThreadName(const char* threadName) {
178
+ SetThreadName(GetCurrentThreadId(), threadName);
179
+}
180
+void SetThreadName(std::thread* thread, const char* threadName) {
181
+ DWORD threadId = ::GetThreadId(static_cast<HANDLE>(thread->native_handle()));
182
+ SetThreadName(threadId, threadName);
183
+}
184
+
185
+#else // Linux, Mac
186
+#include <sys/prctl.h>
187
+
188
+void SetThreadName(std::thread* thread, const char* threadName) {
189
+ auto handle = thread->native_handle();
190
+ pthread_setname_np(handle, threadName);
191
+}
192
+void SetThreadName(const char* threadName) {
193
+ prctl(PR_SET_NAME, threadName, 0, 0, 0);
194
+}
195
+
196
+#endif
197
\ No newline at end of file
198
obs-studio-0.16.5.tar.xz/plugins/image-source/data/locale/sk-SK.ini -> obs-studio-0.16.6.tar.xz/plugins/image-source/data/locale/sk-SK.ini
Changed
16
1
2
File="Súbor s obrázkom"
3
UnloadWhenNotShowing="Uvoľniť obrázok, ak nie je zobrazený"
4
5
+SlideShow="Prezentácia obrázkov"
6
+SlideShow.TransitionSpeed="Rýchlosť prechodu (v milisekundách)"
7
+SlideShow.SlideTime="Čas medzi snímkami (v milisekundách)"
8
+SlideShow.Files="Obrázky"
9
+SlideShow.Randomize="Náhodné prehrávanie"
10
+SlideShow.Transition="Prechod"
11
+SlideShow.Transition.Cut="Strih"
12
+SlideShow.Transition.Fade="Miznutie"
13
+SlideShow.Transition.Swipe="Potiahnite"
14
+SlideShow.Transition.Slide="Posunutie"
15
16
obs-studio-0.16.6.tar.xz/plugins/linux-alsa/data/locale/sk-SK.ini
Added
5
1
2
+AlsaInput="Zariadenie na záznam zvuku (ALSA)"
3
+Device="Zariadenie"
4
+
5
obs-studio-0.16.5.tar.xz/plugins/linux-capture/data/locale/sk-SK.ini -> obs-studio-0.16.6.tar.xz/plugins/linux-capture/data/locale/sk-SK.ini
Changed
15
1
2
Screen="Monitor"
3
CaptureCursor="Zachytávať kurzor"
4
AdvancedSettings="Rozšírené nastavenia"
5
+XServer="X Server"
6
XCCapture="Zachytávanie okna (Xcomposite)"
7
Window="Okno"
8
CropTop="Orezanie hore (pixely)"
9
10
CropBottom="Orezanie dole (pixely)"
11
SwapRedBlue="Vymeniť červenú a modrú"
12
LockX="Zamknúť X server počas snímania"
13
+IncludeXBorder="Zahŕňajú X okraj"
14
15
obs-studio-0.16.5.tar.xz/plugins/linux-capture/data/locale/sv-SE.ini -> obs-studio-0.16.6.tar.xz/plugins/linux-capture/data/locale/sv-SE.ini
Changed
7
1
2
SwapRedBlue="Byt röd och blå"
3
LockX="Lås X-servern medan källan är aktiv"
4
IncludeXBorder="Inkludera X Border"
5
+ExcludeAlpha="Använd alfalöst texturformat (lösning för Mesa)"
6
7
obs-studio-0.16.5.tar.xz/plugins/mac-avcapture/data/locale/da-DK.ini -> obs-studio-0.16.6.tar.xz/plugins/mac-avcapture/data/locale/da-DK.ini
Changed
9
1
2
FrameRate="Billedfrekvens"
3
InputFormat="Input format"
4
ColorSpace="Farverum"
5
+VideoRange="Videoudstrækning"
6
VideoRange.Partial="Delvis"
7
VideoRange.Full="Fuld"
8
Auto="Auto"
9
obs-studio-0.16.5.tar.xz/plugins/mac-avcapture/data/locale/sk-SK.ini -> obs-studio-0.16.6.tar.xz/plugins/mac-avcapture/data/locale/sk-SK.ini
Changed
11
1
2
UsePreset="Použiť prednastavené"
3
Preset="Predvoľba"
4
Buffering="Použiť vyrovnávaciu pamäť"
5
+FrameRate="Snímkovacia frekvencia"
6
+InputFormat="Vstupný formát"
7
+VideoRange.Full="Úplný"
8
+Auto="Automaticky"
9
+Unknown="Neznámy ($1)"
10
11
obs-studio-0.16.5.tar.xz/plugins/mac-syphon/data/locale/sk-SK.ini -> obs-studio-0.16.6.tar.xz/plugins/mac-syphon/data/locale/sk-SK.ini
Changed
7
1
2
Crop.origin.y="Orezanie hore"
3
Crop.size.width="Orezanie vpravo"
4
Crop.size.height="Orezanie dole"
5
+AllowTransparency="Povoliť transparentnosť"
6
7
obs-studio-0.16.6.tar.xz/plugins/mac-vth264/data/locale/da-DK.ini
Added
15
1
2
+VTH264EncHW="Apple VT H264 Hardware Encoder"
3
+VTH264EncSW="Apple VT H264 Software Encoder"
4
+VTEncoder="VideoToolbox Encoder"
5
+Bitrate="Bit-hastighed"
6
+UseMaxBitrate="Begræns bit-hastighed"
7
+MaxBitrate="Maks. bit-hastighed"
8
+MaxBitrateWindow="Maks. bit-hastighedsvindue (sekunder)"
9
+KeyframeIntervalSec="Keyframe interval (sekunder, 0= auto)"
10
+Profile="Profil"
11
+DefaultEncoder="(Standard Encoder)"
12
+UseBFrames="Benyt B-frames"
13
+
14
+
15
obs-studio-0.16.5.tar.xz/plugins/mac-vth264/data/locale/de-DE.ini -> obs-studio-0.16.6.tar.xz/plugins/mac-vth264/data/locale/de-DE.ini
Changed
20
1
2
-VTH264EncHW="Apple VT H264 Hardware Encoder"
3
-VTH264EncSW="Apple VT H264 Software Encoder"
4
-VTEncoder="VideoToolbox Encoder"
5
+VTH264EncHW="Apple VT H264 Hardware Codierer"
6
+VTH264EncSW="Apple VT H264 Software Codierer"
7
+VTEncoder="VideoToolbox Codierer"
8
Bitrate="Bitrate"
9
UseMaxBitrate="Limitiere Bitrate"
10
MaxBitrate="Maximale Bitrate"
11
12
KeyframeIntervalSec="Keyframeintervall (Sekunden, 0=auto)"
13
Profile="Profil"
14
None="(Nichts)"
15
-DefaultEncoder="(Standard-Encoder)"
16
+DefaultEncoder="(Standard-Codierer)"
17
UseBFrames="B-Frames verwenden"
18
19
20
obs-studio-0.16.5.tar.xz/plugins/obs-ffmpeg/data/locale/da-DK.ini -> obs-studio-0.16.6.tar.xz/plugins/obs-ffmpeg/data/locale/da-DK.ini
Changed
51
1
2
FFmpegOutput="FFmpeg Output"
3
FFmpegAAC="FFmpeg Standard AAC Encoder"
4
Bitrate="Bitrate"
5
+Preset="Forudindstillet"
6
+RateControl="Tempokontrol"
7
+KeyframeIntervalSec="Keyframe-interval (sekunder, 0= auto)"
8
+Lossless="Tabsfri"
9
10
+NVENC.Use2Pass="Benyt to-trins kodning"
11
+NVENC.Preset.default="Standard"
12
+NVENC.Preset.hq="Høj kvalitet"
13
+NVENC.Preset.hp="Høj ydeevne"
14
+NVENC.Preset.bd="BluRay"
15
+NVENC.Preset.ll="Lav latens"
16
+NVENC.Preset.llhq="Lav-latens høj kvalitet"
17
+NVENC.Preset.llhp="Lav latens høj ydeevne"
18
+NVENC.Level="Niveau"
19
20
FFmpegSource="Mediekilde"
21
LocalFile="Lokal fil"
22
Looping="Gentagelse"
23
Input="Input"
24
InputFormat="Input format"
25
+ForceFormat="Gennemtving-formatkonvertering"
26
HardwareDecode="Brug hardwareafkodning når tilgængelige"
27
ClearOnMediaEnd="Skjul kilde når afspilning slutter"
28
Advanced="Avanceret"
29
AudioBufferSize="Audio bufferstørrelse (frames)"
30
VideoBufferSize="Video bufferstørrelse (frames)"
31
+FrameDropping="Billedtabsniveau"
32
DiscardNone="Ingen"
33
+DiscardDefault="Standard (ugyldige pakker)"
34
+DiscardNonRef="Ikke-reference billeder"
35
DiscardBiDir="Tovejs frames"
36
DiscardNonIntra="Non-Intra frames"
37
DiscardNonKey="Non-Key Frames"
38
DiscardAll="Alle frames (pas på!)"
39
+RestartWhenActivated="Genstart afspilning når kilde bliver aktiv"
40
+ColorRange="YUV-farveområde"
41
+ColorRange.Auto="Auto"
42
+ColorRange.Partial="Delvis"
43
+ColorRange.Full="Fuld"
44
45
46
+MediaFileFilter.AllMediaFiles="Alle mediefiler"
47
+MediaFileFilter.VideoFiles="Videofiler"
48
+MediaFileFilter.AudioFiles="Lydfiler"
49
+MediaFileFilter.AllFiles="Alle filer"
50
51
obs-studio-0.16.5.tar.xz/plugins/obs-ffmpeg/data/locale/de-DE.ini -> obs-studio-0.16.6.tar.xz/plugins/obs-ffmpeg/data/locale/de-DE.ini
Changed
8
1
2
FFmpegOutput="FFmpeg Ausgabe"
3
-FFmpegAAC="FFmpeg Standard AAC Encoder"
4
+FFmpegAAC="FFmpeg Standard AAC Codierer"
5
Bitrate="Bitrate"
6
Preset="Voreinstellung"
7
RateControl="Qualitäts Regulierungsmethode"
8
obs-studio-0.16.5.tar.xz/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c -> obs-studio-0.16.6.tar.xz/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c
Changed
39
1
2
#include <obs-avc.h>
3
4
#include <libavutil/opt.h>
5
+#include <libavutil/pixdesc.h>
6
#include <libavformat/avformat.h>
7
8
#include "obs-ffmpeg-formats.h"
9
10
}
11
12
static inline void copy_data(AVPicture *pic, const struct encoder_frame *frame,
13
- int height)
14
+ int height, enum AVPixelFormat format)
15
{
16
+ int h_chroma_shift, v_chroma_shift;
17
+ av_pix_fmt_get_chroma_sub_sample(format, &h_chroma_shift, &v_chroma_shift);
18
for (int plane = 0; plane < MAX_AV_PLANES; plane++) {
19
if (!frame->data[plane])
20
continue;
21
22
int pic_rowsize = pic->linesize[plane];
23
int bytes = frame_rowsize < pic_rowsize ?
24
frame_rowsize : pic_rowsize;
25
- int plane_height = plane == 0 ? height : height/2;
26
+ int plane_height = height >> (plane ? v_chroma_shift : 0);
27
28
for (int y = 0; y < plane_height; y++) {
29
int pos_frame = y * frame_rowsize;
30
31
32
av_init_packet(&av_pkt);
33
34
- copy_data(&enc->dst_picture, frame, enc->height);
35
+ copy_data(&enc->dst_picture, frame, enc->height, enc->context->pix_fmt);
36
37
enc->vframe->pts = frame->pts;
38
ret = avcodec_encode_video2(enc->context, &av_pkt, enc->vframe,
39
obs-studio-0.16.5.tar.xz/plugins/obs-ffmpeg/obs-ffmpeg-output.c -> obs-studio-0.16.6.tar.xz/plugins/obs-ffmpeg/obs-ffmpeg-output.c
Changed
39
1
2
#include <util/platform.h>
3
4
#include <libavutil/opt.h>
5
+#include <libavutil/pixdesc.h>
6
#include <libavformat/avformat.h>
7
#include <libswscale/swscale.h>
8
9
10
}
11
12
static inline void copy_data(AVPicture *pic, const struct video_data *frame,
13
- int height)
14
+ int height, enum AVPixelFormat format)
15
{
16
+ int h_chroma_shift, v_chroma_shift;
17
+ av_pix_fmt_get_chroma_sub_sample(format, &h_chroma_shift, &v_chroma_shift);
18
for (int plane = 0; plane < MAX_AV_PLANES; plane++) {
19
if (!frame->data[plane])
20
continue;
21
22
int pic_rowsize = pic->linesize[plane];
23
int bytes = frame_rowsize < pic_rowsize ?
24
frame_rowsize : pic_rowsize;
25
- int plane_height = plane == 0 ? height : height/2;
26
+ int plane_height = height >> (plane ? v_chroma_shift : 0);
27
28
for (int y = 0; y < plane_height; y++) {
29
int pos_frame = y * frame_rowsize;
30
31
0, data->config.height, data->dst_picture.data,
32
data->dst_picture.linesize);
33
else
34
- copy_data(&data->dst_picture, frame, context->height);
35
+ copy_data(&data->dst_picture, frame, context->height, context->pix_fmt);
36
37
if (data->output->flags & AVFMT_RAWPICTURE) {
38
packet.flags |= AV_PKT_FLAG_KEY;
39
obs-studio-0.16.5.tar.xz/plugins/obs-libfdk/data/locale/de-DE.ini -> obs-studio-0.16.6.tar.xz/plugins/obs-libfdk/data/locale/de-DE.ini
Changed
7
1
2
-LibFDK="Libfdk AAC Encoder"
3
+LibFDK="libfdk AAC Codierer"
4
Bitrate="Bitrate"
5
Afterburner="AAC Afterburner aktivieren"
6
7
obs-studio-0.16.5.tar.xz/plugins/obs-outputs/data/locale/sk-SK.ini -> obs-studio-0.16.6.tar.xz/plugins/obs-outputs/data/locale/sk-SK.ini
Changed
7
1
2
RTMPStream="RTMP stream"
3
FLVOutput="Výstup do súboru FLV"
4
FLVOutput.FilePath="Cesta k súboru"
5
+Default="Základné"
6
7
obs-studio-0.16.6.tar.xz/plugins/obs-outputs/data/locale/vi-VN.ini
Added
5
1
2
+FLVOutput.FilePath="Đường dẫn tệp"
3
+Default="Mặc định"
4
+
5
obs-studio-0.16.5.tar.xz/plugins/obs-outputs/rtmp-stream.c -> obs-studio-0.16.6.tar.xz/plugins/obs-outputs/rtmp-stream.c
Changed
10
1
2
3
/* if currently dropping frames, drop packets until it reaches the
4
* desired priority */
5
- if (packet->priority < stream->min_priority) {
6
+ if (packet->drop_priority < stream->min_priority) {
7
stream->dropped_frames++;
8
return false;
9
} else {
10
obs-studio-0.16.6.tar.xz/plugins/obs-qsv11/data/locale/sk-SK.ini
Added
7
1
2
+Bitrate="Dátový tok"
3
+KeyframeIntervalSec="Kľúčová snímka každých (sekúnd, 0 = automaticky)"
4
+Profile="Profil"
5
+Accuracy="Presnosť"
6
+
7
obs-studio-0.16.5.tar.xz/plugins/obs-qsv11/data/locale/sv-SE.ini -> obs-studio-0.16.6.tar.xz/plugins/obs-qsv11/data/locale/sv-SE.ini
Changed
9
1
2
RateControl="Hastighetskontroll"
3
KeyframeIntervalSec="Intervall för keyframes (sekunder, 0=automatisk)"
4
Profile="Profil"
5
+AsyncDepth="Asynkroniseringsdjup"
6
Accuracy="Noggrannhet"
7
Convergence="Konvergens"
8
ICQQuality="ICQ-kvalitet"
9
obs-studio-0.16.5.tar.xz/plugins/obs-qsv11/obs-qsv11.c -> obs-studio-0.16.6.tar.xz/plugins/obs-qsv11/obs-qsv11.c
Changed
56
1
2
#include <util/darray.h>
3
#include <util/platform.h>
4
#include <obs-module.h>
5
+#include <obs-avc.h>
6
7
#ifndef _STDINT_H_INCLUDED
8
#define _STDINT_H_INCLUDED
9
10
11
static void parse_packet(struct obs_qsv *obsqsv, struct encoder_packet *packet, mfxBitstream *pBS, uint32_t fps_num, bool *received_packet)
12
{
13
+ uint8_t *start, *end;
14
+ int type;
15
+
16
if (pBS == NULL || pBS->DataLength == 0) {
17
*received_packet = false;
18
return;
19
20
packet->keyframe = (pBS->FrameType &
21
(MFX_FRAMETYPE_I | MFX_FRAMETYPE_REF));
22
23
+ /* ------------------------------------ */
24
+
25
+ start = obsqsv->packet_data.array;
26
+ end = start + obsqsv->packet_data.num;
27
+
28
+ start = (uint8_t*)obs_avc_find_startcode(start, end);
29
+ while (true) {
30
+ while (start < end && !*(start++));
31
+
32
+ if (start == end)
33
+ break;
34
+
35
+ type = start[0] & 0x1F;
36
+ if (type == OBS_NAL_SLICE_IDR || type == OBS_NAL_SLICE) {
37
+ uint8_t prev_type = (start[0] >> 5) & 0x3;
38
+ start[0] &= ~(3 << 5);
39
+
40
+ if (pBS->FrameType & MFX_FRAMETYPE_I)
41
+ start[0] |= OBS_NAL_PRIORITY_HIGHEST << 5;
42
+ else if (pBS->FrameType & MFX_FRAMETYPE_P)
43
+ start[0] |= OBS_NAL_PRIORITY_HIGH << 5;
44
+ else
45
+ start[0] |= prev_type << 5;
46
+ }
47
+
48
+ start = (uint8_t*)obs_avc_find_startcode(start, end);
49
+ }
50
+
51
+ /* ------------------------------------ */
52
+
53
//bool iFrame = pBS->FrameType & MFX_FRAMETYPE_I;
54
//bool bFrame = pBS->FrameType & MFX_FRAMETYPE_B;
55
bool pFrame = pBS->FrameType & MFX_FRAMETYPE_P;
56
obs-studio-0.16.5.tar.xz/plugins/obs-text/data/locale/nl-NL.ini -> obs-studio-0.16.6.tar.xz/plugins/obs-text/data/locale/nl-NL.ini
Changed
10
1
2
Filter.AllFiles="Alle bestanden"
3
Color="Kleur"
4
Opacity="Dekking"
5
+Gradient="Kleurovergang"
6
+Gradient.Color="Overgangskleur"
7
Alignment="Uitlijning"
8
Alignment.Left="Links"
9
Alignment.Center="Midden"
10
obs-studio-0.16.6.tar.xz/plugins/obs-text/data/locale/sk-SK.ini
Added
5
1
2
+Color="Farba"
3
+Opacity="Priehľadnosť"
4
+
5
obs-studio-0.16.5.tar.xz/plugins/rtmp-services/data/package.json -> obs-studio-0.16.6.tar.xz/plugins/rtmp-services/data/package.json
Changed
14
1
2
{
3
"url": "https://obsproject.com/obs2_update/rtmp-services",
4
- "version": 40,
5
+ "version": 41,
6
"files": [
7
{
8
"name": "services.json",
9
- "version": 40
10
+ "version": 41
11
}
12
]
13
}
14
obs-studio-0.16.5.tar.xz/plugins/rtmp-services/data/services.json -> obs-studio-0.16.6.tar.xz/plugins/rtmp-services/data/services.json
Changed
10
1
2
}
3
],
4
"recommended": {
5
- "keyint": 4,
6
+ "keyint": 2,
7
"profile": "main",
8
"max video bitrate": 18000,
9
"max audio bitrate": 160
10
obs-studio-0.16.5.tar.xz/plugins/text-freetype2/text-freetype2.c -> obs-studio-0.16.6.tar.xz/plugins/text-freetype2/text-freetype2.c
Changed
65
1
2
.get_properties = ft2_source_properties,
3
};
4
5
-bool obs_module_load()
6
+static bool plugin_initialized = false;
7
+
8
+static void init_plugin(void)
9
{
10
- char *config_dir = obs_module_config_path(NULL);
11
- if (config_dir) {
12
- os_mkdirs(config_dir);
13
- bfree(config_dir);
14
- }
15
+ if (plugin_initialized)
16
+ return;
17
18
FT_Init_FreeType(&ft2_lib);
19
20
if (ft2_lib == NULL) {
21
blog(LOG_WARNING, "FT2-text: Failed to initialize FT2.");
22
- return false;
23
+ return;
24
}
25
26
if (!load_cached_os_font_list())
27
load_os_font_list();
28
29
+ plugin_initialized = true;
30
+}
31
+
32
+bool obs_module_load()
33
+{
34
+ char *config_dir = obs_module_config_path(NULL);
35
+ if (config_dir) {
36
+ os_mkdirs(config_dir);
37
+ bfree(config_dir);
38
+ }
39
+
40
obs_register_source(&freetype2_source_info);
41
42
return true;
43
44
45
void obs_module_unload(void)
46
{
47
- free_os_font_list();
48
- FT_Done_FreeType(ft2_lib);
49
+ if (plugin_initialized) {
50
+ free_os_font_list();
51
+ FT_Done_FreeType(ft2_lib);
52
+ }
53
}
54
55
static const char *ft2_source_get_name(void *unused)
56
57
obs_data_t *font_obj = obs_data_create();
58
srcdata->src = source;
59
60
+ init_plugin();
61
+
62
srcdata->font_size = 32;
63
64
obs_data_set_default_string(font_obj, "face", DEFAULT_FACE);
65
obs-studio-0.16.6.tar.xz/plugins/vlc-video/data/locale/sk-SK.ini
Added
4
1
2
+Playlist="Playlist"
3
+
4
obs-studio-0.16.5.tar.xz/plugins/win-capture/data/locale/sk-SK.ini -> obs-studio-0.16.6.tar.xz/plugins/win-capture/data/locale/sk-SK.ini
Changed
12
1
2
+MonitorCapture="Zachytávanie obrazovky"
3
WindowCapture="Zachytávanie okna"
4
WindowCapture.Window="Okno"
5
WindowCapture.Priority.Title="Názov okna"
6
7
Monitor="Monitor"
8
PrimaryMonitor="Primárny monitor"
9
GameCapture="Zachytávanie hry"
10
+Mode="Mód"
11
12
obs-studio-0.16.5.tar.xz/plugins/win-capture/game-capture.c -> obs-studio-0.16.6.tar.xz/plugins/win-capture/game-capture.c
Changed
16
1
2
}
3
}
4
5
+extern void wait_for_hook_initialization(void);
6
+
7
static void *game_capture_create(obs_data_t *settings, obs_source_t *source)
8
{
9
struct game_capture *gc = bzalloc(sizeof(*gc));
10
+
11
+ wait_for_hook_initialization();
12
+
13
gc->source = source;
14
gc->initial_config = true;
15
gc->retry_interval = DEFAULT_RETRY_INTERVAL;
16
obs-studio-0.16.5.tar.xz/plugins/win-capture/load-graphics-offsets.c -> obs-studio-0.16.6.tar.xz/plugins/win-capture/load-graphics-offsets.c
Changed
14
1
2
bool success = false;
3
char data[128];
4
5
+#ifndef _WIN64
6
+ if (!is32bit && !is_64_bit_windows()) {
7
+ return true;
8
+ }
9
+#endif
10
+
11
dstr_copy(&offset_exe, "get-graphics-offsets");
12
dstr_cat(&offset_exe, is32bit ? "32.exe" : "64.exe");
13
offset_exe_path = obs_module_file(offset_exe.array);
14
obs-studio-0.16.5.tar.xz/plugins/win-capture/plugin-main.c -> obs-studio-0.16.6.tar.xz/plugins/win-capture/plugin-main.c
Changed
73
1
2
extern struct obs_source_info window_capture_info;
3
extern struct obs_source_info game_capture_info;
4
5
+static HANDLE init_hooks_thread = NULL;
6
+
7
extern bool cached_versions_match(void);
8
extern bool load_cached_graphics_offsets(bool is32bit);
9
extern bool load_graphics_offsets(bool is32bit);
10
11
12
#define USE_HOOK_ADDRESS_CACHE false
13
14
+static DWORD WINAPI init_hooks(LPVOID unused)
15
+{
16
+ if (USE_HOOK_ADDRESS_CACHE &&
17
+ cached_versions_match() &&
18
+ load_cached_graphics_offsets(IS32BIT)) {
19
+
20
+ load_cached_graphics_offsets(!IS32BIT);
21
+ obs_register_source(&game_capture_info);
22
+
23
+ } else if (load_graphics_offsets(IS32BIT)) {
24
+ load_graphics_offsets(!IS32BIT);
25
+ }
26
+
27
+ UNUSED_PARAMETER(unused);
28
+ return 0;
29
+}
30
+
31
+void wait_for_hook_initialization(void)
32
+{
33
+ static bool initialized = false;
34
+
35
+ if (!initialized) {
36
+ if (init_hooks_thread) {
37
+ WaitForSingleObject(init_hooks_thread, INFINITE);
38
+ CloseHandle(init_hooks_thread);
39
+ init_hooks_thread = NULL;
40
+ }
41
+ initialized = true;
42
+ }
43
+}
44
+
45
bool obs_module_load(void)
46
{
47
struct win_version_info ver;
48
49
50
obs_register_source(&window_capture_info);
51
52
- if (USE_HOOK_ADDRESS_CACHE &&
53
- cached_versions_match() &&
54
- load_cached_graphics_offsets(IS32BIT)) {
55
-
56
- load_cached_graphics_offsets(!IS32BIT);
57
- obs_register_source(&game_capture_info);
58
-
59
- } else if (load_graphics_offsets(IS32BIT)) {
60
- load_graphics_offsets(!IS32BIT);
61
- obs_register_source(&game_capture_info);
62
- }
63
+ init_hooks_thread = CreateThread(NULL, 0, init_hooks, NULL, 0, NULL);
64
+ obs_register_source(&game_capture_info);
65
66
return true;
67
}
68
+
69
+void obs_module_unload(void)
70
+{
71
+ wait_for_hook_initialization();
72
+}
73
obs-studio-0.16.5.tar.xz/plugins/win-dshow/data/locale/de-DE.ini -> obs-studio-0.16.6.tar.xz/plugins/win-dshow/data/locale/de-DE.ini
Changed
10
1
2
DeactivateWhenNotShowing="Deaktivieren, wenn die Quelle nicht angezeigt wird"
3
4
Bitrate="Bitrate"
5
-Encoder.C985="AVerMedia H.264 Encoder (c985)"
6
-Encoder.C353="AVerMedia H.264 Encoder"
7
+Encoder.C985="AVerMedia H.264 Codierer (c985)"
8
+Encoder.C353="AVerMedia H.264 Codierer"
9
10
obs-studio-0.16.5.tar.xz/plugins/win-dshow/data/locale/sk-SK.ini -> obs-studio-0.16.6.tar.xz/plugins/win-dshow/data/locale/sk-SK.ini
Changed
9
1
2
VideoFormat.Unknown="Neznámy (%1)"
3
UseCustomAudioDevice="Použiť vlastné audio zariadenie"
4
AudioDevice="Audio zariadenie"
5
+Buffering.Enable="Zapnutý"
6
Activate="Aktivovať"
7
Deactivate="Deaktivovať"
8
FlipVertically="Prevrátiť zvislo"
9
obs-studio-0.16.6.tar.xz/plugins/win-ivcam
Added
2
1
+(directory)
2
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/CMakeLists.txt
Added
64
1
2
+project(win-ivcam)
3
+
4
+if(DISABLE_IVCAM)
5
+ message(STATUS "Realsense camera plugin disabled")
6
+ return()
7
+endif()
8
+
9
+find_package(RSSDK QUIET)
10
+if(NOT RSSDK_FOUND AND ENABLE_IVCAM)
11
+ message(FATAL_ERROR "RSSDK not found, but the realsense camera plugin is set as enabled")
12
+elseif(NOT RSSDK_FOUND)
13
+ message(STATUS "RSSDK not found, Realsense camera plugin disabled")
14
+ return()
15
+endif()
16
+
17
+include(IDLFileHelper)
18
+
19
+set(win-ivcam_seg_library_IDLS
20
+ seg_service/seg_service.idl
21
+ )
22
+
23
+add_idl_files(win-ivcam_seg_library_GENERATED_FILES
24
+ ${win-ivcam_seg_library_IDLS})
25
+
26
+include_directories(
27
+ ${CMAKE_CURRENT_BINARY_DIR}
28
+ )
29
+
30
+set(win-ivcam_seg_library_HEADERS
31
+ seg_library/Dependencies.h
32
+ seg_library/SegImage.h
33
+ seg_library/SegServer.h
34
+ seg_library/SegServerImpl.h
35
+ seg_library/SegService.h
36
+ )
37
+set(win-ivcam_seg_library_SOURCES
38
+ seg_library/SerServer.cpp
39
+ seg_library/SegServerImpl.cpp
40
+ seg_library/SegImage.cpp
41
+ ${win-ivcam_seg_library_GENERATED_FILES}
42
+ )
43
+
44
+set(win-ivcam_SOURCES
45
+ realsense.cpp
46
+ )
47
+
48
+source_group("seg_library\\Source Files" FILES ${win-ivcam_seg_library_SOURCES})
49
+source_group("seg_library\\Header Files" FILES ${win-ivcam_seg_library_HEADERS})
50
+
51
+add_library(win-ivcam MODULE
52
+ ${win-ivcam_seg_library_HEADERS}
53
+ ${win-ivcam_seg_library_SOURCES}
54
+ ${win-ivcam_SOURCES}
55
+ )
56
+target_link_libraries(win-ivcam
57
+ libobs)
58
+
59
+install_obs_plugin_with_data(win-ivcam data)
60
+
61
+if(CMAKE_SIZEOF_VOID_P EQUAL 4)
62
+ add_subdirectory(seg_service)
63
+endif()
64
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/realsense.cpp
Added
186
1
2
+/*
3
+Copyright(c) 2016, Intel Corporation
4
+
5
+Redistribution and use in source and binary forms, with or without
6
+modification, are permitted provided that the following conditions are met :
7
+
8
+- Redistributions of source code must retain the above copyright notice, this
9
+list of conditions and the following disclaimer.
10
+- Redistributions in binary form must reproduce the above copyright notice,
11
+this list of conditions and the following disclaimer in the documentation and /
12
+or other materials provided with the distribution.
13
+- Neither the name of Intel Corporation nor the names of its contributors may
14
+be used to endorse or promote products derived from this software without
15
+specific prior written permission.
16
+
17
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
18
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+DISCLAIMED.IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
21
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+DAMAGES(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+*/
28
+
29
+#include <obs-module.h>
30
+#include <stdlib.h>
31
+#include <util/threading.h>
32
+#include <util/platform.h>
33
+#include <obs.h>
34
+#include <thread>
35
+#include <atomic>
36
+
37
+#include "seg_library/SegService.h"
38
+
39
+using namespace std;
40
+
41
+#include <Tlhelp32.h>
42
+#include <shlobj.h>
43
+#include <sstream>
44
+
45
+#define do_log(level, format, ...) \
46
+ blog(level, "[win-ivcam (%s): '%s'] " format, \
47
+ __FUNCTION__, obs_source_get_name(source), \
48
+ ##__VA_ARGS__)
49
+
50
+#define warn(format, ...) do_log(LOG_WARNING, format, ##__VA_ARGS__)
51
+#define info(format, ...) do_log(LOG_INFO, format, ##__VA_ARGS__)
52
+#define debug(format, ...) do_log(LOG_DEBUG, format, ##__VA_ARGS__)
53
+
54
+void TerminateProcessByName(wchar_t *procName)
55
+{
56
+ PROCESSENTRY32 entry;
57
+ entry.dwSize = sizeof(entry);
58
+
59
+ HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, NULL);
60
+ BOOL hRes = Process32First(snapshot, &entry);
61
+
62
+ while (hRes) {
63
+ if (wcscmp(entry.szExeFile, procName) == 0) {
64
+ HANDLE process = OpenProcess(PROCESS_TERMINATE, 0,
65
+ (DWORD)entry.th32ProcessID);
66
+
67
+ if (process != NULL) {
68
+ TerminateProcess(process, 0);
69
+ CloseHandle(process);
70
+ }
71
+ }
72
+ hRes = Process32Next(snapshot, &entry);
73
+ }
74
+ CloseHandle(snapshot);
75
+}
76
+
77
+struct IVCamSource {
78
+ SegServer* pSegServer;
79
+ obs_source_t *source;
80
+ thread camThread;
81
+ atomic<bool> stopThread = false;
82
+
83
+ void IVCamSource::PushSegmentedFrameData(SegImage *segmented_image)
84
+ {
85
+ /*uint8_t* pix = (uint8_t*)segmented_image->GetData();
86
+ if (pix != NULL) {
87
+ int pixels = segmented_image->Width() *
88
+ segmented_image->Height();
89
+
90
+ for (int i = 0; i < pixels; i++) {
91
+ if (pix[3]<100) {
92
+ pix[0] /= 3; pix[1] /= 2; pix[2] /= 3;
93
+ }
94
+ pix += 4;
95
+ }
96
+ }*/
97
+
98
+ obs_source_frame frame = {};
99
+ frame.data[0] = (uint8_t*)segmented_image->GetData();
100
+ frame.linesize[0] = segmented_image->Pitch();
101
+ frame.format = VIDEO_FORMAT_BGRA;
102
+ frame.width = segmented_image->Width();
103
+ frame.height = segmented_image->Height();
104
+ frame.timestamp = os_gettime_ns();
105
+ obs_source_output_video(source, &frame);
106
+ }
107
+
108
+ void IVCamSource::CamThread()
109
+ {
110
+ pSegServer = SegServer::CreateServer();
111
+ SegServer::ServiceStatus status = pSegServer->Init();
112
+
113
+ if (status != SegServer::ServiceStatus::SERVICE_NO_ERROR) {
114
+ warn("SegServer initialization error (%d)\n", status);
115
+ return;
116
+ }
117
+
118
+ while (!stopThread) {
119
+ SegImage* image = nullptr;
120
+ SegServer::ServiceStatus error =
121
+ pSegServer->GetFrame(&image);
122
+ if (error != SegServer::ServiceStatus::SERVICE_NO_ERROR
123
+ || image->Width() == 0
124
+ || image->Height() == 0) {
125
+ //warn("AcquireFrame failed (%d)\n", error);
126
+ continue;
127
+ }
128
+
129
+ PushSegmentedFrameData(image);
130
+
131
+ delete image;
132
+ }
133
+
134
+ pSegServer->Stop();
135
+ delete pSegServer;
136
+ }
137
+
138
+ inline IVCamSource::IVCamSource(obs_source_t* source_) :
139
+ source(source_)
140
+ {
141
+ stopThread = false;
142
+ camThread = std::thread(&IVCamSource::CamThread, this);
143
+ }
144
+
145
+ static void* IVCamSource::CreateIVCamSource(obs_data_t*,
146
+ obs_source_t *source)
147
+ {
148
+ //kill whatever is running just in case
149
+ TerminateProcessByName(L"seg_service.exe");
150
+ return new IVCamSource(source);
151
+ }
152
+
153
+ inline IVCamSource::~IVCamSource()
154
+ {
155
+ //done using it, kill the seg_service
156
+ stopThread = true;
157
+ if (camThread.joinable()) camThread.join();
158
+ TerminateProcessByName(L"seg_service.exe");
159
+ }
160
+};
161
+
162
+static const char *GetIVCamName(void*)
163
+{
164
+ return "Intel(R) RealSense(TM) 3D Camera GreenScreen";
165
+}
166
+
167
+static void DestroyIVCamSource(void *data)
168
+{
169
+ delete reinterpret_cast<IVCamSource*>(data);
170
+}
171
+
172
+OBS_DECLARE_MODULE()
173
+
174
+bool obs_module_load(void)
175
+{
176
+ obs_source_info info = {};
177
+ info.id = "win-ivcam";
178
+ info.type = OBS_SOURCE_TYPE_INPUT;
179
+ info.output_flags = OBS_SOURCE_ASYNC_VIDEO;
180
+ info.get_name = GetIVCamName;
181
+ info.create = IVCamSource::CreateIVCamSource;
182
+ info.destroy = DestroyIVCamSource;
183
+ obs_register_source(&info);
184
+ return true;
185
+}
186
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_library
Added
2
1
+(directory)
2
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_library/Dependencies.h
Added
43
1
2
+/*
3
+Copyright (c) 2015-2016, Intel Corporation
4
+
5
+Redistribution and use in source and binary forms, with or without
6
+modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright notice,
9
+ this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+ * Neither the name of Intel Corporation nor the names of its contributors
14
+ may be used to endorse or promote products derived from this software
15
+ without specific prior written permission.
16
+
17
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
21
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+*/
28
+
29
+#ifndef DEPENDENCIES_H_
30
+#define DEPENDENCIES_H_
31
+
32
+// WinAPI section
33
+#include <windows.h>
34
+
35
+// CRT section
36
+#include <cstdlib>
37
+#include <cstring>
38
+#include <cstdio>
39
+#include <exception>
40
+
41
+#endif // DEPENDENCIES_H_
42
\ No newline at end of file
43
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_library/SegImage.cpp
Added
104
1
2
+/*
3
+Copyright (c) 2015-2016, Intel Corporation
4
+
5
+Redistribution and use in source and binary forms, with or without
6
+modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright notice,
9
+ this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+ * Neither the name of Intel Corporation nor the names of its contributors
14
+ may be used to endorse or promote products derived from this software
15
+ without specific prior written permission.
16
+
17
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
21
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+*/
28
+
29
+#include "SegImage.h"
30
+
31
+SegImage::SegImage()
32
+ : m_width(0), m_height(0), m_pitch(0), m_data(nullptr), m_number(0), m_timestamp(0L) {}
33
+
34
+SegImage::SegImage(int width, int height, int pitch, void* data, long long timestamp, int number)
35
+ : m_width(width), m_height(height), m_pitch(pitch), m_data(new char[height*pitch]), m_timestamp(timestamp), m_number(number)
36
+{
37
+ memcpy_s(m_data, height*pitch, data, height*pitch);
38
+}
39
+
40
+SegImage::SegImage(SegImage const& src)
41
+ : m_width(src.m_width), m_height(src.m_height), m_pitch(src.m_pitch), m_data(new char[src.m_height*src.m_pitch]),
42
+ m_timestamp(src.m_timestamp), m_number(src.m_number)
43
+{
44
+ memcpy_s(m_data, m_pitch*m_height, src.m_data, src.m_height*src.m_pitch);
45
+}
46
+
47
+SegImage::~SegImage()
48
+{
49
+ delete[] m_data;
50
+}
51
+
52
+SegImage& SegImage::operator=(const SegImage & src)
53
+{
54
+ if (this != &src)
55
+ {
56
+ m_width = src.m_width;
57
+ m_height = src.m_height;
58
+ m_pitch = src.m_pitch;
59
+ if (m_data)
60
+ {
61
+ delete[] m_data;
62
+ }
63
+ m_data = new char[m_height*m_pitch];
64
+ m_timestamp = src.m_timestamp;
65
+ m_number = src.m_number;
66
+ memcpy_s(m_data, m_pitch*m_height, src.m_data, m_height*m_pitch);
67
+ }
68
+ return *this;
69
+}
70
+
71
+int SegImage::Width()
72
+{
73
+ return m_width;
74
+}
75
+
76
+int SegImage::Height()
77
+{
78
+ return m_height;
79
+}
80
+
81
+int SegImage::Pitch()
82
+{
83
+ return m_pitch;
84
+}
85
+
86
+long long SegImage::TimeStamp()
87
+{
88
+ return m_timestamp;
89
+}
90
+
91
+int SegImage::Number()
92
+{
93
+ return m_number;
94
+}
95
+
96
+SegPixel SegImage::Get(int i, int j)
97
+{
98
+ SegPixel result;
99
+ result.blue = (((char*)m_data) + j*m_pitch + i * 4)[0];
100
+ result.green = (((char*)m_data) + j*m_pitch + i * 4)[1];
101
+ result.red = (((char*)m_data) + j*m_pitch + i * 4)[2];
102
+ return result;
103
+}
104
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_library/SegImage.h
Added
68
1
2
+/*
3
+Copyright (c) 2015-2016, Intel Corporation
4
+
5
+Redistribution and use in source and binary forms, with or without
6
+modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright notice,
9
+ this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+ * Neither the name of Intel Corporation nor the names of its contributors
14
+ may be used to endorse or promote products derived from this software
15
+ without specific prior written permission.
16
+
17
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
21
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+*/
28
+
29
+#ifndef SEG_IMAGE_H_
30
+#define SEG_IMAGE_H_
31
+
32
+#include "Dependencies.h"
33
+
34
+struct SegPixel
35
+{
36
+ unsigned char red;
37
+ unsigned char green;
38
+ unsigned char blue;
39
+};
40
+
41
+class SegImage
42
+{
43
+private:
44
+ int m_width;
45
+ int m_height;
46
+ int m_pitch;
47
+ long long m_timestamp;
48
+ int m_number;
49
+ void* m_data;
50
+public:
51
+ SegImage();
52
+ SegImage(SegImage const& src);
53
+ SegImage(int width, int height, int pitch, void* data, long long timestamp, int number);
54
+ ~SegImage();
55
+
56
+ SegImage& operator=(const SegImage & src);
57
+
58
+ int Width();
59
+ int Height();
60
+ int Pitch();
61
+ long long TimeStamp();
62
+ int Number();
63
+ SegPixel Get(int i, int j);
64
+ void* GetData() { return m_data; };
65
+};
66
+
67
+#endif // SEG_IMAGE_H_
68
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_library/SegServer.h
Added
73
1
2
+/*
3
+Copyright (c) 2015-2016, Intel Corporation
4
+
5
+Redistribution and use in source and binary forms, with or without
6
+modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright notice,
9
+ this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+ * Neither the name of Intel Corporation nor the names of its contributors
14
+ may be used to endorse or promote products derived from this software
15
+ without specific prior written permission.
16
+
17
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
21
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+*/
28
+
29
+#ifndef SEG_SERVER_H_
30
+#define SEG_SERVER_H_
31
+
32
+#include "Dependencies.h"
33
+#include "SegImage.h"
34
+
35
+#define USE_DEFAULT_PROPERTY_VALUE -1
36
+
37
+class SegServer
38
+{
39
+public:
40
+ enum ServiceStatus
41
+ {
42
+ COM_LIB_INIT_ERROR = -1,
43
+ SERVICE_INIT_ERROR = -2,
44
+ SERVICE_REINIT_ERROR = -3,
45
+ SERVICE_FUNC_ERROR = -4,
46
+ SHARED_MEMORY_ERROR = -5,
47
+ ALLOCATION_FAILURE = -6,
48
+ SERVICE_NO_ERROR = 0,
49
+ SERVICE_NOT_READY = 1
50
+ };
51
+
52
+ static SegServer* CreateServer();
53
+ static SegServer* GetServerInstance();
54
+
55
+ virtual ServiceStatus Init() = 0;
56
+ virtual ServiceStatus Stop() = 0;
57
+
58
+ virtual ServiceStatus GetFrame(SegImage** image) = 0;
59
+
60
+ virtual void SetFps(int fps) = 0;
61
+ virtual int GetFps() = 0;
62
+ /**
63
+ @brief Set the IVCAM motion range trade off option, ranged from 0 (short range, better motion) to 100 (far range, long exposure). Custom property value used only with 60 fps profile
64
+ @param[in] value The motion range trade option. USE_DEFAULT_PROPERTY_VALUE to return default value
65
+ */
66
+ virtual void SetIVCAMMotionRangeTradeOff(int value) = 0;
67
+ virtual int GetIVCAMMotionRangeTradeOff() = 0;
68
+
69
+ virtual ~SegServer() {};
70
+};
71
+
72
+#endif // SEG_SERVER_H_
73
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_library/SegServerImpl.cpp
Added
201
1
2
+/*
3
+Copyright (c) 2015-2016, Intel Corporation
4
+
5
+Redistribution and use in source and binary forms, with or without
6
+modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright notice,
9
+ this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+ * Neither the name of Intel Corporation nor the names of its contributors
14
+ may be used to endorse or promote products derived from this software
15
+ without specific prior written permission.
16
+
17
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
21
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+*/
28
+
29
+#include "SegServerImpl.h"
30
+
31
+SegServerImpl* SegServerImpl::instance = nullptr;
32
+
33
+SegServerImpl::SegServerImpl()
34
+{
35
+ m_comInit = false;
36
+ m_serviceConnected = false;
37
+ m_sharedBuffer = NULL;
38
+}
39
+
40
+SegServerImpl::SegServerImpl(SegServerImpl const& src) {};
41
+SegServerImpl::~SegServerImpl()
42
+{
43
+ if (m_server)
44
+ {
45
+ m_server->Release();
46
+ m_server = nullptr;
47
+ }
48
+ instance = nullptr;
49
+};
50
+SegServerImpl& SegServerImpl::operator=(const SegServerImpl & src) { return *this; };
51
+
52
+SegServer* SegServerImpl::CreateServer()
53
+{
54
+ if (instance == nullptr)
55
+ {
56
+ instance = new SegServerImpl();
57
+ return instance;
58
+ }
59
+ else
60
+ {
61
+ return nullptr;
62
+ }
63
+}
64
+
65
+SegServer* SegServerImpl::GetServerInstance()
66
+{
67
+ return instance;
68
+}
69
+
70
+SegServerImpl::ServiceStatus SegServerImpl::Init()
71
+{
72
+ if (m_comInit && m_serviceConnected)
73
+ return SERVICE_REINIT_ERROR;
74
+ GUID guid = { 0 };
75
+ m_bufferName = new wchar_t[40]();
76
+ CoCreateGuid(&guid);
77
+ StringFromGUID2(guid, m_bufferName, 40);
78
+ if (!m_comInit)
79
+ {
80
+ HRESULT comInit = CoInitializeEx(0, COINIT_MULTITHREADED);
81
+ if (FAILED(comInit))
82
+ {
83
+ comInit = CoInitialize(0);
84
+ if (FAILED(comInit))
85
+ {
86
+ return COM_LIB_INIT_ERROR;
87
+ }
88
+ }
89
+ m_comInit = true;
90
+ }
91
+
92
+ if (!m_serviceConnected)
93
+ {
94
+ HRESULT instanceCreate = CoCreateInstance(CLSID_SegProc, NULL, CLSCTX_LOCAL_SERVER, IID_ISegProc, (void**)&m_server);
95
+ if (FAILED(instanceCreate)) {
96
+ return SERVICE_INIT_ERROR;
97
+ }
98
+
99
+ HRESULT serverInit = m_server->Init(m_bufferName);
100
+ if (FAILED(serverInit)) {
101
+ return SERVICE_INIT_ERROR;
102
+ }
103
+ m_serviceConnected = true;
104
+ }
105
+ return SERVICE_NO_ERROR;
106
+}
107
+
108
+SegServerImpl::ServiceStatus SegServerImpl::Stop()
109
+{
110
+ HRESULT errCode = m_server->Stop();
111
+ if (FAILED(errCode)) {
112
+ return SERVICE_FUNC_ERROR;
113
+ }
114
+ return SERVICE_NO_ERROR;
115
+}
116
+
117
+void SegServerImpl::SetFps(int fps)
118
+{
119
+ m_server->SetFps(fps);
120
+}
121
+
122
+int SegServerImpl::GetFps()
123
+{
124
+ int outFps = -1;
125
+ m_server->GetFps(&outFps);
126
+ return outFps;
127
+}
128
+
129
+void SegServerImpl::SetIVCAMMotionRangeTradeOff(int value)
130
+{
131
+ m_server->SetIVCAMMotionRangeTradeOff(value);
132
+}
133
+
134
+int SegServerImpl::GetIVCAMMotionRangeTradeOff()
135
+{
136
+ int outPropertyValue = -1;
137
+ m_server->GetIVCAMMotionRangeTradeOff(&outPropertyValue);
138
+ return outPropertyValue;
139
+}
140
+
141
+SegServerImpl::ServiceStatus SegServerImpl::GetFrame(SegImage** image)
142
+{
143
+ ServiceStatus res = SERVICE_NO_ERROR;
144
+ int frameId = -1;
145
+ int bufferRealloc = -1;
146
+ int frameSize = -1;
147
+ if (FAILED(m_server->LockBuffer(&frameId, &frameSize, &bufferRealloc)))
148
+ {
149
+ return SHARED_MEMORY_ERROR;
150
+ }
151
+ if (bufferRealloc)
152
+ {
153
+ HANDLE hMapFile = OpenFileMapping(FILE_MAP_READ, FALSE, m_bufferName);
154
+
155
+ if (hMapFile == NULL)
156
+ {
157
+ m_server->UnlockBuffer();
158
+ return SHARED_MEMORY_ERROR;
159
+ }
160
+
161
+ m_sharedBuffer = (LPTSTR)MapViewOfFile(hMapFile, FILE_MAP_READ, 0, 0, frameSize * 2);
162
+
163
+ if (m_sharedBuffer == NULL)
164
+ {
165
+ CloseHandle(hMapFile);
166
+ m_server->UnlockBuffer();
167
+ return SHARED_MEMORY_ERROR;
168
+ }
169
+ CloseHandle(hMapFile);
170
+ }
171
+
172
+ if(m_sharedBuffer && frameId != -1 && frameSize != -1)
173
+ {
174
+ size_t offset = (size_t)frameId * frameSize;
175
+ //int width = ((int*)(m_sharedBuffer + offset))[0];
176
+ //int height = ((int*)(m_sharedBuffer + offset))[1];
177
+ //int pitch = ((int*)(m_sharedBuffer + offset))[2];
178
+ FrameHeader* fhPtr = (FrameHeader*)(m_sharedBuffer + offset);
179
+ int width = fhPtr->width;
180
+ int height = fhPtr->height;
181
+ int pitch = fhPtr->pitch;
182
+ long long timestamp = fhPtr->timestamp;
183
+ int frameNumber = fhPtr->frameNumber;
184
+ void* data = (void*)(m_sharedBuffer + offset + sizeof(FrameHeader));
185
+ SegImage* result = nullptr;
186
+ try
187
+ {
188
+ result = new SegImage(width, height, pitch, data, timestamp, frameNumber);
189
+ }
190
+ catch (std::bad_alloc &/*e*/)
191
+ {
192
+ res = ALLOCATION_FAILURE;
193
+ result = NULL;
194
+ }
195
+ *image = result;
196
+ }
197
+ else
198
+ {
199
+ res = SERVICE_NOT_READY;
200
+ }
201
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_library/SegServerImpl.h
Added
79
1
2
+/*
3
+Copyright (c) 2015-2016, Intel Corporation
4
+
5
+Redistribution and use in source and binary forms, with or without
6
+modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright notice,
9
+ this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+ * Neither the name of Intel Corporation nor the names of its contributors
14
+ may be used to endorse or promote products derived from this software
15
+ without specific prior written permission.
16
+
17
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
21
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+*/
28
+
29
+#ifndef SEG_SERVER_IMPL_H_
30
+#define SEG_SERVER_IMPL_H_
31
+
32
+#include "Dependencies.h"
33
+#include "SegImage.h"
34
+#include "SegServer.h"
35
+
36
+#include "seg_service.h"
37
+
38
+typedef struct
39
+{
40
+ int width;
41
+ int height;
42
+ int pitch;
43
+ long long timestamp;
44
+ int frameNumber;
45
+} FrameHeader;
46
+
47
+class SegServerImpl : public SegServer
48
+{
49
+private:
50
+ static SegServerImpl* instance;
51
+ ISegProc* m_server;
52
+
53
+ bool m_comInit;
54
+ bool m_serviceConnected;
55
+
56
+ LPWSTR m_bufferName;
57
+ LPCTSTR m_sharedBuffer;
58
+
59
+ SegServerImpl();
60
+ SegServerImpl(SegServerImpl const& src);
61
+ SegServerImpl& operator=(const SegServerImpl & src);
62
+
63
+public:
64
+ virtual ~SegServerImpl();
65
+ static SegServer* CreateServer();
66
+ static SegServer* GetServerInstance();
67
+
68
+ ServiceStatus Init();
69
+ ServiceStatus Stop();
70
+ void SetFps(int fps) override;
71
+ int GetFps() override;
72
+ void SetIVCAMMotionRangeTradeOff(int value) override;
73
+ int GetIVCAMMotionRangeTradeOff() override;
74
+
75
+ ServiceStatus GetFrame(SegImage** image);
76
+};
77
+
78
+#endif // SEG_SERVER_IMPL_H_
79
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_library/SegService.h
Added
36
1
2
+/*
3
+Copyright (c) 2015-2016, Intel Corporation
4
+
5
+Redistribution and use in source and binary forms, with or without
6
+modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright notice,
9
+ this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+ * Neither the name of Intel Corporation nor the names of its contributors
14
+ may be used to endorse or promote products derived from this software
15
+ without specific prior written permission.
16
+
17
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
21
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+*/
28
+
29
+#ifndef SEG_SERVICE_H_
30
+#define SEG_SERVICE_H_
31
+
32
+#include "SegImage.h"
33
+#include "SegServer.h"
34
+
35
+#endif // SEG_SERVICE_H_
36
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_library/SerServer.cpp
Added
41
1
2
+/*
3
+Copyright (c) 2015-2016, Intel Corporation
4
+
5
+Redistribution and use in source and binary forms, with or without
6
+modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright notice,
9
+ this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+ * Neither the name of Intel Corporation nor the names of its contributors
14
+ may be used to endorse or promote products derived from this software
15
+ without specific prior written permission.
16
+
17
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
21
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+*/
28
+
29
+#include "SegServer.h"
30
+#include "SegServerImpl.h"
31
+
32
+SegServer* SegServer::CreateServer()
33
+{
34
+ return SegServerImpl::CreateServer();
35
+}
36
+
37
+SegServer* SegServer::GetServerInstance()
38
+{
39
+ return SegServerImpl::GetServerInstance();
40
+}
41
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_service
Added
2
1
+(directory)
2
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_service/CMakeLists.txt
Added
45
1
2
+project(seg_service)
3
+
4
+include(IDLFileHelper)
5
+
6
+set(seg_service_IDLS
7
+ seg_service.idl
8
+ )
9
+
10
+add_idl_files_with_tlb(seg_service_GENERATED_FILES
11
+ ${seg_service_IDLS})
12
+
13
+include_directories(
14
+ ${RSSDK_INCLUDE_DIRS}
15
+ ${CMAKE_CURRENT_BINARY_DIR}
16
+ )
17
+
18
+set(seg_service_HEADERS
19
+ resource.h
20
+ SegProc.h
21
+ stdafx.h
22
+ targetver.h
23
+ xdlldata.h
24
+ )
25
+
26
+set(seg_service_SOURCES
27
+ SegProc.rgs
28
+ seg_service.rgs
29
+ seg_service.cpp
30
+ SegProc.cpp
31
+ stdafx.cpp
32
+ xdlldata.c
33
+ seg_service.rc
34
+ ${seg_service_GENERATED_FILES}
35
+ )
36
+
37
+add_executable(seg_service WIN32
38
+ ${seg_service_SOURCES}
39
+ ${seg_service_HEADERS})
40
+
41
+target_link_libraries(seg_service
42
+ )
43
+
44
+install_obs_datatarget(seg_service "obs-plugins/win-ivcam")
45
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_service/SegProc.cpp
Added
37
1
2
+/*
3
+Copyright (c) 2015-2016, Intel Corporation
4
+
5
+Redistribution and use in source and binary forms, with or without
6
+modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright notice,
9
+ this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+ * Neither the name of Intel Corporation nor the names of its contributors
14
+ may be used to endorse or promote products derived from this software
15
+ without specific prior written permission.
16
+
17
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
21
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+*/
28
+
29
+// SegProc.cpp : Implementation of CSegProc
30
+
31
+#include "stdafx.h"
32
+#include "SegProc.h"
33
+
34
+
35
+// CSegProc
36
+
37
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_service/SegProc.h
Added
201
1
2
+/*
3
+Copyright (c) 2015-2016, Intel Corporation
4
+
5
+Redistribution and use in source and binary forms, with or without
6
+modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright notice,
9
+ this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+ * Neither the name of Intel Corporation nor the names of its contributors
14
+ may be used to endorse or promote products derived from this software
15
+ without specific prior written permission.
16
+
17
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
21
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+*/
28
+
29
+// SegProc.h : Declaration of the CSegProc
30
+
31
+#pragma once
32
+#include "resource.h" // main symbols
33
+#include "seg_service.h"
34
+
35
+#include "pxcsession.h"
36
+#include "pxcsensemanager.h"
37
+#include "pxc3dseg.h"
38
+
39
+#include <string>
40
+
41
+#include <mutex>
42
+#include <thread>
43
+#include <condition_variable>
44
+
45
+#if defined(_WIN32_WCE) && !defined(_CE_DCOM) && !defined(_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA)
46
+#error "Single-threaded COM objects are not properly supported on Windows CE platform, such as the Windows Mobile platforms that do not include full DCOM support. Define _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA to force ATL to support creating single-thread COM object's and allow use of it's single-threaded COM object implementations. The threading model in your rgs file was set to 'Free' as that is the only threading model supported in non DCOM Windows CE platforms."
47
+#endif
48
+
49
+using namespace ATL;
50
+
51
+
52
+/* Number of milliseconds service waits for worker thread to start */
53
+#define START_TIMEOUT 2000
54
+#define USE_DEFAULT_PROPERTY_VALUE -1
55
+
56
+// CSegProc
57
+
58
+typedef struct _frameHeader
59
+{
60
+ int width;
61
+ int height;
62
+ int pitch;
63
+ long long timestamp;
64
+ int frameNumber;
65
+} FrameHeader;
66
+
67
+class ATL_NO_VTABLE CSegProc :
68
+ public CComObjectRootEx<CComSingleThreadModel>,
69
+ public CComCoClass<CSegProc, &CLSID_SegProc>,
70
+ public IDispatchImpl<ISegProc, &IID_ISegProc, &LIBID_seg_serviceLib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
71
+ public PXCSenseManager::Handler
72
+{
73
+private:
74
+ enum {
75
+ DEPTH_PROPERTY_NORMAL_MODE = 0x03,
76
+ DEPTH_PROPERTY_HDR_MODE = 0x200
77
+ };
78
+ // Service state section
79
+ HANDLE m_loopThreadHandle;
80
+ bool m_procRun;
81
+ HANDLE m_hStartedEvt;
82
+
83
+ // Shared memory section
84
+ std::wstring m_bufferName;
85
+ HANDLE m_sharedBufferHandle;
86
+ LPCTSTR m_sharedBuffer;
87
+ bool m_bufferRealloc;
88
+
89
+ // Frames section
90
+ int m_currentFrame;
91
+ int m_frameToRead;
92
+ size_t m_frameSize;
93
+ const static size_t headerSize = sizeof(FrameHeader);
94
+ CRITICAL_SECTION m_frameAccess[2];
95
+
96
+ // RSSDK section
97
+ PXCSenseManager* m_senseManager;
98
+ PXC3DSeg* m_segModule;
99
+ int m_fps;
100
+ int m_motionRangeTradeOff;
101
+
102
+ bool m_processing;
103
+ bool m_isPause;
104
+ std::condition_variable m_cvPause;
105
+ std::mutex m_pauseMtx;
106
+
107
+ pxcStatus PXCAPI OnModuleSetProfile(pxcUID /*mid*/, PXCBase* /*module*/) override
108
+ {
109
+ PXCCaptureManager* captureMgr = m_senseManager->QueryCaptureManager();
110
+ if (!captureMgr || m_fps != 60)
111
+ return PXC_STATUS_NO_ERROR;
112
+ PXCCapture::Device* device = captureMgr->QueryDevice();
113
+ PXCCapture::Device::PropertyInfo propInfo = device->QueryIVCAMMotionRangeTradeOffInfo();
114
+
115
+ int value = m_motionRangeTradeOff;
116
+ if (m_motionRangeTradeOff == USE_DEFAULT_PROPERTY_VALUE)
117
+ value = (int)propInfo.defaultValue;
118
+
119
+ device->SetIVCAMMotionRangeTradeOff(value);
120
+ return PXC_STATUS_NO_ERROR;
121
+ }
122
+
123
+ pxcStatus senseMgrInit()
124
+ {
125
+ pxcStatus status = PXC_STATUS_NO_ERROR;
126
+ status = m_senseManager->Enable3DSeg(nullptr);
127
+ if (status != PXC_STATUS_NO_ERROR)
128
+ return status;
129
+ m_segModule = m_senseManager->Query3DSeg();
130
+ if (!m_segModule)
131
+ return PXC_STATUS_DATA_UNAVAILABLE;
132
+
133
+
134
+
135
+ for (int i = 0; ; i++) {
136
+ pxcStatus status = PXC_STATUS_NO_ERROR;
137
+ PXCVideoModule::DataDesc currentProfile = {};
138
+ status = m_segModule->QueryInstance<PXCVideoModule>()->QueryCaptureProfile(i, ¤tProfile);
139
+ if (status != PXC_STATUS_NO_ERROR)
140
+ return status;
141
+ if ((currentProfile.streams.depth.propertySet != DEPTH_PROPERTY_NORMAL_MODE)
142
+ || (currentProfile.streams.depth.options & PXCCapture::Device::STREAM_OPTION_DEPTH_CONFIDENCE)) {
143
+ continue;
144
+ }
145
+
146
+ m_senseManager->QueryCaptureManager()->FilterByStreamProfiles(nullptr);
147
+ m_senseManager->QueryCaptureManager()->FilterByStreamProfiles(nullptr);
148
+
149
+ m_senseManager->QueryCaptureManager()->FilterByStreamProfiles(PXCCapture::StreamType::STREAM_TYPE_COLOR, 0, 0, m_fps);
150
+ m_senseManager->QueryCaptureManager()->FilterByStreamProfiles(PXCCapture::StreamType::STREAM_TYPE_DEPTH, 0, 0, m_fps);
151
+
152
+ status = m_senseManager->EnableStreams(¤tProfile);
153
+ if (status != PXC_STATUS_NO_ERROR)
154
+ return status;
155
+ status = m_senseManager->Init(this);
156
+ if (status == PXC_STATUS_NO_ERROR) {
157
+ m_isPause = false;
158
+ break;
159
+ }
160
+ else {
161
+ continue;
162
+ }
163
+ }
164
+
165
+ return status;
166
+ }
167
+
168
+ HRESULT reinit()
169
+ {
170
+ m_isPause = true;
171
+ //wait_for_end_processing
172
+ while (m_processing)
173
+ std::this_thread::yield();
174
+
175
+ std::unique_lock<std::mutex> lck(m_pauseMtx);
176
+ m_senseManager->Close();
177
+
178
+ pxcStatus status = senseMgrInit();
179
+ m_isPause = false;
180
+ m_cvPause.notify_one();
181
+ return S_OK;
182
+ }
183
+
184
+ /* -----------------------------------------------------------------
185
+ * Modification by Jim
186
+ *
187
+ * To avoid linker issues with the RSSDK .lib files, load via
188
+ * LoadLibrary
189
+ * ----------------------------------------------------------------- */
190
+ typedef int (WINAPI *PXCSessionCreateProc)(PXCSession **output);
191
+
192
+ static HMODULE GetLib()
193
+ {
194
+ HMODULE lib = nullptr;
195
+ HKEY key = nullptr;
196
+ wchar_t path[1024];
197
+
198
+ LONG res = RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"Software\\Intel\\RSSDK\\Dispatch", 0, KEY_QUERY_VALUE, &key);
199
+ if (res != ERROR_SUCCESS) {
200
+ res = RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"Software\\Intel\\RSSDK\\v10\\Dispatch", 0, KEY_QUERY_VALUE, &key);
201
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_service/SegProc.rgs
Added
18
1
2
+HKCR
3
+{
4
+ NoRemove CLSID
5
+ {
6
+ ForceRemove {66917998-CA70-42A6-B8AE-A3A5126123C7} = s 'SegProc Class'
7
+ {
8
+ ForceRemove Programmable
9
+ LocalServer32 = s '%MODULE%'
10
+ {
11
+ val ServerExecutable = s '%MODULE_RAW%'
12
+ }
13
+ TypeLib = s '{64BC16FD-9E3C-4904-B9BA-A360310BCFEC}'
14
+ Version = s '1.0'
15
+ }
16
+ }
17
+}
18
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_service/resource.h
Added
47
1
2
+/*
3
+Copyright (c) 2015-2016, Intel Corporation
4
+
5
+Redistribution and use in source and binary forms, with or without
6
+modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright notice,
9
+ this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+ * Neither the name of Intel Corporation nor the names of its contributors
14
+ may be used to endorse or promote products derived from this software
15
+ without specific prior written permission.
16
+
17
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
21
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+*/
28
+
29
+//{{NO_DEPENDENCIES}}
30
+// Microsoft Visual C++ generated include file.
31
+// Used by seg_service.rc
32
+//
33
+#define IDS_PROJNAME 100
34
+#define IDR_SEG_SERVICE 101
35
+#define IDR_SEGPROC 106
36
+
37
+// Next default values for new objects
38
+//
39
+#ifdef APSTUDIO_INVOKED
40
+#ifndef APSTUDIO_READONLY_SYMBOLS
41
+#define _APS_NEXT_RESOURCE_VALUE 201
42
+#define _APS_NEXT_COMMAND_VALUE 32768
43
+#define _APS_NEXT_CONTROL_VALUE 201
44
+#define _APS_NEXT_SYMED_VALUE 107
45
+#endif
46
+#endif
47
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_service/seg_service.cpp
Added
58
1
2
+/*
3
+Copyright (c) 2015-2016, Intel Corporation
4
+
5
+Redistribution and use in source and binary forms, with or without
6
+modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright notice,
9
+ this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+ * Neither the name of Intel Corporation nor the names of its contributors
14
+ may be used to endorse or promote products derived from this software
15
+ without specific prior written permission.
16
+
17
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
21
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+*/
28
+
29
+// seg_service.cpp : Implementation of WinMain
30
+
31
+
32
+#include "stdafx.h"
33
+#include "resource.h"
34
+#include "seg_service.h"
35
+#include "xdlldata.h"
36
+
37
+using namespace ATL;
38
+
39
+
40
+class Cseg_serviceModule : public ATL::CAtlExeModuleT< Cseg_serviceModule >
41
+{
42
+public :
43
+ DECLARE_LIBID(LIBID_seg_serviceLib)
44
+ DECLARE_REGISTRY_APPID_RESOURCEID(IDR_SEG_SERVICE, "{B5EB3281-4ED1-4777-8ACD-99162EB15E81}")
45
+ };
46
+
47
+Cseg_serviceModule _AtlModule;
48
+
49
+
50
+
51
+//
52
+extern "C" int WINAPI _tWinMain(HINSTANCE /*hInstance*/, HINSTANCE /*hPrevInstance*/,
53
+ LPTSTR /*lpCmdLine*/, int nShowCmd)
54
+{
55
+ return _AtlModule.WinMain(nShowCmd);
56
+}
57
+
58
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_service/seg_service.idl
Added
71
1
2
+/*
3
+Copyright (c) 2015-2016, Intel Corporation
4
+
5
+Redistribution and use in source and binary forms, with or without
6
+modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright notice,
9
+ this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+ * Neither the name of Intel Corporation nor the names of its contributors
14
+ may be used to endorse or promote products derived from this software
15
+ without specific prior written permission.
16
+
17
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
21
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+*/
28
+
29
+// seg_service.idl : IDL source for seg_service
30
+//
31
+
32
+// This file will be processed by the MIDL tool to
33
+// produce the type library (seg_service.tlb) and marshalling code.
34
+
35
+import "oaidl.idl";
36
+import "ocidl.idl";
37
+
38
+[
39
+ object,
40
+ uuid(ADD60B51-95C7-4232-84B0-3CCBBEA7147C),
41
+ dual,
42
+ nonextensible,
43
+ pointer_default(unique)
44
+]
45
+interface ISegProc : IDispatch{
46
+ HRESULT Init(LPCWSTR bufferName);
47
+ HRESULT Stop();
48
+ HRESULT LockBuffer(int* frame, int* bufferRealloc, int* frameSize);
49
+ HRESULT SetFps(int fps);
50
+ HRESULT GetFps(int* fps);
51
+ HRESULT SetIVCAMMotionRangeTradeOff(int value);
52
+ HRESULT GetIVCAMMotionRangeTradeOff(int* value);
53
+ HRESULT UnlockBuffer();
54
+};
55
+[
56
+ uuid(64BC16FD-9E3C-4904-B9BA-A360310BCFEC),
57
+ version(1.0),
58
+]
59
+library seg_serviceLib
60
+{
61
+ importlib("stdole2.tlb");
62
+ [
63
+ uuid(66917998-CA70-42A6-B8AE-A3A5126123C7)
64
+ ]
65
+ coclass SegProc
66
+ {
67
+ [default] interface ISegProc;
68
+ };
69
+};
70
+
71
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_service/seg_service.rc
Added
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_service/seg_service.rgs
Added
5
1
2
+HKCR
3
+{
4
+}
5
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_service/stdafx.cpp
Added
34
1
2
+/*
3
+Copyright (c) 2015-2016, Intel Corporation
4
+
5
+Redistribution and use in source and binary forms, with or without
6
+modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright notice,
9
+ this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+ * Neither the name of Intel Corporation nor the names of its contributors
14
+ may be used to endorse or promote products derived from this software
15
+ without specific prior written permission.
16
+
17
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
21
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+*/
28
+
29
+// stdafx.cpp : source file that includes just the standard includes
30
+// seg_service.pch will be the pre-compiled header
31
+// stdafx.obj will contain the pre-compiled type information
32
+
33
+#include "stdafx.h"
34
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_service/stdafx.h
Added
54
1
2
+/*
3
+Copyright (c) 2015-2016, Intel Corporation
4
+
5
+Redistribution and use in source and binary forms, with or without
6
+modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright notice,
9
+ this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+ * Neither the name of Intel Corporation nor the names of its contributors
14
+ may be used to endorse or promote products derived from this software
15
+ without specific prior written permission.
16
+
17
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
21
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+*/
28
+
29
+// stdafx.h : include file for standard system include files,
30
+// or project specific include files that are used frequently,
31
+// but are changed infrequently
32
+
33
+#pragma once
34
+
35
+#ifndef STRICT
36
+#define STRICT
37
+#endif
38
+
39
+#include "targetver.h"
40
+
41
+#define _ATL_APARTMENT_THREADED
42
+
43
+#define _ATL_NO_AUTOMATIC_NAMESPACE
44
+
45
+#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
46
+
47
+
48
+#define ATL_NO_ASSERT_ON_DESTROY_NONEXISTENT_WINDOW
49
+
50
+#include "resource.h"
51
+#include <atlbase.h>
52
+#include <atlcom.h>
53
+#include <atlctl.h>
54
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_service/targetver.h
Added
37
1
2
+/*
3
+Copyright (c) 2015-2016, Intel Corporation
4
+
5
+Redistribution and use in source and binary forms, with or without
6
+modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright notice,
9
+ this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+ * Neither the name of Intel Corporation nor the names of its contributors
14
+ may be used to endorse or promote products derived from this software
15
+ without specific prior written permission.
16
+
17
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
21
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+*/
28
+
29
+#pragma once
30
+
31
+// Including SDKDDKVer.h defines the highest available Windows platform.
32
+
33
+// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
34
+// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
35
+
36
+#include <SDKDDKVer.h>
37
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_service/xdlldata.c
Added
46
1
2
+/*
3
+Copyright (c) 2015-2016, Intel Corporation
4
+
5
+Redistribution and use in source and binary forms, with or without
6
+modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright notice,
9
+ this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+ * Neither the name of Intel Corporation nor the names of its contributors
14
+ may be used to endorse or promote products derived from this software
15
+ without specific prior written permission.
16
+
17
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
21
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+*/
28
+// wrapper for dlldata.c
29
+
30
+#ifdef _MERGE_PROXYSTUB // merge proxy stub DLL
31
+
32
+#define REGISTER_PROXY_DLL //DllRegisterServer, etc.
33
+
34
+#define _WIN32_WINNT 0x0500 //for WinNT 4.0 or Win95 with DCOM
35
+#define USE_STUBLESS_PROXY //defined only with MIDL switch /Oicf
36
+
37
+#pragma comment(lib, "rpcns4.lib")
38
+#pragma comment(lib, "rpcrt4.lib")
39
+
40
+#define ENTRY_PREFIX Prx
41
+
42
+#include "dlldata.c"
43
+#include "seg_service_p.c"
44
+
45
+#endif //_MERGE_PROXYSTUB
46
obs-studio-0.16.6.tar.xz/plugins/win-ivcam/seg_service/xdlldata.h
Added
44
1
2
+/*
3
+Copyright (c) 2015-2016, Intel Corporation
4
+
5
+Redistribution and use in source and binary forms, with or without
6
+modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright notice,
9
+ this list of conditions and the following disclaimer.
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+ * Neither the name of Intel Corporation nor the names of its contributors
14
+ may be used to endorse or promote products derived from this software
15
+ without specific prior written permission.
16
+
17
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
21
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+*/
28
+
29
+#pragma once
30
+
31
+#ifdef _MERGE_PROXYSTUB
32
+
33
+extern "C"
34
+{
35
+BOOL WINAPI PrxDllMain(HINSTANCE hInstance, DWORD dwReason,
36
+ LPVOID lpReserved);
37
+STDAPI PrxDllCanUnloadNow(void);
38
+STDAPI PrxDllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv);
39
+STDAPI PrxDllRegisterServer(void);
40
+STDAPI PrxDllUnregisterServer(void);
41
+}
42
+
43
+#endif
44
obs-studio-0.16.5.tar.xz/plugins/win-mf/data/locale/de-DE.ini -> obs-studio-0.16.6.tar.xz/plugins/win-mf/data/locale/de-DE.ini
Changed
26
1
2
-MFAACEnc="Media Foundation AAC Encoder"
3
+MFAACEnc="Media Foundation AAC Codierer"
4
Bitrate="Bitrate"
5
6
-MF.H264.EncoderName="Media Foundation H264 Encoder"
7
-MF.H264.Encoder="Encoder-Name"
8
+MF.H264.EncoderName="Media Foundation H264 Codierer"
9
+MF.H264.Encoder="Codierer-Name"
10
MF.H264.LowLatency="Niedrige Latenz (Deaktiviert Frame Neuanordnung)"
11
MF.H264.BFrames="Consecutive B-Frame count"
12
MF.H264.CustomBufsize="Verwende benutzerdefinierte Puffergröße"
13
14
MF.H264.Profile="Profil"
15
MF.H264.Advanced="Erweitert"
16
17
-MF.H264.EncoderSWMicrosoft="Microsoft Software H.264 Encoder"
18
-MF.H264.EncoderHWAMD="AMD Video Coding Engine (VCE) H.264 Encoder (Media Foundation)"
19
-MF.H264.EncoderHWIntel="Intel Quick Sync H.264 Encoder (Media Foundation)"
20
-MF.H264.EncoderHWNVIDIA="NVIDIA NVENC H.264 Encoder (Media Foundation)"
21
+MF.H264.EncoderSWMicrosoft="Microsoft Software H.264 Codierer"
22
+MF.H264.EncoderHWAMD="AMD Video Coding Engine (VCE) H.264 Codierer (Media Foundation)"
23
+MF.H264.EncoderHWIntel="Intel Quick Sync H.264 Codierer (Media Foundation)"
24
+MF.H264.EncoderHWNVIDIA="NVIDIA NVENC H.264 Codierer (Media Foundation)"
25
26
obs-studio-0.16.5.tar.xz/plugins/win-mf/data/locale/sk-SK.ini -> obs-studio-0.16.6.tar.xz/plugins/win-mf/data/locale/sk-SK.ini
Changed
10
1
2
+Bitrate="Dátový tok"
3
4
+MF.H264.CustomBufsize="Použiť vlastnú veľkosť medzipamäte"
5
+MF.H264.BufferSize="Veľkosť medzipamäte"
6
+MF.H264.Bitrate="Dátový tok"
7
MF.H264.Profile="Profil"
8
MF.H264.Advanced="Rozšírené"
9
10