Improved corrupt frame handling
continuous-integration/drone Build was killed Details

This commit is contained in:
Lauri Võsandi 2022-07-28 23:37:38 +03:00
parent 3d1aa220dd
commit 4814030936
1 changed files with 16 additions and 14 deletions

View File

@ -376,12 +376,14 @@ async def download(resp, queue):
blob = buf + data[:marker+2]
# Parse DCT coefficients
try:
dct = loads(blob)
except RuntimeError:
counter_frames.labels("corrupted").inc()
else:
now = datetime.utcnow()
gauge_last_frame.labels("download").set(now.timestamp())
try:
# Convert Y component to 16 bit for easier handling
queue.put_nowait((
now,
blob,
@ -395,7 +397,7 @@ async def download(resp, queue):
counter_receive_frames.inc()
# seek begin
marker = data.find(b"\xff\xd8")
marker = data.rfind(b"\xff\xd8")
if marker >= 0:
buf = data[marker:]
else: