GameSentenceMiner 2.19.16__tar.gz → 2.19.17__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of GameSentenceMiner might be problematic. Click here for more details.

Files changed (148) hide show
  1. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/gsm.py +3 -1
  2. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/util/ffmpeg.py +23 -4
  3. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner.egg-info/PKG-INFO +1 -1
  4. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/PKG-INFO +1 -1
  5. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/pyproject.toml +1 -1
  6. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/__init__.py +0 -0
  7. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/ai/__init__.py +0 -0
  8. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/ai/ai_prompting.py +0 -0
  9. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/anki.py +0 -0
  10. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/assets/__init__.py +0 -0
  11. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/assets/icon.png +0 -0
  12. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/assets/icon128.png +0 -0
  13. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/assets/icon256.png +0 -0
  14. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/assets/icon32.png +0 -0
  15. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/assets/icon512.png +0 -0
  16. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/assets/icon64.png +0 -0
  17. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/assets/pickaxe.png +0 -0
  18. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/gametext.py +0 -0
  19. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/locales/en_us.json +0 -0
  20. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/locales/ja_jp.json +0 -0
  21. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/locales/zh_cn.json +0 -0
  22. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/obs.py +0 -0
  23. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/ocr/__init__.py +0 -0
  24. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/ocr/gsm_ocr_config.py +0 -0
  25. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/ocr/ocrconfig.py +0 -0
  26. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/ocr/owocr_area_selector.py +0 -0
  27. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/ocr/owocr_helper.py +0 -0
  28. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/ocr/ss_picker.py +0 -0
  29. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/owocr/owocr/__init__.py +0 -0
  30. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/owocr/owocr/__main__.py +0 -0
  31. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/owocr/owocr/config.py +0 -0
  32. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/owocr/owocr/lens_betterproto.py +0 -0
  33. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/owocr/owocr/ocr.py +0 -0
  34. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/owocr/owocr/run.py +0 -0
  35. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/owocr/owocr/screen_coordinate_picker.py +0 -0
  36. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/tools/__init__.py +0 -0
  37. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/tools/audio_offset_selector.py +0 -0
  38. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/tools/furigana_filter_preview.py +0 -0
  39. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/tools/ss_selector.py +0 -0
  40. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/tools/window_transparency.py +0 -0
  41. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/ui/__init__.py +0 -0
  42. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/ui/anki_confirmation.py +0 -0
  43. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/ui/config_gui.py +0 -0
  44. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/ui/furigana_filter_preview.py +0 -0
  45. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/ui/screenshot_selector.py +0 -0
  46. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/util/__init__.py +0 -0
  47. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/util/audio_player.py +0 -0
  48. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/util/communication/__init__.py +0 -0
  49. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/util/communication/send.py +0 -0
  50. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/util/communication/websocket.py +0 -0
  51. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/util/configuration.py +0 -0
  52. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/util/db.py +0 -0
  53. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/util/downloader/Untitled_json.py +0 -0
  54. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/util/downloader/__init__.py +0 -0
  55. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/util/downloader/download_tools.py +0 -0
  56. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/util/downloader/oneocr_dl.py +0 -0
  57. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/util/electron_config.py +0 -0
  58. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/util/games_table.py +0 -0
  59. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/util/get_overlay_coords.py +0 -0
  60. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/util/gsm_utils.py +0 -0
  61. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/util/model.py +0 -0
  62. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/util/notification.py +0 -0
  63. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/util/text_log.py +0 -0
  64. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/util/win10toast/__init__.py +0 -0
  65. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/util/win10toast/__main__.py +0 -0
  66. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/vad.py +0 -0
  67. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/__init__.py +0 -0
  68. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/anki_api_endpoints.py +0 -0
  69. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/database_api.py +0 -0
  70. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/events.py +0 -0
  71. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/gsm_websocket.py +0 -0
  72. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/service.py +0 -0
  73. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/__init__.py +0 -0
  74. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/apple-touch-icon.png +0 -0
  75. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/css/dashboard-shared.css +0 -0
  76. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/css/kanji-grid.css +0 -0
  77. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/css/loading-skeleton.css +0 -0
  78. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/css/overview.css +0 -0
  79. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/css/popups-shared.css +0 -0
  80. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/css/search.css +0 -0
  81. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/css/shared.css +0 -0
  82. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/css/stats.css +0 -0
  83. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/favicon-96x96.png +0 -0
  84. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/favicon.ico +0 -0
  85. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/favicon.svg +0 -0
  86. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/js/anki_stats.js +0 -0
  87. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/js/database.js +0 -0
  88. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/js/goals.js +0 -0
  89. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/js/heatmap.js +0 -0
  90. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/js/kanji-grid.js +0 -0
  91. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/js/overview.js +0 -0
  92. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/js/search.js +0 -0
  93. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/js/shared.js +0 -0
  94. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/js/stats.js +0 -0
  95. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/site.webmanifest +0 -0
  96. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/style.css +0 -0
  97. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/web-app-manifest-192x192.png +0 -0
  98. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/static/web-app-manifest-512x512.png +0 -0
  99. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/stats.py +0 -0
  100. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/anki_stats.html +0 -0
  101. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/date-range.html +0 -0
  102. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/html-head.html +0 -0
  103. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/js-config.html +0 -0
  104. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/basic_kanji_book_bkb_v1_v2.json +0 -0
  105. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/duolingo_kanji.json +0 -0
  106. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/grade.json +0 -0
  107. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/hk_primary_learning.json +0 -0
  108. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/hkscs2016.json +0 -0
  109. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/hsk_levels.json +0 -0
  110. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/humanum_frequency_list.json +0 -0
  111. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/jis_levels.json +0 -0
  112. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/jlpt_level.json +0 -0
  113. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/jpdb_kanji_frequency_list.json +0 -0
  114. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/jpdbv2_kanji_frequency_list.json +0 -0
  115. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/jun_das_modern_chinese_character_frequency_list.json +0 -0
  116. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/kanji_in_context_revised_edition.json +0 -0
  117. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/kanji_kentei_level.json +0 -0
  118. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/mainland_china_elementary_textbook_characters.json +0 -0
  119. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/moe_way_quiz.json +0 -0
  120. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/official_kanji.json +0 -0
  121. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/remembering_the_kanji.json +0 -0
  122. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/standard_form_of_national_characters.json +0 -0
  123. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/table_of_general_standard_chinese_characters.json +0 -0
  124. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/the_kodansha_kanji_learners_course_klc.json +0 -0
  125. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/thousand_character_classic.json +0 -0
  126. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/wanikani_levels.json +0 -0
  127. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/kanji_grid/words_hk_frequency_list.json +0 -0
  128. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/navigation.html +0 -0
  129. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/popups.html +0 -0
  130. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/settings-modal.html +0 -0
  131. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/components/theme-styles.html +0 -0
  132. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/database.html +0 -0
  133. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/goals.html +0 -0
  134. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/index.html +0 -0
  135. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/overview.html +0 -0
  136. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/search.html +0 -0
  137. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/stats.html +0 -0
  138. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/templates/utility.html +0 -0
  139. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/web/texthooking_page.py +0 -0
  140. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner/wip/__init___.py +0 -0
  141. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner.egg-info/SOURCES.txt +0 -0
  142. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner.egg-info/dependency_links.txt +0 -0
  143. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner.egg-info/entry_points.txt +0 -0
  144. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner.egg-info/requires.txt +0 -0
  145. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/GameSentenceMiner.egg-info/top_level.txt +0 -0
  146. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/LICENSE +0 -0
  147. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/README.md +0 -0
  148. {gamesentenceminer-2.19.16 → gamesentenceminer-2.19.17}/setup.cfg +0 -0
