Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: jp9000/OBS
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.634b
Choose a base ref
...
head repository: jp9000/OBS
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref

Commits on Sep 16, 2014

  1. Always update source if elgato

    The resolution changes can really cause confusion when updating, so if
    the source is an elgato, just always reset the filter to ensure the
    resolution changes.
    jp9000 committed Sep 16, 2014
    Copy the full SHA
    e30108e View commit details
  2. Fix resolution issue for elgato 1.x.x filter

    If using the elgato 1.x.x filter it would not properly set resolution
    changes due to intermediary filters.  Change to direct connect to
    prevent that issue from occurring.
    jp9000 committed Sep 16, 2014
    Copy the full SHA
    d99be83 View commit details
  3. Update services list

    notr1ch committed Sep 16, 2014
    Copy the full SHA
    04c385c View commit details
  4. Copy the full SHA
    fa3429f View commit details
  5. Copy the full SHA
    ed8a37b View commit details
  6. Copy the full SHA
    e55f4c1 View commit details
  7. Copy the full SHA
    8195735 View commit details

Commits on Sep 17, 2014

  1. Fix compiler warning

    FBirth authored and jp9000 committed Sep 17, 2014
    Copy the full SHA
    1a9d90c View commit details
  2. Fixed crash when connecting audio pin from Elgato device with audio r…

    …enderer
    FBirth authored and jp9000 committed Sep 17, 2014
    Copy the full SHA
    1c248ca View commit details
  3. Merge branch 'FBirth-master'

    jp9000 committed Sep 17, 2014
    Copy the full SHA
    71c5848 View commit details
  4. Remove #if 1

    jp9000 committed Sep 17, 2014
    Copy the full SHA
    d95c63e View commit details

Commits on Sep 20, 2014

  1. Copy the full SHA
    f85a1d6 View commit details

Commits on Sep 22, 2014

  1. Copy the full SHA
    5baa31a View commit details
  2. Copy the full SHA
    f629824 View commit details

Commits on Sep 23, 2014

  1. Copy the full SHA
    ca33d44 View commit details
  2. Copy the full SHA
    4131201 View commit details
  3. Copy the full SHA
    f7cab29 View commit details
  4. Copy the full SHA
    c8b7f3e View commit details

Commits on Sep 24, 2014

  1. Copy the full SHA
    044fac9 View commit details
  2. Copy the full SHA
    b998dd5 View commit details
  3. Add PostConfigureStreamButtons

    Deadlock free-er button updates
    palana committed Sep 24, 2014
    Copy the full SHA
    fadce38 View commit details
  4. Copy the full SHA
    e7804fc View commit details
  5. Copy the full SHA
    858991b View commit details
  6. Copy the full SHA
    8919fcb View commit details
  7. Copy the full SHA
    3caa30c View commit details
  8. Copy the full SHA
    3069c2e View commit details
  9. Copy the full SHA
    25c1a11 View commit details
  10. Copy the full SHA
    70b4322 View commit details
  11. Copy the full SHA
    c497f71 View commit details

Commits on Sep 25, 2014

  1. Disable QSV on Vista

    palana committed Sep 25, 2014
    Copy the full SHA
    a976a2c View commit details
  2. Copy the full SHA
    89b560b View commit details

Commits on Sep 27, 2014

  1. Saturate QSV bitrate even for custom parameters

    Fixes QSV not initializing with very high bitrates when custom
    parameters are used
    palana committed Sep 27, 2014
    Copy the full SHA
    7100ba8 View commit details
  2. Copy the full SHA
    aec9599 View commit details

Commits on Sep 28, 2014

  1. Update gitignore

    jp9000 committed Sep 28, 2014
    Copy the full SHA
    7d86599 View commit details
  2. Update to 0.637 (test build)

    jp9000 committed Sep 28, 2014
    Copy the full SHA
    90998f5 View commit details
  3. Allow for new test build auto-updating (0.636)

    Woops, disabled auto-updating, and we should now have access to
    auto-updating with test builds.  Also this is 0.636.
    jp9000 committed Sep 28, 2014
    Copy the full SHA
    c5e98b9 View commit details

Commits on Sep 29, 2014

  1. Copy the full SHA
    0ef092a View commit details

Commits on Oct 3, 2014

  1. Copy the full SHA
    0753749 View commit details
  2. Update to 0.636b

    jp9000 committed Oct 3, 2014
    Copy the full SHA
    73e46ec View commit details
  3. Copy the full SHA
    9c10e0f View commit details
  4. Copy the full SHA
    c4a77ac View commit details
  5. Ensure InitEncoderData is called before DelayedPublisher connects

    This seems to fix crashes in various subsystems that were introduced
    in e7804fc when using a publish delay
    palana committed Oct 3, 2014
    Copy the full SHA
    bebaf1b View commit details
  6. Copy the full SHA
    571719f View commit details
  7. Copy the full SHA
    a86c723 View commit details
  8. Use a separate texture when scene transitioning.

    Get rid of 1+ DrawSprite call(s) during scene transition.
    hwdro committed Oct 3, 2014
    Copy the full SHA
    872ed6f View commit details

Commits on Oct 4, 2014

  1. Update to 0.637

    jp9000 committed Oct 4, 2014
    Copy the full SHA
    45b732a View commit details

Commits on Oct 10, 2014

  1. Add BufferedDataPacket helper

    palana committed Oct 10, 2014
    Copy the full SHA
    af8df3d View commit details
  2. Copy the full SHA
    bc0cc9c View commit details
  3. Copy the full SHA
    edf53af View commit details
  4. Copy the full SHA
    d789779 View commit details
