GameSentenceMiner 2.19.8__tar.gz → 2.19.10__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.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/obs.py +4 -1
  2. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/owocr/owocr/ocr.py +2 -2
  3. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/util/ffmpeg.py +12 -4
  4. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner.egg-info/PKG-INFO +1 -1
  5. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/PKG-INFO +1 -1
  6. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/pyproject.toml +1 -1
  7. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/__init__.py +0 -0
  8. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/ai/__init__.py +0 -0
  9. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/ai/ai_prompting.py +0 -0
  10. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/anki.py +0 -0
  11. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/assets/__init__.py +0 -0
  12. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/assets/icon.png +0 -0
  13. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/assets/icon128.png +0 -0
  14. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/assets/icon256.png +0 -0
  15. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/assets/icon32.png +0 -0
  16. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/assets/icon512.png +0 -0
  17. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/assets/icon64.png +0 -0
  18. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/assets/pickaxe.png +0 -0
  19. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/gametext.py +0 -0
  20. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/gsm.py +0 -0
  21. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/locales/en_us.json +0 -0
  22. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/locales/ja_jp.json +0 -0
  23. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/locales/zh_cn.json +0 -0
  24. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/ocr/__init__.py +0 -0
  25. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/ocr/gsm_ocr_config.py +0 -0
  26. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/ocr/ocrconfig.py +0 -0
  27. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/ocr/owocr_area_selector.py +0 -0
  28. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/ocr/owocr_helper.py +0 -0
  29. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/ocr/ss_picker.py +0 -0
  30. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/owocr/owocr/__init__.py +0 -0
  31. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/owocr/owocr/__main__.py +0 -0
  32. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/owocr/owocr/config.py +0 -0
  33. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/owocr/owocr/lens_betterproto.py +0 -0
  34. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/owocr/owocr/run.py +0 -0
  35. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/owocr/owocr/screen_coordinate_picker.py +0 -0
  36. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/tools/__init__.py +0 -0
  37. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/tools/audio_offset_selector.py +0 -0
  38. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/tools/furigana_filter_preview.py +0 -0
  39. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/tools/ss_selector.py +0 -0
  40. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/tools/window_transparency.py +0 -0
  41. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/ui/__init__.py +0 -0
  42. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/ui/anki_confirmation.py +0 -0
  43. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/ui/config_gui.py +0 -0
  44. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/ui/furigana_filter_preview.py +0 -0
  45. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/ui/screenshot_selector.py +0 -0
  46. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/util/__init__.py +0 -0
  47. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/util/audio_player.py +0 -0
  48. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/util/communication/__init__.py +0 -0
  49. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/util/communication/send.py +0 -0
  50. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/util/communication/websocket.py +0 -0
  51. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/util/configuration.py +0 -0
  52. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/util/db.py +0 -0
  53. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/util/downloader/Untitled_json.py +0 -0
  54. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/util/downloader/__init__.py +0 -0
  55. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/util/downloader/download_tools.py +0 -0
  56. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/util/downloader/oneocr_dl.py +0 -0
  57. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/util/electron_config.py +0 -0
  58. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/util/games_table.py +0 -0
  59. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/util/get_overlay_coords.py +0 -0
  60. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/util/gsm_utils.py +0 -0
  61. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/util/model.py +0 -0
  62. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/util/notification.py +0 -0
  63. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/util/text_log.py +0 -0
  64. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/util/win10toast/__init__.py +0 -0
  65. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/util/win10toast/__main__.py +0 -0
  66. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/vad.py +0 -0
  67. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/__init__.py +0 -0
  68. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/anki_api_endpoints.py +0 -0
  69. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/database_api.py +0 -0
  70. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/events.py +0 -0
  71. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/gsm_websocket.py +0 -0
  72. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/service.py +0 -0
  73. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/__init__.py +0 -0
  74. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/apple-touch-icon.png +0 -0
  75. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/css/dashboard-shared.css +0 -0
  76. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/css/kanji-grid.css +0 -0
  77. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/css/loading-skeleton.css +0 -0
  78. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/css/overview.css +0 -0
  79. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/css/popups-shared.css +0 -0
  80. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/css/search.css +0 -0
  81. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/css/shared.css +0 -0
  82. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/css/stats.css +0 -0
  83. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/favicon-96x96.png +0 -0
  84. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/favicon.ico +0 -0
  85. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/favicon.svg +0 -0
  86. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/js/anki_stats.js +0 -0
  87. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/js/database.js +0 -0
  88. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/js/goals.js +0 -0
  89. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/js/heatmap.js +0 -0
  90. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/js/kanji-grid.js +0 -0
  91. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/js/overview.js +0 -0
  92. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/js/search.js +0 -0
  93. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/js/shared.js +0 -0
  94. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/js/stats.js +0 -0
  95. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/site.webmanifest +0 -0
  96. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/style.css +0 -0
  97. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/web-app-manifest-192x192.png +0 -0
  98. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/static/web-app-manifest-512x512.png +0 -0
  99. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/stats.py +0 -0
  100. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/anki_stats.html +0 -0
  101. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/date-range.html +0 -0
  102. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/html-head.html +0 -0
  103. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/js-config.html +0 -0
  104. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/basic_kanji_book_bkb_v1_v2.json +0 -0
  105. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/duolingo_kanji.json +0 -0
  106. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/grade.json +0 -0
  107. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/hk_primary_learning.json +0 -0
  108. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/hkscs2016.json +0 -0
  109. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/hsk_levels.json +0 -0
  110. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/humanum_frequency_list.json +0 -0
  111. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/jis_levels.json +0 -0
  112. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/jlpt_level.json +0 -0
  113. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/jpdb_kanji_frequency_list.json +0 -0
  114. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/jpdbv2_kanji_frequency_list.json +0 -0
  115. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/jun_das_modern_chinese_character_frequency_list.json +0 -0
  116. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/kanji_in_context_revised_edition.json +0 -0
  117. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/kanji_kentei_level.json +0 -0
  118. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/mainland_china_elementary_textbook_characters.json +0 -0
  119. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/moe_way_quiz.json +0 -0
  120. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/official_kanji.json +0 -0
  121. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/remembering_the_kanji.json +0 -0
  122. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/standard_form_of_national_characters.json +0 -0
  123. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/table_of_general_standard_chinese_characters.json +0 -0
  124. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/the_kodansha_kanji_learners_course_klc.json +0 -0
  125. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/thousand_character_classic.json +0 -0
  126. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/wanikani_levels.json +0 -0
  127. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/kanji_grid/words_hk_frequency_list.json +0 -0
  128. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/navigation.html +0 -0
  129. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/popups.html +0 -0
  130. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/settings-modal.html +0 -0
  131. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/components/theme-styles.html +0 -0
  132. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/database.html +0 -0
  133. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/goals.html +0 -0
  134. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/index.html +0 -0
  135. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/overview.html +0 -0
  136. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/search.html +0 -0
  137. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/stats.html +0 -0
  138. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/templates/utility.html +0 -0
  139. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/web/texthooking_page.py +0 -0
  140. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner/wip/__init___.py +0 -0
  141. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner.egg-info/SOURCES.txt +0 -0
  142. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner.egg-info/dependency_links.txt +0 -0
  143. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner.egg-info/entry_points.txt +0 -0
  144. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner.egg-info/requires.txt +0 -0
  145. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/GameSentenceMiner.egg-info/top_level.txt +0 -0
  146. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/LICENSE +0 -0
  147. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/README.md +0 -0
  148. {gamesentenceminer-2.19.8 → gamesentenceminer-2.19.10}/setup.cfg +0 -0
