Esempio n. 1
0

def algo_key(algo):
    if algo == "classic":
        return 0
    if algo == "bba0":
        return 1
    return 10


if __name__ == "__main__":
    filenames = sys.argv[1:]
    assert len(filenames)
    export = False
    if filenames[0] == "export":
        filenames = sys.argv[2:]
        export = "comparison.svg"

    sessions = [Session.read(f) for f in filenames]
    sessions.sort(key=lambda s: (s.bwprofile[0], algo_key(s.VLClogs[0].algorithm)))
    sessions_by_algo = []
    for s in sessions:
        algo = s.VLClogs[0].algorithm
        obj = next((o for o in sessions_by_algo if o["algo"] == algo), None)
        if not obj:
            obj = {"algo": algo, "sessions": []}
            sessions_by_algo.append(obj)
        obj["sessions"].append(s)

    plotCompareSessions(sessions_by_algo, export)
Esempio n. 2
0
    assert len(filenames)

    sessions_summary = OrderedDict()
    for filename in filenames:
        try:
            filename = filename.rstrip(os.sep)
            run = 1
            sessions = []
            while True:
                runpath = os.path.join(filename, str(run))
                if not os.path.isdir(runpath):
                    runpath += ".tar.gz"
                    if not os.path.isfile(runpath):
                        break
                        # print "Reading {0} run {1}...".format(filename, run)
                sessions.append(Session.read(runpath))
                run += 1
            if len(sessions) == 0:
                # print "No runs in {0}".format(filename)
                continue
                # print "Analyzing {0}...".format(filename)
            for run_zerobased, session in enumerate(sessions):
                for VLClog in session.VLClogs:
                    summary = PlainObject()
                    summary.total_clients = 1
                    summary.rebuffering_ratio = VLClog.get_buffering_fraction()
                    summary.avg_bitrate = VLClog.get_avg_bitrate()
                    summary.avg_relative_bitrate = float(summary.avg_bitrate) / session.get_fairshare() * 100
                    summary.avg_quality_level = VLClog.get_avg_quality()
                    summary.instability = VLClog.get_instability()