import bootstrap
import av
import json
from inputs import OUT
from render_space import entries_for

entries=entries_for('SELF_L01')
path=OUT/'download/SELF_L01/.B_Integrated_Space_Review.remux_v2.partial.mp4'
with av.open(str(path)) as c:
    s=c.streams.video[0]
    info=dict(time_base=str(s.time_base),start=s.start_time,duration=s.duration)
    pts=sorted(float(p.pts*p.time_base) for p in c.demux(s) if p.pts is not None)
assert len(pts)==len(entries)
errors=[x-round(e['seconds']*90000)/90000 for x,e in zip(pts,entries)]
info.update(count=len(pts),min_error=min(errors),max_error=max(errors),
    samples=[dict(index=i,actual=pts[i],source=entries[i]['seconds'],error=errors[i]) for i in (0,1,999,1000,1043,1044,1045,1999,2000,7999,8000,8305)])
(OUT/'reports/remux_v2_pts_diagnosis.json').write_text(json.dumps(info,indent=2))
print(json.dumps(info,indent=2))
