mirror of
https://github.com/meeb/tubesync.git
synced 2025-04-27 07:46:36 +00:00
Merge pull request #991 from tcely/patch-2
Some checks are pending
CI / info (push) Waiting to run
CI / test (3.10) (push) Waiting to run
CI / test (3.11) (push) Waiting to run
CI / test (3.12) (push) Waiting to run
CI / test (3.8) (push) Waiting to run
CI / test (3.9) (push) Waiting to run
CI / containerise (push) Blocked by required conditions
Some checks are pending
CI / info (push) Waiting to run
CI / test (3.10) (push) Waiting to run
CI / test (3.11) (push) Waiting to run
CI / test (3.12) (push) Waiting to run
CI / test (3.8) (push) Waiting to run
CI / test (3.9) (push) Waiting to run
CI / containerise (push) Blocked by required conditions
Expand resolution matching to include height
This commit is contained in:
commit
6d5d3ad98c
@ -121,17 +121,20 @@ def get_best_video_format(media):
|
||||
return False, False
|
||||
video_formats = multi_key_sort(video_formats, sort_keys, True)
|
||||
source_resolution = media.source.source_resolution.strip().upper()
|
||||
source_resolution_height = media.source.source_resolution_height
|
||||
source_vcodec = media.source.source_vcodec
|
||||
exact_match, best_match = None, None
|
||||
for fmt in video_formats:
|
||||
# format_note was blank, match height instead
|
||||
if '' == fmt['format'] and fmt['height'] == media.source.source_resolution_height:
|
||||
fmt['format'] = source_resolution
|
||||
def matched_resolution(fmt):
|
||||
if fmt['format'] == source_resolution:
|
||||
return True
|
||||
elif fmt['height'] == source_resolution_height:
|
||||
return True
|
||||
return False
|
||||
# Of our filtered video formats, check for resolution + codec + hdr + fps match
|
||||
if media.source.prefer_60fps and media.source.prefer_hdr:
|
||||
for fmt in video_formats:
|
||||
# Check for an exact match
|
||||
if (source_resolution == fmt['format'] and
|
||||
if (matched_resolution(fmt) and
|
||||
source_vcodec == fmt['vcodec'] and
|
||||
fmt['is_hdr'] and
|
||||
fmt['is_60fps']):
|
||||
@ -142,7 +145,7 @@ def get_best_video_format(media):
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for a resolution, hdr and fps match but drop the codec
|
||||
if (source_resolution == fmt['format'] and
|
||||
if (matched_resolution(fmt) and
|
||||
fmt['is_hdr'] and fmt['is_60fps']):
|
||||
# Close match
|
||||
exact_match, best_match = False, fmt
|
||||
@ -158,7 +161,7 @@ def get_best_video_format(media):
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for resolution, codec and 60fps match
|
||||
if (source_resolution == fmt['format'] and
|
||||
if (matched_resolution(fmt) and
|
||||
source_vcodec == fmt['vcodec'] and
|
||||
fmt['is_60fps']):
|
||||
exact_match, best_match = False, fmt
|
||||
@ -166,21 +169,21 @@ def get_best_video_format(media):
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for resolution and hdr match
|
||||
if (source_resolution == fmt['format'] and
|
||||
if (matched_resolution(fmt) and
|
||||
fmt['is_hdr']):
|
||||
exact_match, best_match = False, fmt
|
||||
break
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for resolution and 60fps match
|
||||
if (source_resolution == fmt['format'] and
|
||||
if (matched_resolution(fmt) and
|
||||
fmt['is_60fps']):
|
||||
exact_match, best_match = False, fmt
|
||||
break
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for resolution, codec and hdr match
|
||||
if (source_resolution == fmt['format'] and
|
||||
if (matched_resolution(fmt) and
|
||||
source_vcodec == fmt['vcodec'] and
|
||||
fmt['is_hdr']):
|
||||
exact_match, best_match = False, fmt
|
||||
@ -188,14 +191,20 @@ def get_best_video_format(media):
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for resolution and codec
|
||||
if (source_resolution == fmt['format'] and
|
||||
if (matched_resolution(fmt) and
|
||||
source_vcodec == fmt['vcodec']):
|
||||
exact_match, best_match = False, fmt
|
||||
break
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for resolution
|
||||
if source_resolution == fmt['format']:
|
||||
if matched_resolution(fmt):
|
||||
exact_match, best_match = False, fmt
|
||||
break
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for codec
|
||||
if (source_vcodec == fmt['vcodec']):
|
||||
exact_match, best_match = False, fmt
|
||||
break
|
||||
if not best_match:
|
||||
@ -205,7 +214,7 @@ def get_best_video_format(media):
|
||||
if media.source.prefer_60fps and not media.source.prefer_hdr:
|
||||
for fmt in video_formats:
|
||||
# Check for an exact match
|
||||
if (source_resolution == fmt['format'] and
|
||||
if (matched_resolution(fmt) and
|
||||
source_vcodec == fmt['vcodec'] and
|
||||
fmt['is_60fps'] and
|
||||
not fmt['is_hdr']):
|
||||
@ -216,7 +225,7 @@ def get_best_video_format(media):
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for a resolution and fps match but drop the codec
|
||||
if (source_resolution == fmt['format'] and
|
||||
if (matched_resolution(fmt) and
|
||||
fmt['is_60fps'] and
|
||||
not fmt['is_hdr']):
|
||||
exact_match, best_match = False, fmt
|
||||
@ -239,7 +248,7 @@ def get_best_video_format(media):
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for codec and resolution match but drop 60fps
|
||||
if (source_resolution == fmt['format'] and
|
||||
if (matched_resolution(fmt) and
|
||||
source_vcodec == fmt['vcodec'] and
|
||||
not fmt['is_hdr']):
|
||||
exact_match, best_match = False, fmt
|
||||
@ -247,14 +256,20 @@ def get_best_video_format(media):
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for codec and resolution match only
|
||||
if (source_resolution == fmt['format'] and
|
||||
if (matched_resolution(fmt) and
|
||||
source_vcodec == fmt['vcodec']):
|
||||
exact_match, best_match = False, fmt
|
||||
break
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for resolution
|
||||
if source_resolution == fmt['format']:
|
||||
if matched_resolution(fmt):
|
||||
exact_match, best_match = False, fmt
|
||||
break
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for codec
|
||||
if (source_vcodec == fmt['vcodec']):
|
||||
exact_match, best_match = False, fmt
|
||||
break
|
||||
if not best_match:
|
||||
@ -264,7 +279,7 @@ def get_best_video_format(media):
|
||||
elif media.source.prefer_hdr and not media.source.prefer_60fps:
|
||||
for fmt in video_formats:
|
||||
# Check for an exact match
|
||||
if (source_resolution == fmt['format'] and
|
||||
if (matched_resolution(fmt) and
|
||||
source_vcodec == fmt['vcodec'] and
|
||||
fmt['is_hdr']):
|
||||
# Exact match
|
||||
@ -274,7 +289,7 @@ def get_best_video_format(media):
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for a resolution and fps match but drop the codec
|
||||
if (source_resolution == fmt['format'] and
|
||||
if (matched_resolution(fmt) and
|
||||
fmt['is_hdr'] and
|
||||
not fmt['is_60fps']):
|
||||
exact_match, best_match = False, fmt
|
||||
@ -297,7 +312,7 @@ def get_best_video_format(media):
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for codec and resolution match but drop hdr
|
||||
if (source_resolution == fmt['format'] and
|
||||
if (matched_resolution(fmt) and
|
||||
source_vcodec == fmt['vcodec'] and
|
||||
not fmt['is_60fps']):
|
||||
exact_match, best_match = False, fmt
|
||||
@ -305,14 +320,20 @@ def get_best_video_format(media):
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for codec and resolution match only
|
||||
if (source_resolution == fmt['format'] and
|
||||
if (matched_resolution(fmt) and
|
||||
source_vcodec == fmt['vcodec']):
|
||||
exact_match, best_match = False, fmt
|
||||
break
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for resolution
|
||||
if source_resolution == fmt['format']:
|
||||
if matched_resolution(fmt):
|
||||
exact_match, best_match = False, fmt
|
||||
break
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for codec
|
||||
if (source_vcodec == fmt['vcodec']):
|
||||
exact_match, best_match = False, fmt
|
||||
break
|
||||
if not best_match:
|
||||
@ -322,7 +343,7 @@ def get_best_video_format(media):
|
||||
elif not media.source.prefer_hdr and not media.source.prefer_60fps:
|
||||
for fmt in video_formats:
|
||||
# Check for an exact match
|
||||
if (source_resolution == fmt['format'] and
|
||||
if (matched_resolution(fmt) and
|
||||
source_vcodec == fmt['vcodec'] and
|
||||
not fmt['is_60fps'] and
|
||||
not fmt['is_hdr']):
|
||||
@ -333,7 +354,7 @@ def get_best_video_format(media):
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for a resolution, hdr and fps match but drop the codec
|
||||
if (source_resolution == fmt['format'] and
|
||||
if (matched_resolution(fmt) and
|
||||
not fmt['is_hdr'] and not fmt['is_60fps']):
|
||||
# Close match
|
||||
exact_match, best_match = False, fmt
|
||||
@ -349,7 +370,7 @@ def get_best_video_format(media):
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for resolution, codec and hdr match
|
||||
if (source_resolution == fmt['format'] and
|
||||
if (matched_resolution(fmt) and
|
||||
source_vcodec == fmt['vcodec'] and
|
||||
not fmt['is_hdr']):
|
||||
exact_match, best_match = False, fmt
|
||||
@ -357,7 +378,7 @@ def get_best_video_format(media):
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for resolution, codec and 60fps match
|
||||
if (source_resolution == fmt['format'] and
|
||||
if (matched_resolution(fmt) and
|
||||
source_vcodec == fmt['vcodec'] and
|
||||
not fmt['is_60fps']):
|
||||
exact_match, best_match = False, fmt
|
||||
@ -365,21 +386,27 @@ def get_best_video_format(media):
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for resolution and codec
|
||||
if (source_resolution == fmt['format'] and
|
||||
if (matched_resolution(fmt) and
|
||||
source_vcodec == fmt['vcodec']):
|
||||
exact_match, best_match = False, fmt
|
||||
break
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for resolution and not hdr
|
||||
if (source_resolution == fmt['format'] and
|
||||
if (matched_resolution(fmt) and
|
||||
not fmt['is_hdr']):
|
||||
exact_match, best_match = False, fmt
|
||||
break
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for resolution
|
||||
if source_resolution == fmt['format']:
|
||||
if matched_resolution(fmt):
|
||||
exact_match, best_match = False, fmt
|
||||
break
|
||||
if not best_match:
|
||||
for fmt in video_formats:
|
||||
# Check for codec
|
||||
if (source_vcodec == fmt['vcodec']):
|
||||
exact_match, best_match = False, fmt
|
||||
break
|
||||
if not best_match:
|
||||
|
Loading…
Reference in New Issue
Block a user