@@ -581,7 +581,10 @@ def get_active_video_sources():
581
581
  if not scene_items_response:
582
582
  return None
583
583
  video_sources = ['window_capture', 'game_capture', 'monitor_capture']
584
- return [item for item in scene_items_response if item.get('inputKind') in video_sources]
584
+ active_video_sources = [item for item in scene_items_response if item.get('inputKind') in video_sources]
585
+ # active_video_sources = []
586
+
587
+ return active_video_sources if active_video_sources else [scene_items_response[0]]
585
588
 
586
589
  def get_record_directory():
587
590
  try:
@@ -1595,7 +1595,7 @@ class MeikiTextDetector:
1595
1595
  available = False
1596
1596
  key = ']'
1597
1597
 
1598
- def __init__(self, model_name: str = 'tiny'):
1598
+ def __init__(self, model_name: str = 'small'):
1599
1599
  """
1600
1600
  Initializes the detector by downloading and loading the specified ONNX model.
1601
1601
 
@@ -1606,7 +1606,7 @@ class MeikiTextDetector:
1606
1606
  if model_name not in ['tiny', 'small']:
1607
1607
  raise ValueError("model_name must be either 'tiny' or 'small'")
1608
1608
 
1609
- ort.preload_dlls(cuda=True, directory=None)
1609
+ ort.preload_dlls(cuda=False, cudnn=False, directory=None)
1610
1610
 
1611
1611
  self.model_name = model_name
1612
1612
  self.session = None
@@ -460,12 +460,15 @@ def find_black_bars(video_file, screenshot_timing):
460
460
 
461
461
  logger.debug(f"Original video dimensions: {orig_width}x{orig_height}")
462
462
 
463
+ ss_seek = max(0, float(screenshot_timing) - 0.5)
463
464
  cropdetect_command = ffmpeg_base_command_list_info + [
465
+ "-ss", str(ss_seek), # fast input seek
464
466
  "-i", video_file,
465
- "-ss", f"{screenshot_timing}", # Start near the screenshot time
466
- "-t", "1", # Analyze for 1 second
467
- "-vf", "cropdetect=limit=16", # limit=0 means true black only, round=2 for even dimensions
468
- "-f", "null", "-" # Discard video output
467
+ "-t", "1", # analyze ~1 second
468
+ "-an", # ignore audio
469
+ "-vf", "cropdetect=limit=16:round=2",
470
+ "-frames:v", "8", # only analyze a few frames
471
+ "-f", "null", "-"
469
472
  ]
470
473
 
471
474
  result = subprocess.run(
@@ -496,6 +499,11 @@ def find_black_bars(video_file, screenshot_timing):
496
499
  logger.debug(f"Crop would be {crop_width}x{crop_height} ({area_ratio:.1%} of original area)")
497
500
  logger.debug(f"Original aspect ratio: {orig_aspect:.3f}, Crop aspect ratio: {crop_aspect:.3f}, Difference: {aspect_diff:.1%}")
498
501
 
502
+ # If the crop is within 1% of the original aspect ratio, don't crop
503
+ if aspect_diff < 0.01:
504
+ logger.info("Detected crop does not significantly change aspect ratio. Skipping crop.")
505
+ return None
506
+
499
507
  # Safeguards:
500
508
  # 1. Crop must retain at least 25% of the original video area
501
509
  # 2. Aspect ratio must not change by more than 30%
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GameSentenceMiner
3
- Version: 2.19.8
3
+ Version: 2.19.10
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.8
3
+ Version: 2.19.10
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.8"
10
+ version = "2.19.10"
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"