Showing with 7,771 additions and 1,838 deletions.
  1. +3 −0 .gitignore
  2. +18 −18 AUTHORS
  3. +9 −3 DShowPlugin/CaptureFilter.cpp
  4. +68 −11 DShowPlugin/DShowPlugin.cpp
  5. +35 −32 DShowPlugin/DShowPlugin.rc
  6. +1 −0 DShowPlugin/DShowPlugin.vcxproj
  7. +184 −17 DShowPlugin/DeviceSource.cpp
  8. +6 −2 DShowPlugin/DeviceSource.h
  9. +37 −7 DShowPlugin/IVideoCaptureFilter.h
  10. +3 −0 DShowPlugin/resource.h
  11. +3 −0 GraphicsCapture/GraphicsCapture.cpp
  12. +10 −8 GraphicsCapture/GraphicsCapture.rc
  13. +1 −0 GraphicsCapture/GraphicsCapture.vcxproj
  14. +184 −36 GraphicsCapture/GraphicsCaptureHook/D3D9Capture.cpp
  15. +15 −5 GraphicsCapture/GraphicsCaptureHook/DXGICapture.cpp
  16. +139 −4 GraphicsCapture/GraphicsCaptureHook/GraphicsCaptureHook.h
  17. +4 −4 GraphicsCapture/GraphicsCaptureHook/GraphicsCaptureHook.rc
  18. +5 −2 GraphicsCapture/GraphicsCaptureHook/GraphicsCaptureHook.vcxproj
  19. +5 −1 GraphicsCapture/GraphicsCaptureSource.cpp
  20. +1 −1 GraphicsCapture/GraphicsCaptureSource.h
  21. +1 −0 GraphicsCapture/resource.h
  22. +1 −0 NoiseGate/NoiseGate.vcxproj
  23. +13 −0 OBS-All.sln
  24. +8 −1 OBS.manifest
  25. +51 −33 OBS.rc
  26. +17 −5 OBS.vcxproj
  27. +9 −3 OBS.vcxproj.filters
  28. +12 −0 OBSApi/APIDefs.cpp
  29. +16 −0 OBSApi/APIInterface.h
  30. +4 −4 OBSApi/OBSApi.rc
  31. +1 −0 OBSApi/OBSApi.vcxproj
  32. +6 −0 OBSApi/Utility/RAIIHelpers.h
  33. +6 −1 OBSApi/Utility/XFile_Windows.cpp
  34. +1 −1 OBSApi/Utility/XT_Windows.cpp
  35. +2 −2 ObsNvenc/ObsNvenc.vcxproj
  36. +1 −4 ObsNvenc/ObsNvenc.vcxproj.filters
  37. +0 −4 ObsNvenc/inc/license.h
  38. +619 −373 ObsNvenc/inc/nvEncodeAPI.h
  39. +0 −8 ObsNvenc/inc/nvmain.h
  40. +44 −64 ObsNvenc/src/NVENCEncoder.cpp
  41. +1 −0 PSVPlugin/PSVPlugin.vcxproj
  42. +35 −13 QSVHelper/QSVHelper.cpp
  43. +1 −0 QSVHelper/QSVHelper.vcxproj
  44. +1 −1 QSVHelper/QSVStuff.cpp
  45. +6 −0 README.md
  46. +67 −5 Source/API.cpp
  47. +18 −4 Source/BitmapImage.cpp
  48. +191 −25 Source/BitmapTransitionSource.cpp
  49. +3 −2 Source/CrashDumpHandler.cpp
  50. +17 −1 Source/D3D10System.cpp
  51. +72 −0 Source/DataPacketHelpers.h
  52. +2 −0 Source/DelayedPublisher.cpp
  53. +20 −18 Source/DesktopImageSource.cpp
  54. +47 −3 Source/Encoder_QSV.cpp
  55. +5 −6 Source/Encoder_x264.cpp
  56. +17 −9 Source/FLVFileStream.cpp
  57. +22 −1 Source/HTTPClient.cpp
  58. +1 −1 Source/HTTPClient.h
  59. +154 −0 Source/InstallService.cpp
  60. +20 −13 Source/MP4FileStream.cpp
  61. +99 −4 Source/Main.cpp
  62. +2 −2 Source/Main.h
  63. +150 −111 Source/OBS.cpp
  64. +75 −12 Source/OBS.h
  65. +172 −55 Source/OBSCapture.cpp
  66. +28 −0 Source/OBSEvents.cpp
  67. +65 −29 Source/OBSVideoCapture.cpp
  68. +49 −25 Source/RTMPPublisher.cpp
  69. +5 −0 Source/RTMPPublisher.h
  70. +5 −3 Source/ReplayBuffer.cpp
  71. +81 −38 Source/SettingsAdvanced.cpp
  72. +7 −4 Source/SettingsEncoding.cpp
  73. +118 −96 Source/SettingsPublish.cpp
  74. +17 −3 Source/SettingsQSV.cpp
  75. +19 −11 Source/TextOutputSource.cpp
  76. +252 −3 Source/Updater.cpp
  77. +372 −44 Source/WindowStuff.cpp
  78. +1 −1 Source/libnsgif.c
  79. +1 −0 injectHelper/injectHelper.vcxproj
  80. +23 −4 installer/generate_binaries.bat
  81. +10 −0 installer/generate_binaries_test.bat
  82. +33 −11 installer/installer.nsi
  83. +55 −18 librtmp/rtmp.c
  84. +1 −1 librtmp/rtmp.h
  85. +1 −0 librtmp/rtmp_sys.h
  86. +15 −4 resource.h
  87. +1 −0 rundir/copycrowdindata.bat
  88. +2 −1 rundir/copydebug.bat
  89. +2 −1 rundir/copydebug64.bat
  90. +2 −1 rundir/copyrelease.bat
  91. +2 −1 rundir/copyrelease64.bat
  92. +0 −59 rundir/locale/af.txt
  93. +12 −0 rundir/locale/ar.txt
  94. +4 −0 rundir/locale/bg.txt
  95. +0 −59 rundir/locale/bn.txt
  96. +48 −0 rundir/locale/br.txt
  97. +4 −0 rundir/locale/ca.txt
  98. +61 −0 rundir/locale/cs.txt
  99. +98 −2 rundir/locale/da.txt
  100. +57 −21 rundir/locale/de.txt
  101. +119 −4 rundir/locale/el.txt
  102. +37 −0 rundir/locale/en.txt
  103. +27 −0 rundir/locale/es.txt
  104. +34 −0 rundir/locale/et.txt
  105. +49 −0 rundir/locale/eu.txt
  106. +43 −6 rundir/locale/fi.txt
  107. +72 −25 rundir/locale/fr.txt
  108. +17 −0 rundir/locale/gl.txt
  109. +36 −0 rundir/locale/he.txt
  110. +4 −0 rundir/locale/hi.txt
  111. +99 −1 rundir/locale/hr.txt
  112. +53 −5 rundir/locale/hu.txt
  113. +14 −0 rundir/locale/it.txt
  114. +37 −1 rundir/locale/ja.txt
  115. +37 −1 rundir/locale/ko.txt
  116. +23 −0 rundir/locale/lt.txt
  117. +52 −1 rundir/locale/nb.txt
  118. +37 −1 rundir/locale/nl.txt
  119. +4 −0 rundir/locale/no.txt
  120. +0 −66 rundir/locale/pe.txt
  121. +36 −0 rundir/locale/pl.txt
  122. +88 −49 rundir/locale/pt.txt
  123. +48 −11 rundir/locale/ro.txt
  124. +100 −9 rundir/locale/ru.txt
  125. +4 −0 rundir/locale/sk.txt
  126. +17 −0 rundir/locale/sl.txt
  127. +4 −0 rundir/locale/sr.txt
  128. +34 −0 rundir/locale/sv.txt
  129. +4 −0 rundir/locale/ta.txt
  130. +4 −0 rundir/locale/th.txt
  131. +89 −3 rundir/locale/tr.txt
  132. +53 −0 rundir/locale/tw.txt
  133. +77 −0 rundir/locale/uk.txt
  134. +0 −59 rundir/locale/ur.txt
  135. +4 −0 rundir/locale/vi.txt
  136. +41 −0 rundir/locale/zh.txt
  137. +0 −6 rundir/plugins/DShowPlugin/locale/af.txt
  138. +0 −6 rundir/plugins/DShowPlugin/locale/ar.txt
  139. +47 −0 rundir/plugins/DShowPlugin/locale/bg.txt
  140. +0 −6 rundir/plugins/DShowPlugin/locale/bn.txt
  141. +3 −0 rundir/plugins/DShowPlugin/locale/br.txt
  142. +0 −6 rundir/plugins/DShowPlugin/locale/ca.txt
  143. +3 −0 rundir/plugins/DShowPlugin/locale/cs.txt
  144. +3 −0 rundir/plugins/DShowPlugin/locale/da.txt
  145. +3 −0 rundir/plugins/DShowPlugin/locale/de.txt
  146. +1 −0 rundir/plugins/DShowPlugin/locale/el.txt
  147. +3 −0 rundir/plugins/DShowPlugin/locale/en.txt
  148. +3 −0 rundir/plugins/DShowPlugin/locale/es.txt
  149. +3 −0 rundir/plugins/DShowPlugin/locale/et.txt
  150. +3 −0 rundir/plugins/DShowPlugin/locale/eu.txt
  151. +4 −1 rundir/plugins/DShowPlugin/locale/fi.txt
  152. +3 −0 rundir/plugins/DShowPlugin/locale/fr.txt
  153. +3 −0 rundir/plugins/DShowPlugin/locale/he.txt
  154. +0 −6 rundir/plugins/DShowPlugin/locale/hi.txt
  155. +3 −0 rundir/plugins/DShowPlugin/locale/hr.txt
  156. +3 −0 rundir/plugins/DShowPlugin/locale/hu.txt
  157. +3 −0 rundir/plugins/DShowPlugin/locale/ja.txt
  158. +3 −0 rundir/plugins/DShowPlugin/locale/ko.txt
  159. +3 −0 rundir/plugins/DShowPlugin/locale/nb.txt
  160. +3 −0 rundir/plugins/DShowPlugin/locale/nl.txt
  161. +0 −7 rundir/plugins/DShowPlugin/locale/pe.txt
  162. +3 −0 rundir/plugins/DShowPlugin/locale/pl.txt
  163. +19 −15 rundir/plugins/DShowPlugin/locale/pt.txt
  164. +3 −0 rundir/plugins/DShowPlugin/locale/ro.txt
  165. +3 −0 rundir/plugins/DShowPlugin/locale/ru.txt
  166. +3 −0 rundir/plugins/DShowPlugin/locale/sv.txt
  167. +0 −6 rundir/plugins/DShowPlugin/locale/ta.txt
  168. +3 −0 rundir/plugins/DShowPlugin/locale/tr.txt
  169. +3 −0 rundir/plugins/DShowPlugin/locale/tw.txt
  170. +5 −0 rundir/plugins/DShowPlugin/locale/uk.txt
  171. +0 −6 rundir/plugins/DShowPlugin/locale/ur.txt
  172. +3 −0 rundir/plugins/DShowPlugin/locale/zh.txt
  173. +1 −5 rundir/plugins/DShowPlugin/shaders/ChromaKey_HDYCToRGB.pShader
  174. +1 −5 rundir/plugins/DShowPlugin/shaders/ChromaKey_UYVToRGB.pShader
  175. +1 −5 rundir/plugins/DShowPlugin/shaders/ChromaKey_YUVToRGB.pShader
  176. +1 −5 rundir/plugins/DShowPlugin/shaders/ChromaKey_YUXVToRGB.pShader
  177. +1 −5 rundir/plugins/DShowPlugin/shaders/ChromaKey_YVUToRGB.pShader
  178. +1 −5 rundir/plugins/DShowPlugin/shaders/ChromaKey_YVXUToRGB.pShader
  179. +1 −5 rundir/plugins/DShowPlugin/shaders/HDYCToRGB.pShader
  180. +1 −5 rundir/plugins/DShowPlugin/shaders/UYVToRGB.pShader
  181. +1 −5 rundir/plugins/DShowPlugin/shaders/YUVToRGB.pShader
  182. +1 −5 rundir/plugins/DShowPlugin/shaders/YUXVToRGB.pShader
  183. +1 −5 rundir/plugins/DShowPlugin/shaders/YVUToRGB.pShader
  184. +1 −5 rundir/plugins/DShowPlugin/shaders/YVXUToRGB.pShader
  185. +0 −3 rundir/plugins/PSVPlugin/locale/ar.txt
  186. +0 −3 rundir/plugins/PSVPlugin/locale/ca.txt
  187. +0 −3 rundir/plugins/PSVPlugin/locale/hi.txt
  188. +0 −4 rundir/plugins/PSVPlugin/locale/pe.txt
  189. +9 −9 rundir/plugins/PSVPlugin/locale/ru.txt
  190. +0 −3 rundir/plugins/PSVPlugin/locale/ta.txt
  191. +0 −3 rundir/plugins/PSVPlugin/locale/ur.txt
  192. +23 −0 rundir/plugins/scenesw/locale/br.txt
  193. +23 −0 rundir/plugins/scenesw/locale/cs.txt
  194. +23 −0 rundir/plugins/scenesw/locale/da.txt
  195. +23 −0 rundir/plugins/scenesw/locale/de.txt
  196. +23 −0 rundir/plugins/scenesw/locale/en.txt
  197. +23 −0 rundir/plugins/scenesw/locale/et.txt
  198. +23 −0 rundir/plugins/scenesw/locale/eu.txt
  199. +23 −0 rundir/plugins/scenesw/locale/fi.txt
  200. +23 −0 rundir/plugins/scenesw/locale/fr.txt
  201. +9 −0 rundir/plugins/scenesw/locale/gl.txt
  202. +23 −0 rundir/plugins/scenesw/locale/he.txt
  203. +23 −0 rundir/plugins/scenesw/locale/hr.txt
  204. +23 −0 rundir/plugins/scenesw/locale/hu.txt
  205. +23 −0 rundir/plugins/scenesw/locale/it.txt
  206. +23 −0 rundir/plugins/scenesw/locale/ja.txt
  207. +23 −0 rundir/plugins/scenesw/locale/ko.txt
  208. +23 −0 rundir/plugins/scenesw/locale/nb.txt
  209. +23 −0 rundir/plugins/scenesw/locale/nl.txt
  210. +23 −0 rundir/plugins/scenesw/locale/pl.txt
  211. +23 −0 rundir/plugins/scenesw/locale/pt.txt
  212. +23 −0 rundir/plugins/scenesw/locale/ro.txt
  213. +23 −0 rundir/plugins/scenesw/locale/ru.txt
  214. +10 −0 rundir/plugins/scenesw/locale/sk.txt
  215. +23 −0 rundir/plugins/scenesw/locale/sv.txt
  216. +23 −0 rundir/plugins/scenesw/locale/tr.txt
  217. +24 −0 rundir/plugins/scenesw/locale/tw.txt
  218. +16 −0 rundir/plugins/scenesw/locale/uk.txt
  219. +23 −0 rundir/plugins/scenesw/locale/zh.txt
  220. +72 −42 rundir/services.xconfig
  221. +43 −0 rundir/shaders/SceneTransition.pShader
  222. +315 −0 scenesw/SceneSwitcher.cpp
  223. +132 −0 scenesw/SceneSwitcher.h
  224. +486 −0 scenesw/SceneSwitcherSettings.cpp
  225. BIN scenesw/resource.h
  226. +87 −0 scenesw/scenesw.cpp
  227. +6 −14 Source/Hacks.cpp → scenesw/scenesw.h
  228. BIN scenesw/scenesw.rc
  229. +212 −0 scenesw/scenesw.vcxproj
  230. +44 −0 scenesw/scenesw.vcxproj.filters
  231. BIN x264/libs/32bit/libx264-142.dll
  232. BIN x264/libs/32bit/libx264-146.dll
  233. BIN x264/libs/32bit/libx264.lib
  234. BIN x264/libs/64bit/libx264-142.dll
  235. BIN x264/libs/64bit/libx264-146.dll
  236. BIN x264/libs/64bit/libx264.lib
  237. +5 −4 x264/x264.h
  238. BIN x264/x264.zip
  239. +3 −3 x264/x264_config.h
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -7,6 +7,8 @@ Release_MD/
Release/
Debug/
x64/
installer/prev
installer/test
installer/32bit
installer/upload
installer/64bit
@@ -34,6 +36,7 @@ rundir/crowdin
*.res
*.manifest
*.dep
*.rar
*.zip
*.lnk
*.chm
36 changes: 18 additions & 18 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -59,43 +59,43 @@ Translations:
Arabic - 4miine, BWU Wheelman, Mohamed Hefny, tharmadawe, ZILZAL, Rami Hanna
Basque - Xabier Aramendi
Bengali - Filip Stojanovic
Bulgarian - dwigga, Hath Ington, mjauz, SeanBrightside, Tsvetoslav Shalev, Viktor Kitov, iskrents
Bulgarian - dwigga, Hath Ington, mjauz, SeanBrightside, Tsvetoslav Shalev, Viktor Kitov, iskrents, Night_Raven
Catalan - Jordi Rull, Kassidy Kearey, Pau Risa, r0ckero, Albert Montolio Romo
Chinese Simplified - Guijy, 鲜童, PabloLiu, Flyer Fly, WaterOtaku
Chinese Traditional - Miau Hall, woodghost, You-Ruei Tzeng, PeterDaveHello, PabloLiu, 陳立偉(Vincent)
Chinese Simplified - Guijy, 鲜童 (xiananjyzy), PabloLiu, Flyer Fly, WaterOtaku, true-meaning, xing.liu.5688
Chinese Traditional - Miau Hall, woodghost, You-Ruei Tzeng, PeterDaveHello, PabloLiu, 陳立偉(Vincent), Jimmy Huang
Croatian - kraghot, WhyJoseph, Filip Stojanovic
Czech - crongame, Jirka 'Venty' Michel, Yung Krud
Danish - Amplificator, analleakage, Anders Urban, Crallebab, Jacob Nielsen, Jesper Juhl, martin.wilhardt, MikeyDK, WTFXeon, Jannik Heuser Petersen, Kristoffer Petersen, kristiangrinderslevnielsen, MaltahlGaming, SneakyCheezehead
Dutch - armin.altorffer, jasper.klaren.1, jan.visser.90, Michiel Devliegere, Muf, ThoNohT, VydaX Davy, Moon Evoh, Cornelis de Jonge, Christiaan Biesterbosch, Eric Bataille
Danish - Amplificator, analleakage, Anders Urban, Crallebab, Jacob Nielsen, Jesper Juhl, martin.wilhardt, MikeyDK, WTFXeon, Jannik Heuser Petersen, Kristoffer Petersen, kristiangrinderslevnielsen, MaltahlGaming, SneakyCheezehead, Anders G. Jørgensen, Alexander Christensen
Dutch - jasper.klaren.1, jan.visser.90, Michiel Devliegere, Muf, ThoNohT, VydaX Davy, Moon Evoh, Cornelis de Jonge, Christiaan Biesterbosch, Eric Bataille, jordi1232
Estonian - Andres Lasn, jaagup.kymmel, Kristjan Hiis, Mario Kuusk
Finnish - Joni "Arkkis" Nieminen, Ville Närhi
French - Alan Antunes, Antwan, Bertran de Balanda Jordi, BoboopTeam, George Crawford, Jean Pierre Ponce, Paradis, samcool_129, soopah, Jerom, Gabriel Dugny, DoK_-, Jonis Mommerency, George Crawford, 404: User Not Found
Galician - Brais Denís
German - Gol D. Ace, Johannes Grill, Johannes Kroker, RobinJack0r, selebu, Marvin Gaube, Frank Gehann, BlackJack, Notri, stilicrafter, Palana
French - Alan Antunes, Antwan, Bertran de Balanda Jordi, BoboopTeam, George Crawford, Jean Pierre Ponce, Paradis, samcool_129, soopah, Jerom, Gabriel Dugny, DoK_-, Jonis Mommerency, George Crawford, 404: User Not Found, Tristan Overney, radzaquiel, Yberion, Mickaël Falck
Galician - Brais Denís, Xesús M. Mosquera Carregal
German - Gol D. Ace, Johannes Grill, Johannes Kroker, RobinJack0r, selebu, Marvin Gaube, Frank Gehann, BlackJack, Notri, stilicrafter, Palana, Gabriel Einsdorf
Greek - Alex.pap94, Apope Pe, Fariko Clombs, pragma
Hebrew - AlderaaN, idan, mr_egghead
Hindi - Krishna Mohan
Hungarian - Attila Elter, Bence SZ, Kashimus, Péter György Végh, szalai.szilard.33, Gige, ThorY
Italian - Angelo, archaweb, Marocco2, Yung Krud, Edoardo Macri, Cody Benkoski
Japanese - shousa, kenta takumi
Italian - Angelo, archaweb, Marocco2, Yung Krud, Edoardo Macri, Cody Benkoski, testamorta
Japanese - shousa, kenta takumi, djyayutto, rye
Korean - Seunghoon Yi, Wonjoo Noh, MayB
Lithuanian - dominykas.tijunaitis, Pythlow Stubson, Martynas Jurgilas, zanza zanzaa
Lithuanian - dominykas.tijunaitis, Pythlow Stubson, Martynas Jurgilas, zanza zanzaa, mantak
Norwegian - areedw, August Kind Svendsen, Decicus, Jørgen D. Næss, Oddbjørn Grytdal, Sindre Nordhuus, Talimere, TCi, jens.aalbualvsaker, olaalsaker, Mastersofus, Tokiko
Norwegian Bokmal - Anders Urban, Decicus, jens.aalbualvsaker, John, Jørgen D. Næss, Oddbjørn Grytdal, Stian Schultz, Tore, Lars Håvard Slørdal, areedw, Havatra
Norwegian Bokmal - Anders Urban, Decicus, jens.aalbualvsaker, John, Jørgen D. Næss, Oddbjørn Grytdal, Stian Schultz, Tore, Lars Håvard Slørdal, areedw, Havatra, Arne Germundson, Tokiko
Pirate English - Cornelis de Jonge, George Crawford, Gol D. Ace, Iotku, Jordi ♥ Daphne, lucas.cuminato, Neo_mat, Patric Morgan, TheKomputerKing, Tilen Kuzma, Bjorn Astrom, Kristoffer Petersen, JoeyCashFaceLibro, Pythlow Stubson, Aljaž Gros
Polish - grocal, Jasiegg, Kamil Krzywda, Michał Durak, SuperStarPL, Unitax, Yung Krud, zeshika
Portuguese - Anders Urban, beastmouth, Bruno Ferreira, mushiris, scrapy, Tiago Mendes, WarpOs, WillianPCH, xenon.pk, Yung Krud, zeshika
Portuguese, Brazilian - Anders Urban, caiquemain, felipe.bastos.1485, gmontanola, lucas.cuminato, SPapparazzi, Ramon Gonzalez, Ramon Mendes, Thiago A, WarpOs, William Sanches, WillianPCH, Eduardo Oliveira, Alaniz, Eduardo Oliveira, Fabio Madia
Portuguese - Anders Urban, beastmouth, Bruno Ferreira, mushiris, scrapy, Tiago Mendes, WarpOs, WillianPCH, xenon.pk, Yung Krud, zeshika, Sandro Amaral, Rodrigo
Portuguese, Brazilian - Anders Urban, caiquemain, felipe.bastos.1485, gmontanola, lucas.cuminato, SPapparazzi, Ramon Gonzalez, Ramon Mendes, Thiago A, WarpOs, William Sanches, WillianPCH, Eduardo Oliveira, Alaniz, Eduardo Oliveira, Fabio Madia, Ian Lawrence, gabrieldfreitas
Romanian - alincupunct, banrek, Eduard Francu
Russian - Corwin, flex19, Ivan Frolov, Кристиан Торрехон, MrYadro, Neo_mat, R3mbrant, Sergei Fug1t1v3, Woona, xuok, RuBuddy, kapranov.anton, Миха Александров, Silent Fly, Superiority “SPRT” Platoon
Russian - Corwin, flex19, Ivan Frolov, Кристиан Торрехон, MrYadro, Neo_mat, R3mbrant, Sergei Fug1t1v3, Woona, xuok, RuBuddy, kapranov.anton, Миха Александров, Silent Fly, Superiority “SPRT” Platoon, Bugo, thegrando, Anatoliy Samokisha, Yaroslav
Serbian - Andjelo, dane.dukic, Momentum Faux, Filip Stojanovic
Slovak - Anton Lokaj
Slovenian - ArcaneWater, Luka Fistric, Aljaž Gros, kristjan.krusic
Spanish - Alejandro, cE.Luka'23, DalbertoRodriguez, DeirenDNS, Javier Colter, JoeyCashFaceLibro, Jorge González Muñoz, NoFix, Roberto Lorenzo, Steve Correa, Vitamina P
Swedish - Bjorn Astrom, henxx
Swedish - Bjorn Astrom, henxx, Tomas Friberg
Thai - nongnoobjung
Turkish - Alp Toros KORKMAZ, Burak Kaan Köse, gamemaster54, Heratio, Laserist, Omer Karagoz, Savas Tokmak
Ukrainian - JTG.N00B, Konata Izumi, Кристиан Торрехон, Sirioga, Миха Александров
Turkish - Alp Toros KORKMAZ, Burak Kaan Köse, gamemaster54, Heratio, Laserist, Omer Karagoz, Savas Tokmak, Umut Can Adıgüzel
Ukrainian - JTG.N00B, Konata Izumi, Кристиан Торрехон, Sirioga, Миха Александров, Юрій
Vietnamese - Thuan Huynhnguyen, tulpk07
Others - Thanks to all the other authors whos names I have not written
down.
12 changes: 9 additions & 3 deletions DShowPlugin/CaptureFilter.cpp
Original file line number Diff line number Diff line change
@@ -283,24 +283,30 @@ STDMETHODIMP CaptureFilter::QueryInterface(REFIID riid, void **ppv)
*ppv = (IUnknown*)this;
return NOERROR;
}
if(riid == IID_IPersist)
else if(riid == IID_IPersist)
{
AddRef();
*ppv = (IPersist*)this;
return NOERROR;
}
if(riid == IID_IMediaFilter)
else if(riid == IID_IMediaFilter)
{
AddRef();
*ppv = (IMediaFilter*)this;
return NOERROR;
}
if(riid == IID_IBaseFilter)
else if(riid == IID_IBaseFilter)
{
AddRef();
*ppv = (IBaseFilter*)this;
return NOERROR;
}
else if (riid == IID_IAMFilterMiscFlags)
{
flags->AddRef();
*ppv = flags;
return NOERROR;
}
else
{
*ppv = NULL;
79 changes: 68 additions & 11 deletions DShowPlugin/DShowPlugin.cpp
Original file line number Diff line number Diff line change
@@ -18,6 +18,7 @@


#include "DShowPlugin.h"
#include "IVideoCaptureFilter.h" // for Elgato GameCapture

//todo: super long file. this is another one of those abominations.
//fix it jim
@@ -122,6 +123,21 @@ bool CurrentDeviceExists(CTSTR lpDevice, bool bGlobal, bool &isGlobal)
return false;
}

