提交 cf1c4847 编写于 作者: G George Claghorn

Cope with videos with undefined display aspect ratios

上级 9bf41f24
......@@ -55,8 +55,12 @@ def angle
def display_aspect_ratio
if descriptor = video_stream["display_aspect_ratio"]
terms = descriptor.split(":", 2).collect(&:to_i)
terms if terms.count == 2 && terms.min >= 0
if terms = descriptor.split(":", 2)
numerator = Integer(terms[0])
denominator = Integer(terms[1])
[numerator, denominator] unless numerator == 0
end
end
end
......
......@@ -37,6 +37,15 @@ class ActiveStorage::Analyzer::VideoAnalyzerTest < ActiveSupport::TestCase
assert_equal [16, 9], metadata[:display_aspect_ratio]
end
test "analyzing a video with an undefined display aspect ratio" do
blob = create_file_blob(filename: "video_with_undefined_display_aspect_ratio.mp4", content_type: "video/mp4")
metadata = extract_metadata_from(blob)
assert_equal 640, metadata[:width]
assert_equal 480, metadata[:height]
assert_nil metadata[:display_aspect_ratio]
end
test "analyzing a video without a video stream" do
blob = create_file_blob(filename: "video_without_video_stream.mp4", content_type: "video/mp4")
metadata = extract_metadata_from(blob)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册