Don't recheck erroring hwaccel in http either (#4935)

* Don't recheck erroring hwaccel in http either

* Send error instead of empty for known erroring hwaccel

* Formatting
This commit is contained in:
Nicolas Mowen 2023-01-06 18:31:25 -07:00 committed by GitHub
parent 417a42b0b3
commit d9c45a76fe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 4 deletions

View File

@ -76,6 +76,7 @@ def create_app(
app.storage_maintainer = storage_maintainer
app.plus_api = plus_api
app.camera_error_image = None
app.hwaccel_errors = []
app.register_blueprint(bp)
@ -761,7 +762,11 @@ def version():
@bp.route("/stats")
def stats():
stats = stats_snapshot(current_app.frigate_config, current_app.stats_tracking, [])
stats = stats_snapshot(
current_app.frigate_config,
current_app.stats_tracking,
current_app.hwaccel_errors,
)
return jsonify(stats)
@ -861,7 +866,9 @@ def latest_frame(camera_name):
@bp.route("/recordings/storage", methods=["GET"])
def get_recordings_storage_usage():
recording_stats = stats_snapshot(
current_app.frigate_config, current_app.stats_tracking, []
current_app.frigate_config,
current_app.stats_tracking,
current_app.hwaccel_errors,
)["service"]["storage"][RECORD_DIR]
total_mb = recording_stats["total"]

View File

@ -123,7 +123,7 @@ async def set_gpu_stats(
if isinstance(args, list):
args = " ".join(args)
if args and args not in hwaccel_args and args not in hwaccel_errors:
if args and args not in hwaccel_args:
hwaccel_args.append(args)
for stream_input in camera.ffmpeg.inputs:
@ -138,7 +138,10 @@ async def set_gpu_stats(
stats: dict[str, dict] = {}
for args in hwaccel_args:
if "cuvid" in args or "nvidia" in args:
if args in hwaccel_errors:
# known erroring args should automatically return as error
stats["error-gpu"] = {"gpu": -1, "mem": -1}
elif "cuvid" in args or "nvidia" in args:
# nvidia GPU
nvidia_usage = get_nvidia_gpu_stats()