// FMB NOTE: similar functions already in OBSNVEnc\src\nvmain (guidToString(), stringToGuid())
String GUIDToString(const GUID& guid)
{
LPOLESTR resStr;
String res;

if (StringFromCLSID(guid, &resStr) == S_OK)
{
res = resStr;
CoTaskMemFree(resStr);
}

return res;
}

bool GetGUIDFromString(CTSTR lpGUID, GUID &targetGUID)
{
String strGUID = lpGUID;
@@ -159,19 +175,24 @@ bool GetGUIDFromString(CTSTR lpGUID, GUID &targetGUID)
return true;
}

IBaseFilter* GetExceptionDevice(CTSTR lpGUID)
IBaseFilter* GetExceptionDevice(REFGUID targetGUID)
{
GUID targetGUID;
if (!GetGUIDFromString(lpGUID, targetGUID))
return NULL;

IBaseFilter *filter;
if(SUCCEEDED(CoCreateInstance(targetGUID, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**)&filter)))
return filter;

return NULL;
}

IBaseFilter* GetExceptionDevice(CTSTR lpGUID)
{
GUID targetGUID;
if (!GetGUIDFromString(lpGUID, targetGUID))
return NULL;

return GetExceptionDevice(targetGUID);
}

IBaseFilter* GetDeviceByValue(const IID &enumType, WSTR lpType, CTSTR lpName, WSTR lpType2, CTSTR lpName2)
{
//---------------------------------
@@ -305,7 +326,7 @@ bool PinHasMajorType(IPin *pin, const GUID *majorType)
int priority = -1;
for(int i=0; i<count; i++)
{
AM_MEDIA_TYPE *pMT;
AM_MEDIA_TYPE *pMT = nullptr;
if(SUCCEEDED(config->GetStreamCaps(i, &pMT, capsData)))
{
BOOL bDesiredMediaType = (pMT->majortype == *majorType);
@@ -415,6 +436,11 @@ IPin* GetOutputPin(IBaseFilter *filter, const GUID *majorType)
return foundPin;
}

// ELGATO_WORKAROUND: Not necessary anymore since Elgato Game Capture v.2.20 which implements IAMStreamConfig
// !!! Keep this enabled nonetheless for backwards compatibility !!!
#define ELGATO_WORKAROUND 1

#if ELGATO_WORKAROUND
static void AddElgatoRes(AM_MEDIA_TYPE *pMT, int cx, int cy, VideoOutputType type, List<MediaOutputInfo> &outputInfoList)
{
MediaOutputInfo *outputInfo = outputInfoList.CreateNew();
@@ -433,6 +459,7 @@ static void AddElgatoRes(AM_MEDIA_TYPE *pMT, int cx, int cy, VideoOutputType typ
outputInfo->videoType = type;
outputInfo->bUsingFourCC = false;
}
#endif

void AddOutput(AM_MEDIA_TYPE *pMT, BYTE *capsData, bool bAllowV2, List<MediaOutputInfo> &outputInfoList)
{
@@ -453,6 +480,7 @@ void AddOutput(AM_MEDIA_TYPE *pMT, BYTE *capsData, bool bAllowV2, List<MediaOutp

if(type != VideoOutputType_None)
{
#if ELGATO_WORKAROUND // FMB NOTE 18-Feb-14: Not necessary anymore since Elgato Game Capture v.2.20 which implements IAMStreamConfig
if (!pVSCC && bAllowV2)
{
AddElgatoRes(pMT, 480, 360, type, outputInfoList);
@@ -462,6 +490,7 @@ void AddOutput(AM_MEDIA_TYPE *pMT, BYTE *capsData, bool bAllowV2, List<MediaOutp
DeleteMediaType(pMT);
return;
}
#endif

MediaOutputInfo *outputInfo = outputInfoList.CreateNew();

@@ -491,7 +520,7 @@ void AddOutput(AM_MEDIA_TYPE *pMT, BYTE *capsData, bool bAllowV2, List<MediaOutp
if(pVih->AvgTimePerFrame != 0)
outputInfo->minFrameInterval = outputInfo->maxFrameInterval = pVih->AvgTimePerFrame;
else
outputInfo->minFrameInterval = outputInfo->maxFrameInterval = 10000000/30; //elgato hack
outputInfo->minFrameInterval = outputInfo->maxFrameInterval = 10000000/30; //elgato hack // FMB NOTE 18-Feb-14: Not necessary anymore since Elgato Game Capture v.2.20 which implements IAMStreamConfig

outputInfo->xGranularity = outputInfo->yGranularity = 1;
}
@@ -522,7 +551,7 @@ void GetOutputList(IPin *curPin, List<MediaOutputInfo> &outputInfoList)
int priority = -1;
for(int i=0; i<count; i++)
{
AM_MEDIA_TYPE *pMT;
AM_MEDIA_TYPE *pMT = nullptr;
if(SUCCEEDED(config->GetStreamCaps(i, &pMT, capsData)))
AddOutput(pMT, capsData, false, outputInfoList);
}
@@ -762,7 +791,7 @@ struct ConfigDialogData

#define DEV_EXCEPTION_COUNT 1
CTSTR lpExceptionNames[DEV_EXCEPTION_COUNT] = {TEXT("Elgato Game Capture HD")};
CTSTR lpExceptionGUIDs[DEV_EXCEPTION_COUNT] = {TEXT("{39F50F4C-99E1-464a-B6F9-D605B4FB5918}")};
const GUID lpExceptionGUIDs[DEV_EXCEPTION_COUNT] = {CLSID_ElgatoVideoCaptureFilter};

bool FillOutListOfDevices(HWND hwndCombo, GUID matchGUID, StringList *deviceList, StringList *deviceIDList)
{
@@ -778,7 +807,9 @@ bool FillOutListOfDevices(HWND hwndCombo, GUID matchGUID, StringList *deviceList
if(exceptionFilter)
{
deviceList->Add(lpExceptionNames[i]);
deviceIDList->Add(lpExceptionGUIDs[i]);

String exceptionGUIDString = GUIDToString(lpExceptionGUIDs[i]);
deviceIDList->Add(exceptionGUIDString);

if(hwndCombo != NULL) SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM)lpExceptionNames[i]);

@@ -1211,6 +1242,16 @@ INT_PTR CALLBACK ConfigureDialogProc(HWND hwnd, UINT message, WPARAM wParam, LPA

SendMessage(hwndTemp, CB_SETCURSEL, deinterlacingConfig.type, 0);

bool fullrange = configData->data->GetInt(L"fullrange") != 0;
SendMessage(GetDlgItem(hwnd, IDC_FULLRANGE), BM_SETCHECK, fullrange ? BST_CHECKED : BST_UNCHECKED, 0);

int colorSpace = configData->data->GetInt(L"colorspace");
hwndTemp = GetDlgItem(hwnd, IDC_COLORSPACE);
SendMessage(hwndTemp, CB_ADDSTRING, 0, (LPARAM)PluginStr("DeviceSelection.ColorSpace.Auto"));
SendMessage(hwndTemp, CB_ADDSTRING, 0, (LPARAM)L"709");
SendMessage(hwndTemp, CB_ADDSTRING, 0, (LPARAM)L"601");
SendMessage(hwndTemp, CB_SETCURSEL, colorSpace, 0);

//------------------------------------------

BOOL bCustomResolution = configData->data->GetInt(TEXT("customResolution"));
@@ -1269,7 +1310,8 @@ INT_PTR CALLBACK ConfigureDialogProc(HWND hwnd, UINT message, WPARAM wParam, LPA
EnableWindow(GetDlgItem(hwnd, IDC_DELAY_EDIT), bUseBuffering);
EnableWindow(GetDlgItem(hwnd, IDC_DELAY), bUseBuffering);

SendMessage(GetDlgItem(hwnd, IDC_USEBUFFERING), BM_SETCHECK, bUseBuffering ? BST_CHECKED : BST_UNCHECKED, 0);
if (strDevice.IsValid())
SendMessage(GetDlgItem(hwnd, IDC_USEBUFFERING), BM_SETCHECK, bUseBuffering ? BST_CHECKED : BST_UNCHECKED, 0);

DWORD bufferTime = configData->data->GetInt(TEXT("bufferTime"));
SendMessage(GetDlgItem(hwnd, IDC_DELAY), UDM_SETRANGE32, 0, 8000);
@@ -1884,6 +1926,16 @@ INT_PTR CALLBACK ConfigureDialogProc(HWND hwnd, UINT message, WPARAM wParam, LPA
double minFPS = 10000000.0/double(fpsInfo.supportedIntervals[i].maxFrameInterval);
double maxFPS = 10000000.0/double(fpsInfo.supportedIntervals[i].minFrameInterval);

// FMB NOTE 05-Feb-15: Override some common fps values to avoid rounding errors (60.002 was displayed instead of 60 fps for the Elgato GCHD60)
if (fpsInfo.supportedIntervals[i].maxFrameInterval == 400000) minFPS = 25.0;
if (fpsInfo.supportedIntervals[i].minFrameInterval == 400000) maxFPS = 25.0;
if (fpsInfo.supportedIntervals[i].maxFrameInterval == 200000) minFPS = 50.0;
if (fpsInfo.supportedIntervals[i].minFrameInterval == 200000) maxFPS = 50.0;
if (fpsInfo.supportedIntervals[i].maxFrameInterval == 333333) minFPS = 30.0;
if (fpsInfo.supportedIntervals[i].minFrameInterval == 333333) maxFPS = 30.0;
if (fpsInfo.supportedIntervals[i].maxFrameInterval == 166666) minFPS = 60.0;
if (fpsInfo.supportedIntervals[i].minFrameInterval == 166666) maxFPS = 60.0;

String strFPS;
if(CloseDouble(minFPS, maxFPS))
strFPS << FloatString(float(minFPS));
@@ -2108,6 +2160,8 @@ INT_PTR CALLBACK ConfigureDialogProc(HWND hwnd, UINT message, WPARAM wParam, LPA
BOOL bCustomResolution = SendMessage(GetDlgItem(hwnd, IDC_CUSTOMRESOLUTION), BM_GETCHECK, 0, 0) == BST_CHECKED;
BOOL bUsePointFiltering = SendMessage(GetDlgItem(hwnd, IDC_POINTFILTERING), BM_GETCHECK, 0, 0) == BST_CHECKED;
BOOL bPreserveSourceSize = SendMessage(GetDlgItem(hwnd, IDC_PRESERVESIZE), BM_GETCHECK, 0, 0) == BST_CHECKED;
BOOL fullRange = SendMessage(GetDlgItem(hwnd, IDC_FULLRANGE), BM_GETCHECK, 0, 0) == BST_CHECKED;
int colorSpace = SendMessage(GetDlgItem(hwnd, IDC_COLORSPACE), CB_GETCURSEL, 0, 0);

int deintId = (int)SendMessage(GetDlgItem(hwnd, IDC_DEINTERLACELIST), CB_GETCURSEL, 0, 0);
deinterlacingConfig = deinterlacerConfigs[deintId];
@@ -2140,6 +2194,9 @@ INT_PTR CALLBACK ConfigureDialogProc(HWND hwnd, UINT message, WPARAM wParam, LPA
configData->data->SetInt(TEXT("deinterlacingProcessor"), deinterlacingConfig.processor);
configData->data->SetInt(TEXT("deinterlacingDoublesFramerate"), deinterlacingConfig.doublesFramerate);

configData->data->SetInt(TEXT("fullrange"), fullRange ? 1 : 0);
configData->data->SetInt(TEXT("colorspace"), colorSpace);

//------------------------------------------

BOOL bUDMError;
Loading