Fix 'unique_res' to keep resolutions unique within a representation

This commit is contained in:
Omar Roth 2019-06-06 21:32:39 -05:00
parent e4a0669da8
commit fda619f704
No known key found for this signature in database
GPG Key ID: B8254FB7EC3D37F2

View File

@ -4693,7 +4693,7 @@ get "/api/manifest/dash/id/:id" do |env|
region = env.params.query["region"]?
# Since some implementations create playlists based on resolution regardless of different codecs,
# we can opt to only add a source to a representation if it has a unique height
# we can opt to only add a source to a representation if it has a unique height within that representation
unique_res = env.params.query["unique_res"]? && (env.params.query["unique_res"] == "true" || env.params.query["unique_res"] == "1")
client = make_client(YT_URL)
@ -4767,8 +4767,8 @@ get "/api/manifest/dash/id/:id" do |env|
i += 1
end
heights = [] of Int32
{"video/mp4", "video/webm"}.each do |mime_type|
heights = [] of Int32
xml.element("AdaptationSet", id: i, mimeType: mime_type, startWithSAP: 1, subsegmentAlignment: true, scanType: "progressive") do
video_streams.select { |stream| stream["type"].starts_with? mime_type }.each do |fmt|
codecs = fmt["type"].split("codecs=")[1].strip('"')