Compare commits

..

No commits in common. '26a634864dac885ae550acbc32b090c91ec753f8' and '288d00d6491f5699b9280a587002e7c113da2f91' have entirely different histories.

@ -202,24 +202,15 @@ class MediaInfo:
self.keep_display_aspect = 0.95 < self.resolution.ratio / self.display_aspect_ratio.ratio < 1.05 self.keep_display_aspect = 0.95 < self.resolution.ratio / self.display_aspect_ratio.ratio < 1.05
if self.keep_display_aspect: if not self.keep_display_aspect:
self.display_width = float(self.resolution.width)
self.pixel_aspect_ratio = Ratio(1, 1)
else:
self.display_width = self.resolution.height * self.display_aspect_ratio.ratio self.display_width = self.resolution.height * self.display_aspect_ratio.ratio
self.pixel_aspect_ratio = self.display_aspect_ratio self.pixel_aspect_ratio = self.display_aspect_ratio
else:
@property self.display_width = float(self.resolution.width)
def tracks(self) -> List[AudioInfo]: self.pixel_aspect_ratio = Ratio(
result = [] self.display_aspect_ratio.x,
for audio in self.audio: self.resolution.width
track = AudioInfo(audio) )
result.append(track)
return result
@property
def menu(self) -> MenuInfo:
return MenuInfo(self.menu_data or { self.duration: "Chapter 1" }, duration=self.duration)
@property @property
def output_bitrate(self) -> int: def output_bitrate(self) -> int:
@ -227,16 +218,27 @@ class MediaInfo:
translations = [ translations = [
Translation(0, 800, 0.5, 200, 600), Translation(0, 800, 0.5, 200, 600),
Translation(800, 1500, 0.4, 400, 800), Translation(800, 1500, 0.4, 400, 800),
Translation(1500, 99999999999, 0.33, 600, 2500), Translation(1500, 99999999999, 0.33, 600, 1200),
] ]
else: else:
translations = [ translations = [
Translation(0, 800, 0.7, 450, 700), Translation(0, 800, 0.7, 450, 700),
Translation(800, 1500, 0.6, 550, 1000), Translation(800, 1500, 0.6, 550, 1000),
Translation(1500, 4000, 0.45, 800, 2500), Translation(1500, 99999999999, 0.45, 800, 5000),
Translation(4000, 99999999999, 0.33, 2000, 5000),
] ]
bitrate = self.bitrate bitrate = self.bitrate
for t in translations: for t in translations:
if t.start <= bitrate < t.end: if t.start <= bitrate < t.end:
return int(min(t.max_br, max(t.min_br, bitrate * t.multiplier))) return int(min(t.max_br, max(t.min_br, bitrate * t.multiplier)))
@property
def tracks(self) -> List[AudioInfo]:
result = []
for audio in self.audio:
track = AudioInfo(audio)
result.append(track)
return result
@property
def menu(self) -> MenuInfo:
return MenuInfo(self.menu_data or { self.duration: "Chapter 1" }, duration=self.duration)

@ -15,19 +15,3 @@ def test_square_source():
assert info.resolution == Resolution(576, 576) assert info.resolution == Resolution(576, 576)
assert info.pixel_aspect_ratio == Ratio(16, 9) assert info.pixel_aspect_ratio == Ratio(16, 9)
def test_normal_source():
info = MediaInfo()
info.general = {
}
info.video = {
"Width": 1920,
"Height": 1080,
"DisplayAspectRatio": 1.778
}
info.determine_aspect_properties()
assert info.resolution == Resolution(1920, 1080)
assert info.pixel_aspect_ratio == Ratio(1, 1)

Loading…
Cancel
Save