From 1aa0d4eb4a6ca72d651e67056bbef8300a784acf Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Wed, 23 Jul 2014 20:39:05 +0200 Subject: [PATCH] validate:launcher: Allow informing minimum media duration in scenarios Allowing the launcher to avoid running tests on medias that are not long enough --- validate/data/change_state_intensive.scenario | 2 +- validate/data/fast_backward.scenario | 2 +- validate/data/fast_forward.scenario | 2 +- validate/tools/launcher/baseclasses.py | 12 ++++++++++++ 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/validate/data/change_state_intensive.scenario b/validate/data/change_state_intensive.scenario index 1b10795a98..044ebfc253 100644 --- a/validate/data/change_state_intensive.scenario +++ b/validate/data/change_state_intensive.scenario @@ -1,4 +1,4 @@ -description, duration=0, summary="Set state to NULL->PLAYING->NULL 20 times", need-clock-sync=true +description, duration=0, summary="Set state to NULL->PLAYING->NULL 20 times", need-clock-sync=true, min-media-duration=1.0 set-state, state="null" set-state, state="playing" set-state, state="null" diff --git a/validate/data/fast_backward.scenario b/validate/data/fast_backward.scenario index cca9985469..f1fc1e45c5 100644 --- a/validate/data/fast_backward.scenario +++ b/validate/data/fast_backward.scenario @@ -1,4 +1,4 @@ -description, duration=30.0, minfo-media-duration=310.0, seek=true, reverse-playback=true, need-clock-sync=true +description, duration=30.0, minfo-media-duration=310.0, seek=true, reverse-playback=true, need-clock-sync=true, min-media-duration=310.0 seek, name=Fast-backward-seek, playback_time=0.0, rate=-2.0, start=0.0, stop=310.0, flags=accurate+flush seek, name=Fast-backward-seek, playback_time=300.0, rate=-4.0, start=0.0, stop=300.0, flags=accurate+flush seek, name=Fast-backward-seek, playback_time=280.0, rate=-8.0, start=0.0, stop=280.0, flags=accurate+flush diff --git a/validate/data/fast_forward.scenario b/validate/data/fast_forward.scenario index 61ad939f2d..f8ab9b24d3 100644 --- a/validate/data/fast_forward.scenario +++ b/validate/data/fast_forward.scenario @@ -1,4 +1,4 @@ -description, duration=35.0, seek=true, need-clock-sync=true +description, duration=35.0, seek=true, need-clock-sync=true, min-media-duration=5.0 seek, name=Fast-forward-seek, playback_time=0.0, rate=2.0, start=0.0, flags=accurate+flush seek, name=Fast-forward-seek, playback_time="min(10.0, duration*0.25)", rate=4.0, start=0.0, flags=accurate+flush seek, name=Fast-forward-seek, playback_time="min(20.0, duration*0.50)", rate=8.0, start=0.0, flags=accurate+flush diff --git a/validate/tools/launcher/baseclasses.py b/validate/tools/launcher/baseclasses.py index 4cb863d4e3..465a03163b 100644 --- a/validate/tools/launcher/baseclasses.py +++ b/validate/tools/launcher/baseclasses.py @@ -855,6 +855,12 @@ class Scenario(object): return False + def get_min_media_duration(self): + if hasattr(self, "min_media_duration"): + return long(self.min_media_duration) + + return 0 + def does_reverse_playback(self): if hasattr(self, "reverse_playback"): return bool(self.seek) @@ -1043,6 +1049,12 @@ class MediaDescriptor(Loggable): scenario, self.get_uri()) return False + if self.get_duration() / GST_SECOND < scenario.get_min_media_duration(): + self.debug("Do not run %s as %s is too short (%i < min media duation : %i", + scenario, self.get_uri(), self.get_duration() / GST_SECOND, + scenario.get_min_media_duration()) + return False + for track_type in ['audio', 'subtitle']: if self.get_num_tracks(track_type) < scenario.get_min_tracks(track_type): self.debug("%s -- %s | At least %s %s track needed < %s"