Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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))