Langage : Python
 Édité le 4 novembre 2022
Télécharger | Reposter
# -*- coding: utf-8 -*- # (c) cubicibo from SUPer import SupStream, ODS, PCS, WDS, ENDS, DisplaySet, Epoch from SUPer import PGraphics FILE_PATH = ... FILE_OUT1 = ... FILE_OUT2 = ... sup = SupStream(FILE_PATH) cut_height = 1080/2 out1, out2 = [], [] for epoch in sup.epochs(): prev_ds2_has_gfx = False ds1, ds2 = [], [] for ds in epoch.ds: if ds.ods and ds.ods[0].height > cut_height: rle_data = b''.join([ods.data for ods in ds.ods]) graphic = PGraphics.decode_rle(rle_data) pg2 = PGraphics.encode_rle(graphic[:int(ds.ods[0].height/2),:]) pg1 = PGraphics.encode_rle(graphic[int(ds.ods[0].height/2):,:]) ods2 = ODS.from_scratch(0, 0, *graphic[:int(ds.ods[0].height/2),:].shape[::-1], pg2, pts=ds.pcs.pts) ods1 = ODS.from_scratch(0, 0, *graphic[int(ds.ods[0].height/2):,:].shape[::-1], pg1, pts=ds.pcs.pts) if not isinstance(ods1, list): ods1 = [ods1] if not isinstance(ods2, list): ods2 = [ods2] ds1.append(DisplaySet([ds.pcs, *ds.wds, *ds.pds, *ods1, ds.segments[-1]])) ds2.append(DisplaySet([ds.pcs, *ds.wds, *ds.pds, *ods2, ds.segments[-1]])) #prev_ds2_has_gfx already True => acquisition => "God is in his heaven, all is right with the world" ;) if prev_ds2_has_gfx is False: ds2[-1].pcs.composition_state = PCS.CompositionState.EPOCH_START prev_ds2_has_gfx = True else: if prev_ds2_has_gfx: ds2.append(DisplaySet([PCS(bytes(ds.pcs)), WDS.from_scratch([], pts=ds.pcs.pts), ENDS.from_scratch(pts=ds.pcs.pts)])) ds2[-1].pcs.composition_state = 0 prev_ds2_has_gfx = False ds1.append(ds) out1.append(Epoch(ds1)) if ds2: out2.append(Epoch(ds2)) with open(FILE_OUT1, 'wb') as f: f.write(b''.join([bytes(epoch) for epoch in out1])) with open(FILE_OUT2, 'wb') as f: f.write(b''.join([bytes(epoch) for epoch in out2]))
x
Éditer le texte

Merci d'entrer le mot de passe que vous avez indiqué à la création du texte.

x
Télécharger le texte

Merci de choisir le format du fichier à télécharger.