summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibault Saunier <tsaunier@gnome.org>2014-07-23 14:43:29 +0200
committerThibault Saunier <tsaunier@gnome.org>2014-07-23 17:49:44 +0200
commit386b572066a830e15f36519a25d352d4d65041d8 (patch)
tree359ed1a3ba0b427a51ce3004d3f0838b34ecda57
parent40003689df2f992ad95796ca65b436942b07b709 (diff)
validate: launcher: Force clock syncronization for some scenarios
In some cases it is necessary that the clock is sync so that all the actions can be executed.
-rw-r--r--validate/data/change_state_intensive.scenario2
-rw-r--r--validate/data/fast_backward.scenario2
-rw-r--r--validate/data/fast_forward.scenario2
-rw-r--r--validate/data/seek_backward.scenario2
-rw-r--r--validate/data/seek_forward.scenario2
-rw-r--r--validate/tools/launcher/apps/gst-validate.py17
-rw-r--r--validate/tools/launcher/baseclasses.py11
7 files changed, 27 insertions, 11 deletions
diff --git a/validate/data/change_state_intensive.scenario b/validate/data/change_state_intensive.scenario
index d5e54c9..1b10795 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"
+description, duration=0, summary="Set state to NULL->PLAYING->NULL 20 times", need-clock-sync=true
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 2c6d0ed..cca9985 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
+description, duration=30.0, minfo-media-duration=310.0, seek=true, reverse-playback=true, need-clock-sync=true
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 80c09b7..61ad939 100644
--- a/validate/data/fast_forward.scenario
+++ b/validate/data/fast_forward.scenario
@@ -1,4 +1,4 @@
-description, duration=35.0, seek=true
+description, duration=35.0, seek=true, need-clock-sync=true
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/data/seek_backward.scenario b/validate/data/seek_backward.scenario
index 20b71ae..5083c9b 100644
--- a/validate/data/seek_backward.scenario
+++ b/validate/data/seek_backward.scenario
@@ -1,4 +1,4 @@
-description, seek=true, duration=30
+description, seek=true, duration=30, need-clock-sync=true
seek, name=Backward-seek, playback_time="min(5.0, (duration/4))", rate=1.0, start=0.0, flags=accurate+flush
seek, name=Backward-seek, playback_time="min(10.0, 2*(duration/4))", rate=1.0, start="min(5.0, duration/4)", flags=accurate+flush
seek, name=Backward-seek, playback_time="min(15.0, 3*(duration/4))", rate=1.0, start="min(10.0, 2*(duration/4))", flags=accurate+flush
diff --git a/validate/data/seek_forward.scenario b/validate/data/seek_forward.scenario
index c1fa55f..1487cc9 100644
--- a/validate/data/seek_forward.scenario
+++ b/validate/data/seek_forward.scenario
@@ -1,4 +1,4 @@
-description, seek=true, duration=20
+description, seek=true, duration=20, need-clock-sync=true
seek, name=First-forward-seek, playback_time="min(5.0, (duration/8))", start="min(10, 2*(duration/8))", flags=accurate+flush
seek, name=Second-forward-seek, playback_time="min(15.0, 3*(duration/8))", start="min(20, 4*(duration/8))", flags=accurate+flush
seek, name=Third-forward-seek, playback_time="min(25, 5*(duration/8))", start="min(30.0, 6*(duration/8))", flags=accurate+flush
diff --git a/validate/tools/launcher/apps/gst-validate.py b/validate/tools/launcher/apps/gst-validate.py
index a55239c..6bd3945 100644
--- a/validate/tools/launcher/apps/gst-validate.py
+++ b/validate/tools/launcher/apps/gst-validate.py
@@ -161,15 +161,20 @@ class GstValidatePlaybinTestsGenerator(GstValidatePipelineTestsGenerator):
pipe = self._pipeline_template
protocol = minfo.media_descriptor.get_protocol()
- if self.test_manager.options.mute:
- fakesink = "'fakesink'"
- pipe += " audio-sink=%s video-sink=%s" %(fakesink, fakesink)
-
pipe += " uri=%s" % uri
for scenario in special_scenarios + scenarios:
+ cpipe = pipe
if not minfo.media_descriptor.is_compatible(scenario):
continue
+ if self.test_manager.options.mute:
+ if scenario.needs_clock_sync():
+ fakesink = "'fakesink sync=true'"
+ else:
+ fakesink = "'fakesink'"
+
+ cpipe += " audio-sink=%s video-sink=%s" %(fakesink, fakesink)
+
fname = "%s.%s" % (self.get_fname(scenario,
protocol),
os.path.basename(uri).replace(".", "_"))
@@ -177,12 +182,12 @@ class GstValidatePlaybinTestsGenerator(GstValidatePipelineTestsGenerator):
if scenario.does_reverse_playback() and protocol == Protocols.HTTP:
# 10MB so we can reverse playback
- pipe += " ring-buffer-max-size=10485760"
+ cpipe += " ring-buffer-max-size=10485760"
self.add_test(GstValidateLaunchTest(fname,
self.test_manager.options,
self.test_manager.reporter,
- pipe,
+ cpipe,
scenario=scenario,
media_descriptor=minfo.media_descriptor)
)
diff --git a/validate/tools/launcher/baseclasses.py b/validate/tools/launcher/baseclasses.py
index 0c83566..4cb863d 100644
--- a/validate/tools/launcher/baseclasses.py
+++ b/validate/tools/launcher/baseclasses.py
@@ -849,6 +849,12 @@ class Scenario(object):
return False
+ def needs_clock_sync(self):
+ if hasattr(self, "need_clock_sync"):
+ return bool(self.need_clock_sync)
+
+ return False
+
def does_reverse_playback(self):
if hasattr(self, "reverse_playback"):
return bool(self.seek)
@@ -1032,6 +1038,11 @@ class MediaDescriptor(Loggable):
scenario, self.get_uri())
return False
+ if self.is_image() and scenario.needs_clock_sync():
+ self.debug("Do not run %s as %s is an image",
+ scenario, self.get_uri())
+ 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"