@@ -13,6 +13,8 @@ def handle_error_in_initialization(e):
13
13
  sys.exit(1)
14
14
 
15
15
  Icon = None
16
+ Menu = None
17
+ MenuItem = None
16
18
 
17
19
  try:
18
20
  import GameSentenceMiner.util.configuration
@@ -41,7 +43,7 @@ try:
41
43
  from PIL import Image
42
44
  try:
43
45
  pass
44
- # from pystray import Icon, Menu, MenuItem
46
+ from pystray import Icon, Menu, MenuItem
45
47
  except Exception:
46
48
  logger.warning("pystray not installed correctly, tray icon will not work.")
47
49
  from watchdog.events import FileSystemEventHandler
@@ -228,9 +228,19 @@ def get_screenshot(video_file, screenshot_timing, try_selector=False):
228
228
  output_image = make_unique_file_name(os.path.join(
229
229
  get_temporary_directory(), f"{obs.get_current_game(sanitize=True)}.{get_config().screenshot.extension}"))
230
230
 
231
+ pre_input_args = []
232
+ pre_input_args_string = ""
233
+ if get_config().screenshot.custom_ffmpeg_settings:
234
+ if '-hwaccel' in get_config().screenshot.custom_ffmpeg_settings:
235
+ hwaccel_args = get_config().screenshot.custom_ffmpeg_settings.split(" ")
236
+ hwaccel_index = hwaccel_args.index('-hwaccel')
237
+ pre_input_args.extend(hwaccel_args[hwaccel_index:hwaccel_index + 2])
238
+ pre_input_args_string = " ".join(pre_input_args)
239
+
231
240
  # Base command for extracting the frame
