From d61c0d6166efd54c420d328d98387d25cf5d1d95 Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Wed, 16 Jul 2014 11:36:29 +0200 Subject: [PATCH] validate:launcher: Make a MediaDescriptor baseclass to be used by any application --- validate/tools/launcher/baseclasses.py | 70 ++++++++++++++++++-------- 1 file changed, 50 insertions(+), 20 deletions(-) diff --git a/validate/tools/launcher/baseclasses.py b/validate/tools/launcher/baseclasses.py index cb58b55a1e..4dad1201ab 100644 --- a/validate/tools/launcher/baseclasses.py +++ b/validate/tools/launcher/baseclasses.py @@ -873,13 +873,61 @@ class GstValidateBaseTestManager(TestsManager): return self._encoding_formats -class GstValidateMediaDescriptor(Loggable): +class MediaDescriptor(Loggable): + def __init__(self): + Loggable.__init__(self) + + def get_media_filepath(self): + raise NotImplemented + + def get_caps(self): + raise NotImplemented + + def get_uri(self): + raise NotImplemented + + def get_duration(self): + raise NotImplemented + + def get_protocol(self): + raise NotImplemented + + def is_seekable(self): + raise NotImplemented + + def is_image(self): + raise NotImplemented + + def get_num_tracks(self, track_type): + raise NotImplemented + + def is_compatible(self, scenario): + if scenario.seeks() and (not self.is_seekable() or self.is_image()): + self.debug("Do not run %s as %s does not support seeking", + 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" + % (scenario, self.get_uri(), track_type, + scenario.get_min_tracks(track_type), + self.get_num_tracks(track_type))) + return False + + return True + + + + +class GstValidateMediaDescriptor(MediaDescriptor): # Some extension file for discovering results MEDIA_INFO_EXT = "media_info" STREAM_INFO_EXT = "stream_info" def __init__(self, xml_path): - Loggable.__init__(self) + super(GstValidateMediaDescriptor, self).__init__(self) + self._xml_path = xml_path self.media_xml = ET.parse(xml_path).getroot() @@ -925,21 +973,3 @@ class GstValidateMediaDescriptor(Loggable): n += 1 return n - - def is_compatible(self, scenario): - if scenario.seeks() and (not self.is_seekable() or self.is_image()): - self.debug("Do not run %s as %s does not support seeking", - 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" - % (scenario, self.get_uri(), track_type, - scenario.get_min_tracks(track_type), - self.get_num_tracks(track_type))) - return False - - return True - -