def _add_media(self, media_info, uri=None): self.debug("Checking %s", media_info) if isinstance(media_info, GstValidateMediaDescriptor): media_descriptor = media_info media_info = media_descriptor.get_path() else: media_descriptor = GstValidateMediaDescriptor(media_info) try: # Just testing that the vairous mandatory infos are present caps = media_descriptor.get_caps() if uri is None: uri = media_descriptor.get_uri() media_descriptor.set_protocol(urlparse.urlparse(uri).scheme) for caps2, prot in GST_VALIDATE_CAPS_TO_PROTOCOL: if caps2 == caps: media_descriptor.set_protocol(prot) break scenario_bname = media_descriptor.get_media_filepath() special_scenarios = self.scenarios_manager.find_special_scenarios( scenario_bname) self._uris.append((uri, NamedDic({ "path": media_info, "media_descriptor": media_descriptor }), special_scenarios)) except ConfigParser.NoOptionError as e: self.debug("Exception: %s for %s", e, media_info)
def _add_media(self, media_info, uri=None): self.debug("Checking %s", media_info) if isinstance(media_info, GstValidateMediaDescriptor): media_descriptor = media_info media_info = media_descriptor.get_path() else: media_descriptor = GstValidateMediaDescriptor(media_info) try: # Just testing that the vairous mandatory infos are present caps = media_descriptor.get_caps() if uri is None: uri = media_descriptor.get_uri() # Adjust local http uri if self.options.http_server_port != 8079 and \ uri.startswith("http://127.0.0.1:8079/"): uri = uri.replace("http://127.0.0.1:8079/", "http://127.0.0.1:%r/" % self.options.http_server_port, 1) media_descriptor.set_protocol(urllib.parse.urlparse(uri).scheme) for caps2, prot in GST_VALIDATE_CAPS_TO_PROTOCOL: if caps2 == caps: media_descriptor.set_protocol(prot) break scenario_bname = media_descriptor.get_media_filepath() special_scenarios = self.scenarios_manager.find_special_scenarios( scenario_bname) self._uris.append((uri, NamedDic({"path": media_info, "media_descriptor": media_descriptor}), special_scenarios)) except configparser.NoOptionError as e: self.debug("Exception: %s for %s", e, media_info)
def populate_tests(self, uri_minfo_special_scenarios, scenarios): test_rtsp = GST_VALIDATE_RTSP_SERVER_COMMAND if not test_rtsp: printc( "\n\nRTSP server not available, you should make sure" " that %s is available in your $PATH." % GST_VALIDATE_RTSP_SERVER_COMMAND, Colors.FAIL) elif self.test_manager.options.disable_rtsp: printc("\n\nRTSP tests are disabled") test_rtsp = False for uri, minfo, special_scenarios in uri_minfo_special_scenarios: pipe = self._pipeline_template protocol = minfo.media_descriptor.get_protocol() if protocol == Protocols.RTSP: self.debug("SKIPPING %s as it is a RTSP stream" % uri) continue pipe += " uri=%s" % uri for scenario in special_scenarios + scenarios: cpipe = pipe if not minfo.media_descriptor.is_compatible(scenario): continue cpipe = self._set_sinks(minfo, cpipe, scenario) fname = self._get_name(scenario, protocol, minfo) self.debug("Adding: %s", fname) if scenario.does_reverse_playback( ) and protocol == Protocols.HTTP: # 10MB so we can reverse playback cpipe += " ring-buffer-max-size=10485760" self.add_test( GstValidateLaunchTest( fname, self.test_manager.options, self.test_manager.reporter, cpipe, scenario=scenario, media_descriptor=minfo.media_descriptor)) if test_rtsp and protocol == Protocols.FILE and not minfo.media_descriptor.is_image( ): rtspminfo = NamedDic({ "path": minfo.media_descriptor.get_path(), "media_descriptor": GstValidateRTSPMediaDesciptor( minfo.media_descriptor.get_path()) }) if not rtspminfo.media_descriptor.is_compatible(scenario): continue cpipe = self._set_sinks( rtspminfo, "%s uri=rtsp://127.0.0.1:<RTSPPORTNUMBER>/test" % self._pipeline_template, scenario) fname = self._get_name(scenario, Protocols.RTSP, rtspminfo) self.add_test( GstValidateRTSPTest( fname, self.test_manager.options, self.test_manager.reporter, cpipe, uri, scenario=scenario, media_descriptor=rtspminfo.media_descriptor)) fname = self._get_name(scenario, Protocols.RTSP + '2', rtspminfo) self.add_test( GstValidateRTSPTest( fname, self.test_manager.options, self.test_manager.reporter, cpipe, uri, scenario=scenario, media_descriptor=rtspminfo.media_descriptor, rtsp2=True))