Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions plugins/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -87,4 +87,5 @@ add_obs_plugin(text-freetype2)
add_obs_plugin(vlc-video WITH_MESSAGE)
add_obs_plugin(win-capture PLATFORMS WINDOWS)
add_obs_plugin(win-dshow PLATFORMS WINDOWS)
add_obs_plugin(win-mediafoundation PLATFORMS WINDOWS)
add_obs_plugin(win-wasapi PLATFORMS WINDOWS)
3 changes: 3 additions & 0 deletions plugins/win-mediafoundation/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
cmake_minimum_required(VERSION 3.28...3.30)

add_obs_plugin(encoder PLATFORMS WINDOWS ARCHITECTURES ARM64)
30 changes: 30 additions & 0 deletions plugins/win-mediafoundation/encoder/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
cmake_minimum_required(VERSION 3.28...3.30)

add_library(win-mediafoundation-encoder MODULE)
add_library(OBS::win-mediafoundation-encoder ALIAS win-mediafoundation-encoder)

target_sources(
win-mediafoundation-encoder
PRIVATE
mf-av1-encoder.cpp
mf-av1-encoder.hpp
mf-av1.cpp
mf-common.cpp
mf-common.hpp
mf-encoder-descriptor.cpp
mf-encoder-descriptor.hpp
mf-h264-encoder.cpp
mf-h264-encoder.hpp
mf-h264.cpp
mf-hevc-encoder.cpp
mf-hevc-encoder.hpp
mf-hevc.cpp
mf-plugin.cpp
)

target_link_libraries(
win-mediafoundation-encoder
PRIVATE d3d9 dxva2 uuid mfplat mfuuid mf wmcodecdspuuid libobs
)

set_target_properties_obs(win-mediafoundation-encoder PROPERTIES FOLDER "plugins" PREFIX "")
73 changes: 73 additions & 0 deletions plugins/win-mediafoundation/encoder/data/locale/en-US.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
MF.H264.EncoderName="Media Foundation H264 Encoder"
MF.H264.Encoder="Encoder Name"
MF.H264.LowLatency="Low Latency (Disable frame re-ordering)"
MF.H264.BFrames="Consecutive B-Frame count"
MF.H264.CustomBufsize="Use Custom Buffer Size"
MF.H264.BufferSize="Buffer Size"
MF.H264.CustomMaxBitrate="Use Custom Max Bitrate"
MF.H264.Bitrate="Bitrate"
MF.H264.MaxBitrate="Max Bitrate"
MF.H264.KeyframeIntervalSec="Keyframe Interval (seconds, 0=auto)"
MF.H264.RateControl="Rate Control"
MF.H264.CBR="CBR (Constant Bitrate)"
MF.H264.VBR="VBR (Variable Bitrate)"
MF.H264.CQP="CQP (Constant Quality)"
MF.H264.MinQP="Minimum QP"
MF.H264.MaxQP="Maximum QP"
MF.H264.QPI="QP I-Frame"
MF.H264.QPP="QP P-Frame"
MF.H264.QPB="QP B-Frame"
MF.H264.Profile="Profile"
MF.H264.Advanced="Advanced"

MF.H264.EncoderSWMicrosoft="Microsoft Software H.264 Encoder"
MF.H264.EncoderHWAMD="AMD Video Coding Engine H.264 Encoder (Media Foundation)"
MF.H264.EncoderHWIntel="Intel Quick Sync H.264 Encoder (Media Foundation)"
MF.H264.EncoderHWNVIDIA="NVIDIA NVENC H.264 Encoder (Media Foundation)"
MF.H264.EncoderHWQCOM="Qualcomm® Adreno™ H.264 (AVC) Encoder"
MF.HEVC.EncoderHWQCOM="Qualcomm® Adreno™ H.265 (HEVC) Encoder"
MF.AV1.EncoderHWQCOM="Qualcomm® Adreno™ AV1 Encoder"

MF.HEVC.EncoderName="Media Foundation HEVC Encoder"
MF.HEVC.Encoder="Encoder Name"
MF.HEVC.LowLatency="Low Latency (Disable frame re-ordering)"
MF.HEVC.BFrames="Consecutive B-Frame count"
MF.HEVC.CustomBufsize="Use Custom Buffer Size"
MF.HEVC.BufferSize="Buffer Size"
MF.HEVC.CustomMaxBitrate="Use Custom Max Bitrate"
MF.HEVC.Bitrate="Bitrate"
MF.HEVC.MaxBitrate="Max Bitrate"
MF.HEVC.KeyframeIntervalSec="Keyframe Interval (seconds, 0=auto)"
MF.HEVC.RateControl="Rate Control"
MF.HEVC.CBR="CBR (Constant Bitrate)"
MF.HEVC.VBR="VBR (Variable Bitrate)"
MF.HEVC.CQP="CQP (Constant Quality)"
MF.HEVC.MinQP="Minimum QP"
MF.HEVC.MaxQP="Maximum QP"
MF.HEVC.QPI="QP I-Frame"
MF.HEVC.QPP="QP P-Frame"
MF.HEVC.QPB="QP B-Frame"
MF.HEVC.Profile="Profile"
MF.HEVC.Advanced="Advanced"

MF.AV1.EncoderName="Media Foundation AV1 Encoder"
MF.AV1.Encoder="Encoder Name"
MF.AV1.LowLatency="Low Latency (Disable frame re-ordering)"
MF.AV1.BFrames="Consecutive B-Frame count"
MF.AV1.CustomBufsize="Use Custom Buffer Size"
MF.AV1.BufferSize="Buffer Size"
MF.AV1.CustomMaxBitrate="Use Custom Max Bitrate"
MF.AV1.Bitrate="Bitrate"
MF.AV1.MaxBitrate="Max Bitrate"
MF.AV1.KeyframeIntervalSec="Keyframe Interval (seconds, 0=auto)"
MF.AV1.RateControl="Rate Control"
MF.AV1.CBR="CBR (Constant Bitrate)"
MF.AV1.VBR="VBR (Variable Bitrate)"
MF.AV1.CQP="CQP (Constant Quality)"
MF.AV1.MinQP="Minimum QP"
MF.AV1.MaxQP="Maximum QP"
MF.AV1.QPI="QP I-Frame"
MF.AV1.QPP="QP P-Frame"
MF.AV1.QPB="QP B-Frame"
MF.AV1.Profile="Profile"
MF.AV1.Advanced="Advanced"
Loading
Loading