232
241
  ffmpeg_command = ffmpeg_base_command_list + [
233
242
  "-ss", f"{screenshot_timing}",
243
+ ] + pre_input_args + [
234
244
  "-i", f"{video_file}",
235
245
  "-vframes", "1" # Extract only one frame
236
246
  ]
@@ -252,7 +262,7 @@ def get_screenshot(video_file, screenshot_timing, try_selector=False):
252
262
  ffmpeg_command.extend(["-vf", ",".join(video_filters)])
253
263
 
254
264
  if get_config().screenshot.custom_ffmpeg_settings:
255
- ffmpeg_command.extend(get_config().screenshot.custom_ffmpeg_settings.replace("\"", "").split(" "))
265
+ ffmpeg_command.extend(get_config().screenshot.custom_ffmpeg_settings.replace("\"", "").replace(pre_input_args_string, "").split())
256
266
  else:
257
267
  # Ensure quality settings are strings
258
268
  ffmpeg_command.extend(["-compression_level", "6", "-q:v", str(get_config().screenshot.quality)])
@@ -598,14 +608,23 @@ def get_screenshot_time(video_path, game_line, default_beginning=False, vad_resu
598
608
  def process_image(image_file):
599
609
  output_image = make_unique_file_name(
600
610
  os.path.join(get_temporary_directory(), f"{obs.get_current_game(sanitize=True)}.{get_config().screenshot.extension}"))
611
+
612
+ pre_input_args = []
613
+ pre_input_args_string = ""
614
+ if get_config().screenshot.custom_ffmpeg_settings:
615
+ if '-hwaccel' in get_config().screenshot.custom_ffmpeg_settings:
616
+ hwaccel_args = get_config().screenshot.custom_ffmpeg_settings.split()
617
+ hwaccel_index = hwaccel_args.index('-hwaccel')
618
+ pre_input_args.extend(hwaccel_args[hwaccel_index:hwaccel_index + 2])
619
+ pre_input_args_string = " ".join(pre_input_args)
601
620
 
602
621
  # FFmpeg command to process the input image
603
- ffmpeg_command = ffmpeg_base_command_list + [
622
+ ffmpeg_command = ffmpeg_base_command_list + pre_input_args + [
604
623
  "-i", image_file
605
624
  ]
606
625
 
607
626
  if get_config().screenshot.custom_ffmpeg_settings:
608
- ffmpeg_command.extend(get_config().screenshot.custom_ffmpeg_settings.split(" "))
627
+ ffmpeg_command.extend(get_config().screenshot.custom_ffmpeg_settings.replace(pre_input_args_string, "").split())
609
628
  else:
610
629
  ffmpeg_command.extend(["-compression_level", "6", "-q:v", get_config().screenshot.quality])
611
630
 
@@ -769,7 +788,7 @@ def reencode_file_with_user_config(input_file, final_output_audio, user_ffmpeg_o
769
788
  command = ffmpeg_base_command_list + [
770
789
  "-i", input_file,
771
790
  "-map", "0:a"
772
- ] + user_ffmpeg_options.replace("\"", "").split(" ") + [
791
+ ] + user_ffmpeg_options.replace("\"", "").split() + [
773
792
  temp_file
774
793
  ]
775
794
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GameSentenceMiner
3
- Version: 2.19.16
3
+ Version: 2.19.17
4
4
  Summary: A tool for mining sentences from games. Update: Dependencies, replay buffer based line searching, and bug fixes.
5
5
  Author-email: Beangate <bpwhelan95@gmail.com>
6
6
  License: MIT License
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GameSentenceMiner
3
- Version: 2.19.16
3
+ Version: 2.19.17
4
4
  Summary: A tool for mining sentences from games. Update: Dependencies, replay buffer based line searching, and bug fixes.
5
5
  Author-email: Beangate <bpwhelan95@gmail.com>
6
6
  License: MIT License
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
7
7
 
8
8
  [project]
9
9
  name = "GameSentenceMiner"
10
- version = "2.19.16"
10
+ version = "2.19.17"
11
11
  description = "A tool for mining sentences from games. Update: Dependencies, replay buffer based line searching, and bug fixes."
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.10, <3.14"