More precise debug messages when segment generator exits

このコミットが含まれているのは:
n9k 2022-06-08 23:57:02 +00:00
コミット dab389abcc
1個のファイルの変更16行の追加9行の削除

ファイルの表示

@ -76,10 +76,14 @@ def get_next_segment(uri):
segment = None segment = None
return segment return segment
async def get_segment_uris(): async def get_segment_uris(token):
try: try:
segment = get_starting_segment() segment = get_starting_segment()
except Offline: except Offline:
print(
f'[debug @ {time.time():.3f}: {token=}] '
f'stream went offline before we could find any segments'
)
return return
else: else:
yield segment.init_section.uri yield segment.init_section.uri
@ -92,12 +96,22 @@ async def get_segment_uris():
try: try:
next_segment = get_next_segment(segment.uri) next_segment = get_next_segment(segment.uri)
except Offline: except Offline:
print(
f'[debug @ {time.time():.3f}: {token=}] '
f'stream went offline while looking for the segment '
f'following {uri=}'
)
return return
else: else:
if next_segment is not None: if next_segment is not None:
segment = next_segment segment = next_segment
break break
elif time.monotonic() - t0 >= CONFIG['SEGMENT_SEARCH_TIMEOUT']: elif time.monotonic() - t0 >= CONFIG['SEGMENT_SEARCH_TIMEOUT']:
print(
f'[debug @ {time.time():.3f}: {token=}] '
f'timed out looking for the segment following {uri=}'
f'(timeout={CONFIG["SEGMENT_SEARCH_TIMEOUT"]}s)'
)
return return
else: else:
await asyncio.sleep(CONFIG['SEGMENT_SEARCH_COOLDOWN']) await asyncio.sleep(CONFIG['SEGMENT_SEARCH_COOLDOWN'])
@ -112,8 +126,7 @@ def path_for(uri):
async def segments(segment_read_hook=lambda uri: None, token=None): async def segments(segment_read_hook=lambda uri: None, token=None):
print(f'[debug @ {time.time():.3f}: {token=}] entering segment generator') print(f'[debug @ {time.time():.3f}: {token=}] entering segment generator')
uri = None async for uri in get_segment_uris(token):
async for uri in get_segment_uris():
#print(f'[debug @ {time.time():.3f}: {token=}] {uri=}') #print(f'[debug @ {time.time():.3f}: {token=}] {uri=}')
try: try:
path = path_for(uri) path = path_for(uri)
@ -136,10 +149,4 @@ async def segments(segment_read_hook=lambda uri: None, token=None):
f'segment {uri=} at {path=} unexpectedly does not exist' f'segment {uri=} at {path=} unexpectedly does not exist'
) )
break break
else:
print(
f'[debug @ {time.time():.3f}: {token=}] '
f'could not find segment following {uri=} after at least '
f'{CONFIG["SEGMENT_SEARCH_TIMEOUT"]} seconds'
)
print(f'[debug @ {time.time():.3f}: {token=}] exiting segment generator') print(f'[debug @ {time.time():.3f}: {token=}] exiting segment generator')