OBS Studio コードリーティング日記 #5 ; .dllファイルについて

これまでのコードリーディング日記ではビルド、ファイル構成、cmakeの実行ルートを見て来たので今回はプロジェクトとdllファイルの関係を調べていこうと思います。

1.dllファイルとプロジェクトの関係

OBS StudioのVer30(Windows版)では77個のdllファイルで構成されています。

dllファイルの出所はcmakeコマンドのadd_library(“library name” SHARED)またはadd_library(“library name” MODULE)で生成とコピーを指定されています。

同じくcmakeで生成されたvcxprojを覗くと一部名称が違いますがdllのファイル名とおおよそ一致したプロジェクトが出来ています。

vcxprojファイルのプロジェクトはエディタのソリューションエクスプローラーで見れます。

 

2.CopyMSVCBins.cmakeによるコピー

基本的にはFind~.cmakeで保存したdllファイルからobs-studio/bin(/64bit) 又は obs-studio/obs-plugins(/64bit)フォルダへコピーしていく処理がされています。

— ffmpeg:14ファイル —

obs-studio/bin(/64bit)内に保存

avcodec-60.dll
avdevice-60.dll
avfilter-9.dll
avformat-60.dll
avutil-58.dll
datachannel.dll
libmbedcrypto.dll
libmbedtls.dll
libmbedx509.dll
librist.dll
libsrt.dll
swresample-4.dll
swscale-7.dll
zlib.dll

— x264:1ファイル —

obs-studio/bin(/64bit)内に保存

libx264-164.dll

— curl:1ファイル —

obs-studio/bin(/64bit)内に保存

libcurl.dll

— qt:21ファイル —

obs-studio/bin(/64bit)内に保存

Qt6Core.dll
Qt6Gui.dll
Qt6Network.dll
Qt6Svg.dll
Qt6Widgets.dll
Qt6Xml.dll

imageformats/qgif.dll
imageformats/qjpeg.dll
imageformats/qsvg.dll
imageformats/qicns
imageformats/qico
imageformats/qtga
imageformats/qtiff
imageformats/qwbmp
imageformats/qwebp

platforms/qwindows.dll
platforms/qminimal

styles/qwindowsvistastyle.dll

iconengines/qsvgicon.dll

obs-studio/obs-plugins(/64bit)内に保存

libEGL.dll
libGLESv2.dll

— lua:1ファイル —

obs-studio/bin(/64bit)内に保存

lua51.dll

 

3.chrom関連

FindCEF.cmakeとobs-studio/cmake/windows/helpers.cmakeで処理。

obs-studio/obs-plugins(/64bit)内に保存

chrome_elf.dll
libcef.dll

 

4.add_libraryからの生成(MODULE)

— plugins:25ファイル —

obs-studio/obs-plugins(/64bit)内に保存

aja.dll
aja-output-ui.dll
coreaudio-encoder.dll
decklink.dll
decklink-captions.dll
decklink-output-ui.dll

image-source.dll
obs-browser.dll
obs-ffmpeg.dll
obs-filters.dll
obs-outputs.dll
obs-qsv11.dll
obs-text.dll
obs-transitions.dll
obs-vst.dll
obs-webrtc.dll
obs-websocket.dll
obs-x264.dll
frontend-tools.dll

rtmp-services.dll
text-freetype2.dll
vlc-video.dll
win-capture.dll
win-dshow.dll
win-wasapi.dll

obs-studio/data/obs-plugins 内に保存

win-capture/graphics-hook32.dll (graphics-hook.vcxproj)
win-capture/graphics-hook64.dll (graphics-hook.vcxproj)

win-dshow/obs-virtualcam-module32.dll (obs-virtualcam-module.vcxproj)
win-dshow/obs-virtualcam-module64.dll (obs-virtualcam-module.vcxproj)

— libobs関連:2ファイル —

obs-studio/bin(/64bit)内に保存

libobs-d3d11.dll
libobs-winrt.dll

 

5.add_libraryからの生成(SHARED)

— libobs関連:2ファイル —

obs-studio/bin(/64bit)内に保存


libobs-opengl.dll
obs.dll (libobs.vcxproj)

— UI関連:1ファイル —

obs-studio/bin(/64bit)内に保存

obs-frontend-api.dll

— deps:2ファイル —

obs-studio/bin(/64bit)内に保存

obs-scripting.dll
w32-pthreads.dll

obs-studio/data/obs-scripting(/64bit)内に保存

obslua.dll

 

おまけ.add_executableからの生成

exeファイルはobs-studioファイル内に10個生成されていて、その構成は下記のようになってます。

obs-studio/bin(/64bit)内に保存

obs-amf-test.exe
obs-ffmpeg-mux.exe
obs-nvenc-test.exe
obs-qsv-test.exe
obs64.exe (obs-studio.vcxproj)

data/obs-plugins/win-capture内に保存

get-graphics-offsets32.exe
get-graphics-offsets64.exe
inject-helper32.exe
inject-helper64.exe

obs-studio/obs-plugins(/64bit)内に保存

obs-browser-page.exe (obs-browser-helper.vcxproj)
sam

sam

流山おおたかの森Techブログの管理人です。 お仕事のご依頼などはmail or Twitter[https://twitter.com/sam_sumario]で連絡頂けると反応出来ます。
Previous post OBS Studio コードリーティング日記 #4 ; CMake
Next post OBS Studioのプラグインの作り方 #2 GUIの追加方法

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です