From f74a65809724dc094d0399f2edf9ea9fa84b61f3 Mon Sep 17 00:00:00 2001 From: matze19999 Date: Tue, 6 Oct 2026 20:29:25 +0200 Subject: [PATCH] Release 0.11.0 with guided calibration, source transitions and root repair --- .gitignore | 3 + HyperDRM.manifest.json | 8 +- ..._0.10.0_arm.ipk => HyperDRM_0.11.0_arm.ipk | Bin 1183836 -> 1203394 bytes README.md | 55 ++++++++- app/app.js | 53 ++++++-- app/appinfo.json | 2 +- app/calibration.js | 35 ++++++ app/calibration.mp4 | Bin 0 -> 226137 bytes app/index.html | 79 ++++++++---- app/navigation.js | 21 ++++ app/remote.js | 6 +- app/wizard.js | 87 +++++++++++++ build_calibration_video.py | 30 +++++ docs/publishing-review.md | 37 ++++++ native/continuity.h | 35 ++++++ native/handover.h | 7 +- native/receiver_stream.h | 71 +++++++++++ native/service.c | 114 +++++++++++++----- native/source_bridge.h | 47 ++++++++ native/spatial_image.h | 5 +- native/test_continuity.c | 27 +++++ native/test_handover.c | 2 +- native/test_receiver_stream.c | 39 ++++++ native/test_source_bridge.c | 43 +++++++ package/packageinfo.json | 2 +- profiles/README.md | 10 ++ service/histogram-service | Bin 80400 -> 81868 bytes tests/calibration.test.js | 19 +++ tests/form-navigation.test.js | 24 ++++ tests/receiver-ui.test.js | 4 +- tests/remote-navigation.test.js | 6 +- tests/root-repair.test.js | 27 +++++ tests/wizard.test.js | 32 +++++ 33 files changed, 855 insertions(+), 75 deletions(-) rename HyperDRM_0.10.0_arm.ipk => HyperDRM_0.11.0_arm.ipk (86%) create mode 100644 app/calibration.js create mode 100644 app/calibration.mp4 create mode 100644 app/navigation.js create mode 100644 app/wizard.js create mode 100644 build_calibration_video.py create mode 100644 native/continuity.h create mode 100644 native/receiver_stream.h create mode 100644 native/source_bridge.h create mode 100644 native/test_continuity.c create mode 100644 native/test_receiver_stream.c create mode 100644 native/test_source_bridge.c create mode 100644 tests/calibration.test.js create mode 100644 tests/form-navigation.test.js create mode 100644 tests/root-repair.test.js create mode 100644 tests/wizard.test.js diff --git a/.gitignore b/.gitignore index 0118843..0b96f60 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,6 @@ test-diagnostics test-calibration test-layout_refresh test-spatial_image +test-continuity +test-receiver_stream +test-source_bridge diff --git a/HyperDRM.manifest.json b/HyperDRM.manifest.json index 4d005af..2180f76 100644 --- a/HyperDRM.manifest.json +++ b/HyperDRM.manifest.json @@ -1,15 +1,15 @@ { "id": "org.webosbrew.histogramhyperion", - "version": "0.10.0", + "version": "0.11.0", "type": "web", "title": "HyperDRM", "appDescription": "Ambient lighting for webOS, Hyperion and HyperHDR", "iconUri": "https://gitea.adnau.de/matze19999/HyperDRM/raw/branch/main/app/icon.png", "sourceUrl": "https://gitea.adnau.de/matze19999/HyperDRM", "rootRequired": true, - "ipkUrl": "https://gitea.adnau.de/matze19999/HyperDRM/raw/branch/main/HyperDRM_0.10.0_arm.ipk", + "ipkUrl": "https://gitea.adnau.de/matze19999/HyperDRM/raw/branch/main/HyperDRM_0.11.0_arm.ipk", "ipkHash": { - "sha256": "0ad040adfc0be402f5c83e783a8f9b4e78b33b59e5b04fa3d52652bf48ddda70" + "sha256": "4e2be7de5f6e06cca4a389d17b18c770aa47ef2d862aac651c16ed02f231d711" }, - "ipkSize": 1183836 + "ipkSize": 1203394 } diff --git a/HyperDRM_0.10.0_arm.ipk b/HyperDRM_0.11.0_arm.ipk similarity index 86% rename from HyperDRM_0.10.0_arm.ipk rename to HyperDRM_0.11.0_arm.ipk index 94982c8330bba42cd764b7c2ebdcd666363e9a4a..098b57fd0a803e892732e2134b5213b1f6c1998f 100644 GIT binary patch delta 129672 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

HyperDRM

Ambient lighting for webOS, Hyperion and HyperHDR.

Checking service …

-
- -

Use the arrow buttons to select a control and OK to activate it.

Autostart starts the service when the TV boots. Stop ends the current session. Auto PicCap uses installed PicCap for non-secure video and HyperDRM for protected or unknown playback. Keep PicCap's own autostart off. Stable unprotected playback selects PicCap; five seconds of connection loss restores HyperDRM, with a 30-second retry cooldown.

-
Receiver settings - - - - -

Connection test: Not tested

-

Use the receiver's JSON TCP port, usually 19444. IPv4 and IPv6 addresses are supported. Leave the token blank to keep a saved token. Save applies the new target to a running session. Use Up/Down to move between fields; Left/Right edit text.

-

Auto PicCap uses the same receiver IP with its FlatBuffer port, usually 19400. Enable the FlatBuffer server on the receiver. When switching to PicCap, its saved address, port and Unix socket setting are updated; other PicCap preferences are preserved. PicCap supports IPv4 targets; remote IPv6 uses HyperDRM. The API token applies to JSON only.

-
TV calibration -

Detecting TV model...

-

Auto selects an imported profile matching this exact TV model, or the measured LG G4 profile. Other models use uniform average colors until calibrated. Select Custom and paste a measured model profile to import it. G4 can also be selected manually. Profiles change spatial mapping; adjust colors in Hyperion/HyperHDR.

-

Priority 149 · 10 updates per second

-

-

Adjust saturation, brightness and smoothing in your receiver. The receiver layout determines the number and positions of LEDs. Colors come from 16 LG histogram regions with interpolated edge colors. HyperHDR receives a generated color plane, which its image mapping converts to LED colors. The LED layout is checked every five seconds and updated automatically.

- + +HyperDRM + +

HyperDRM

+ +

Checking service …

+
+ +
+
Automatic operation +

Autostart retries until the receiver is available. Auto PicCap uses PicCap for unprotected playback and HyperDRM for protected playback. Keep PicCap's own autostart off.

+Measure a spatial profile for your TV. +

Priority 149 · 10 updates per second

+

Adjust brightness, saturation and normal smoothing in Hyperion or HyperHDR.

+
+ + + + diff --git a/app/navigation.js b/app/navigation.js new file mode 100644 index 0000000..b6377bc --- /dev/null +++ b/app/navigation.js @@ -0,0 +1,21 @@ +function showPanel(name,focus){ + ['overview','receiver','calibration'].forEach(function(key){document.getElementById(key+'Panel').style.display=key===name?'block':'none';document.getElementById(key+'Tab').setAttribute('aria-pressed',String(key===name));}); + if(focus!==false)document.getElementById({overview:'start',receiver:'receiver',calibration:'calibrate'}[name]).focus(); +} +['overview','receiver','calibration'].forEach(function(name){document.getElementById(name+'Tab').onclick=function(){showPanel(name);};}); +document.getElementById('calibrationShortcut').onclick=function(){showPanel('calibration');}; +function setupFormEditors(ids,doc,win){ + var pairs=ids.map(function(id){return {input:doc.getElementById(id),field:doc.getElementById(id+'Field')};}); + pairs.forEach(function(pair){ + var input=pair.input,field=pair.field;input.readOnly=true; + field.onclick=function(){if(input.disabled || !input.readOnly)return;input.readOnly=false;input.focus();}; + input.addEventListener('blur',function(){input.readOnly=true;}); + input.addEventListener('mousedown',function(event){if(input.readOnly)event.preventDefault();}); + }); + function finishEditing(){ + pairs.forEach(function(pair){if(!pair.input.readOnly){pair.input.readOnly=true;pair.input.blur();pair.field.focus();}}); + } + doc.addEventListener('keyboardStateChange',function(event){var detail=event.detail||{};if(detail.visibility===false || detail.isShowing===false)finishEditing();}); + doc.addEventListener('keydown',function(event){if((event.keyCode===461 || event.key==='Escape') && pairs.some(function(pair){return !pair.input.readOnly;})){event.preventDefault();finishEditing();}}); +} +setupFormEditors(['host','port','piccapPort','token','customProfile'],document,window); diff --git a/app/remote.js b/app/remote.js index d7fb942..72cbda6 100644 --- a/app/remote.js +++ b/app/remote.js @@ -11,10 +11,10 @@ function setupRemoteNavigation(buttons, doc, win) { event.key==='ArrowRight'||event.key==='ArrowDown'||code===39||code===40?1:0; var enter=event.key==='Enter'||code===13; if(!direction&&!enter)return; - var editing=doc.activeElement && (doc.activeElement.tagName==='INPUT' && doc.activeElement.type!=='checkbox' || doc.activeElement.tagName==='TEXTAREA'); - if(editing && (enter||code===37||code===39||event.key==='ArrowLeft'||event.key==='ArrowRight'))return; + var editing=doc.activeElement && !doc.activeElement.readOnly && (doc.activeElement.tagName==='INPUT' && doc.activeElement.type!=='checkbox' || doc.activeElement.tagName==='TEXTAREA'); + if(editing)return; event.preventDefault(); - var enabled=buttons.filter(function(button){return !button.disabled;}); + var enabled=buttons.filter(function(button){return !button.disabled && (typeof button.getClientRects!=='function' || button.getClientRects().length) && (!win.remoteNavigationScope || win.remoteNavigationScope.indexOf(button.id)>=0);}); if(!enabled.length)return; var focused=doc.activeElement,index=enabled.indexOf(focused); if(direction){ diff --git a/app/wizard.js b/app/wizard.js new file mode 100644 index 0000000..1f66c98 --- /dev/null +++ b/app/wizard.js @@ -0,0 +1,87 @@ +'use strict'; +var wizard=null; +var video=document.getElementById('calibrationVideo'); +function wizardFinish(error){ + if(!wizard)return; + clearInterval(wizard.timer);wizard=null;window.remoteNavigationScope=null;video.pause();video.style.display='none'; + if(typeof video.removeAttribute==='function'){video.removeAttribute('src');video.load();} + document.getElementById('cancelCalibration').disabled=true; + document.getElementById('calibrate').disabled=false;document.getElementById('validateCalibration').disabled=false; + call('calibrationSession',function(r){if(r.returnValue===false)document.getElementById('error').textContent=r.errorText;else call('status',display);},{enabled:false}); + call('calibrationResult',function(){},{message:error||document.getElementById('wizardStatus').textContent}); + if(error)document.getElementById('wizardStatus').textContent=error; + document.getElementById('calibrate').focus(); +} +function wizardSample(){ + if(!wizard || wizard.busy)return; + if(Date.now()-wizard.started>100000){wizardFinish('Calibration timed out. Saved profile unchanged.');return;} + if(wizard.validation)return; + var t=video.currentTime; + if(t>=68){ + try{ + var measured=calibrationFit(calibrationAverage(wizard.baseline),wizard.patches.map(calibrationAverage),wizard.model); + profile='custom';profileDirty=true;showProfile();document.getElementById('customProfile').value=JSON.stringify(measured,null,2); + document.getElementById('wizardStatus').textContent='Measured '+measured.points.length+' edge regions. Select Save profile, then Validate profile to check all four colored edges. The previous saved profile is still active.'; + wizard.busy=true; + call('calibrationDraft',function(r){if(wizard)wizardFinish(r.returnValue===false?r.errorText:undefined);},{profile:'custom',model:measured.model,points:measured.points}); + }catch(e){wizardFinish(e.message);} + return; + } + var step=t<4?-1:Math.floor((t-4)/2),local=t<4?t:(t-4)%2; + if(step<0 && (t<.8 || t>3.2) || step>=0 && (local<.65 || local>1.75))return; + wizard.busy=true; + call('status',function(s){ + if(!wizard)return; + wizard.busy=false; + if(s.returnValue===false || !s.calibrating){wizardFinish(s.errorText||'Calibration session ended. Saved profile unchanged.');return;} + // Ignore duplicates, held output and replies crossing a stimulus boundary. + var current=video.currentTime,nowStep=current<4?-1:Math.floor((current-4)/2); + if(nowStep!==step || s.sampleSequence===wizard.sequence || s.sampleAgeMs<0 || s.sampleAgeMs>350 || !s.colorValid || !Array.isArray(s.regions) || s.regions.length!==16)return; + wizard.sequence=s.sampleSequence; + (step<0?wizard.baseline:wizard.patches[step]).push(calibrationLuma(s.regions)); + document.getElementById('wizardStatus').textContent=step<0?'Measuring black reference...':'Measuring edge patch '+(step+1)+' of 32...'; + }); +} +function wizardStart(validation){ + if(wizard)return; + if(typeof showPanel==='function')showPanel('calibration',false); + if(targetDirty || profileDirty){document.getElementById('wizardStatus').textContent='Save receiver and profile edits before starting.';return;} + document.getElementById('calibrate').disabled=true;document.getElementById('validateCalibration').disabled=true; + document.getElementById('cancelCalibration').disabled=false; + window.remoteNavigationScope=['cancelCalibration']; + wizard={validation:validation,started:Date.now(),busy:false,sequence:-1,model:'',baseline:[],patches:Array.from({length:32},function(){return [];})}; + document.getElementById('wizardStatus').textContent='Starting full-screen capture. Keep the app visible; do not change zoom or aspect ratio.'; + call('calibrationSession',function(r){ + if(!wizard)return;if(r.returnValue===false){wizardFinish(r.errorText);return;} + // Start the video plane before waiting for histogram data. Without another + // running video, waiting first would prevent calibration from ever starting. + video.src='calibration.mp4';if(typeof video.load==='function')video.load(); + video.style.display='block';var warmup=video.play(); + if(warmup && warmup.catch)warmup.catch(function(){wizardFinish('The TV could not play the calibration video. Saved profile unchanged.');}); + call('start',function(){waitCapture();}); + },{enabled:true}); + function waitCapture(){ + if(!wizard)return; + call('status',function(s){ + if(!wizard)return; + if(s.running && s.activeSource!=='PicCap' && s.tvModel && s.colorValid){ + wizard.model=s.tvModel;video.currentTime=validation?68:0;video.style.display='block'; + document.getElementById('cancelCalibration').focus(); + var playing=video.play();if(playing && playing.catch)playing.catch(function(){wizardFinish('The TV could not play the calibration video. Saved profile unchanged.');}); + wizard.timer=setInterval(wizardSample,250); + }else if(Date.now()-wizard.started<15000)setTimeout(waitCapture,500); + else wizardFinish('No fresh full-screen histogram capture or TV model. Saved profile unchanged.'); + }); + } +} +document.getElementById('calibrate').onclick=function(){wizardStart(false);}; +document.getElementById('validateCalibration').onclick=function(){wizardStart(true);}; +document.getElementById('cancelCalibration').onclick=function(){wizardFinish('Calibration cancelled. Saved profile unchanged.');}; +video.addEventListener('ended',function(){if(wizard && wizard.validation)wizardFinish('Validation finished. Top-left red, top-right green, bottom-right blue, bottom-left yellow. Check matching LED positions.');else wizardSample();}); +video.addEventListener('error',function(){wizardFinish('Calibration video playback failed. Saved profile unchanged.');}); +document.addEventListener('keydown',function(e){if(wizard && (e.keyCode===461 || e.key==='Escape')){e.preventDefault();wizardFinish('Calibration cancelled. Saved profile unchanged.');}}); +window.addEventListener('pagehide',function(){wizardFinish();}); +// An explicit launch action also supports starting the TV's guided test remotely. +function wizardLaunch(raw){try{var params=typeof raw==='string'?JSON.parse(raw):raw;if(params && params.action==='calibrate')wizardStart(false);else if(params && params.action==='repairRoot'){showPanel('overview');repairRoot(function(ok){if(ok)call('status',display);});}}catch(e){document.getElementById('wizardStatus').textContent='Invalid launch parameters.';}} +if(typeof PalmSystem!=='undefined' && PalmSystem.launchParams)setTimeout(function(){wizardLaunch(PalmSystem.launchParams);},1000); +window.addEventListener('webOSRelaunch',function(){if(typeof PalmSystem!=='undefined')wizardLaunch(PalmSystem.launchParams);}); diff --git a/build_calibration_video.py b/build_calibration_video.py new file mode 100644 index 0000000..ec93355 --- /dev/null +++ b/build_calibration_video.py @@ -0,0 +1,30 @@ +"""Build the deterministic native video-plane calibration stimulus (H.264).""" +import argparse, subprocess +from pathlib import Path + +parser=argparse.ArgumentParser() +parser.add_argument('--ffmpeg',default='ffmpeg') +args=parser.parse_args() +root=Path(__file__).resolve().parent +width,height=1920,1080 +filters=[] +for step in range(32): + edge,index=divmod(step,8) + center=(index+.5)/8 + if edge==0: x,y,w,h=int(center*width-192),0,384,162 + elif edge==1: x,y,w,h=1632,int(center*height-108),288,216 + elif edge==2: x,y,w,h=int((1-center)*width-192),918,384,162 + else: x,y,w,h=0,int((1-center)*height-108),288,216 + left,top=max(0,x),max(0,y) + w,h=min(width,x+w)-left,min(height,y+h)-top + start=4+step*2 + filters.append(f"drawbox=x={left}:y={top}:w={w}:h={h}:color=white:t=fill:enable='gte(t,{start})*lt(t,{start+2})'") +# Four color quadrants for visual validation after measurement. +for x,y,color in [(0,0,'red'),(960,0,'lime'),(960,540,'blue'),(0,540,'yellow')]: + filters.append(f"drawbox=x={x}:y={y}:w=960:h=540:color={color}:t=fill:enable='gte(t,68)'") +subprocess.run([args.ffmpeg,'-hide_banner','-loglevel','error','-y','-f','lavfi','-i', + 'color=black:s=1920x1080:r=30:d=78','-vf',','.join(filters), + '-c:v','libx264','-preset','fast','-crf','16','-pix_fmt','yuv420p', + '-profile:v','main','-level','4.0','-g','30','-an','-movflags','+faststart', + str(root/'app/calibration.mp4')],check=True) +print(root/'app/calibration.mp4') diff --git a/docs/publishing-review.md b/docs/publishing-review.md index f002fe7..6551c70 100644 --- a/docs/publishing-review.md +++ b/docs/publishing-review.md @@ -99,3 +99,40 @@ A separate nonblocking authenticated receiver probe refreshes the LED mapping ev The app automatically detected OLED65G42LW.DEUQLJP and selected the measured G4 profile. A live switch to Average produced one unique output color across four HyperHDR LED-stream samples; switching back to G4 produced 80-97 unique colors. Auto and the original receiver/handover preferences were restored afterward. Custom profiles validate 2-16 sorted rim positions, bounded region indices and model identifiers, persist privately, and are selected automatically only for the exact imported model identifier. No measured spatial profile for other hardware is claimed. Native tests passed profile parsing/persistence, model selection and average fallback. The synthetic-image test verifies geometry cache replacement after a custom-profile change. The receiver UI and remote-navigation tests passed, including custom JSON input and profile controls. Diagnosis export was deliberately excluded from this release. Cold boot and other TV models remain unverified. + +## Color continuity, calibration wizard and TV navigation (0.11.0) + +Empty histogram populations and failed reads are distinguished from populated +black frames. A bounded 1.5-second hold expires into capture recovery; valid dark +frames bypass the 500 ms recovery blend without altering their RGB values. ARM +tests verify hold timing, black populations, recovery mixing and near-black codec +rounding. An independent nonblocking raw receiver LED subscription accepts old +result and current data envelopes, authenticates when required, handles fragmented +messages, validates array values/counts and rebuilds mappings on layout/profile +changes. Source bridge tests cover both directions, fresh-sample gating, midpoint +and completion, genuine black, stale samples, timeout, connection setup and Stop. + +The bundled reproducible H.264 calibration video measures 32 edge positions. +PicCap handover and bar detection are suppressed only for the bounded calibration +session. The wizard starts the video plane before waiting for capture, requires +fresh samples, rejects global/multimodal responses and selects the most localized +anchor when nested regions overlap. The live G4 run produced ten sorted anchors +covering all four edges and preserved the saved Auto/G4 profile. One source +revocation recovered in 252 ms. Other TV hardware remains unverified; candidates +require user review/save and four-corner validation. Failed measurements and +cancellation preserve the saved profile. + +Overview, Receiver and Calibration are separate sections. Start Auto Calibration +is directly visible in Calibration and linked from Overview. Focusable field +frames keep native inputs unfocused during highlighting; OK/click explicitly +starts keyboard editing. The documented keyboardStateChange event and Back +restore frame navigation. Tests cover section selection, hidden/disabled controls, +input focus only after activation, keyboard dismissal, wizard scope and rejection, +proposal versus saved state, JSON validation and root-repair retries/denials. + +The root repair targets only org.webosbrew.histogramhyperion.service via Homebrew +Channel and restarts only this service. The TV's current root process and boot +symlink were verified. Actual autostart disable/enable requests succeeded, with +Autostart restored to On. No receiver color correction, WLED configuration or +PicCap autostart setting was changed. A local browser preview was unavailable +because the browser policy rejected file URLs; no alternate browser path was used. diff --git a/native/continuity.h b/native/continuity.h new file mode 100644 index 0000000..9594e05 --- /dev/null +++ b/native/continuity.h @@ -0,0 +1,35 @@ +#ifndef HYPERDRM_CONTINUITY_H +#define HYPERDRM_CONTINUITY_H +/* Zero population is missing data, while populated bin zero is real black. */ +static inline bool histogram_populated(const Histogram hist[16]){ + for(unsigned r=0;r<16;r++)for(unsigned c=0;c<3;c++){ + uint64_t total=0;for(unsigned b=0;b<256;b++)total+=hist[r].bins[c][b]; + if(!total)return false; + } + return true; +} +typedef struct {unsigned char last[16][3],from[16][3];uint64_t valid_at,fade_at,missing_at;bool available,fading,holding;} Continuity; +static inline void continuity_seed(Continuity *s,const unsigned char colors[16][3],uint64_t now){ + memcpy(s->last,colors,sizeof(s->last));memcpy(s->from,colors,sizeof(s->from));s->valid_at=now;s->available=true;s->fading=true;s->fade_at=0;s->missing_at=0;s->holding=false; +} +static inline void continuity_mix(const unsigned char from[16][3],const unsigned char to[16][3],unsigned elapsed,unsigned char out[16][3]){ + if(elapsed>500)elapsed=500; + for(unsigned r=0;r<16;r++)for(unsigned c=0;c<3;c++)out[r][c]=(from[r][c]*(500-elapsed)+to[r][c]*elapsed+250)/500; +} +static inline bool continuity_frame(Continuity *s,bool valid,const unsigned char input[16][3],uint64_t now,unsigned char out[16][3]){ + if(!valid){ + if(!s->missing_at)s->missing_at=now; + s->holding=s->available && now-s->missing_at<1500; + if(s->holding)memcpy(out,s->last,sizeof(s->last)); + return s->holding; + } + if(s->holding){memcpy(s->from,s->last,sizeof(s->from));s->fading=true;s->fade_at=0;} + s->holding=false;s->missing_at=0; + /* Near-black codec rounding is valid darkness, not a lost measurement. */ + bool black=true;for(unsigned r=0;r<16;r++)for(unsigned c=0;c<3;c++)if(input[r][c]>3)black=false; + if(black)s->fading=false; + if(s->fading){if(!s->fade_at)s->fade_at=now;continuity_mix(s->from,input,(unsigned)(now-s->fade_at),out);if(now-s->fade_at>=500)s->fading=false;} + else memcpy(out,input,sizeof(s->last)); + memcpy(s->last,out,sizeof(s->last));s->available=true;s->valid_at=now;return true; +} +#endif diff --git a/native/handover.h b/native/handover.h index c9a1093..17abc0d 100644 --- a/native/handover.h +++ b/native/handover.h @@ -1,6 +1,9 @@ #ifndef HYPERDRM_HANDOVER_H #define HYPERDRM_HANDOVER_H #include "playback.h" +#ifndef CALIBRATION_ACTIVE +#define CALIBRATION_ACTIVE false +#endif #ifndef PICCAP_BINARY #define PICCAP_BINARY "/media/developer/apps/usr/palm/services/org.webosbrew.piccap.service/hyperion-webos" #endif @@ -107,11 +110,11 @@ static bool handover_tick(void){ error_free(&e);next_media_probe=now+1000; } if(protection==PLAYBACK_CLEAR && now-protection_at>=3000){protection=PLAYBACK_UNKNOWN;clear_samples=0;clear_since=0;if(!unknown_since)unknown_since=now;} - bool session=handover_enabled && target_piccap_compatible(&target) && piccap_installed() && !retries.paused && !retries.blocked; + bool session=!CALIBRATION_ACTIVE && handover_enabled && target_piccap_compatible(&target) && piccap_installed() && !retries.paused && !retries.blocked; bool clear=session && protection==PLAYBACK_CLEAR && now-protection_at<3000; bool stable=clear && clear_samples>=3 && now-clear_since>=CLEAR_STABLE_MS && now>=handover_cooldown; if(capture_source==SOURCE_HISTOGRAM && stable){ - piccap_target=target;piccap_error[0]=0;piccap_disconnected_since=now;stop_capture();retries.due=0;piccap_owned=true;capture_source=SOURCE_PICCAP_STARTING; + piccap_target=target;piccap_error[0]=0;piccap_disconnected_since=now;release_capture(false);retries.due=0;piccap_owned=true;capture_source=SOURCE_PICCAP_STARTING; if(!piccap_request(3)){capture_source=SOURCE_PICCAP_STOPPING;handover_cooldown=now+PICCAP_FAILURE_COOLDOWN_MS;} } bool grace=protection==PLAYBACK_UNKNOWN && unknown_since && now-unknown_since=0)close(stream.fd);free(stream.mapping);free(stream.data);free(stream.request);stream=(ReceiverStream){.fd=-1,.retry_at=now+5000};} +static bool stream_queue(const char *line){ + if(stream.fd<0 || stream.request)return false; + stream.request=strdup(line);if(!stream.request)return false;stream.length=strlen(line);stream.sent=0;return true; +} +static void stream_start(uint64_t now){ + stream.fd=target_open(&target);if(stream.fd<0){stream.retry_at=now+5000;return;} + stream.data=malloc(262145);if(!stream.data){stream_close(now);return;}stream.stage=1;stream.deadline=now+3000;stream.revision=calibration_revision();stream.layout_revision=RECEIVER_LAYOUT_REVISION; +} +static bool stream_colors(PlaybackJson *j,void *root,uint64_t now){ + void *body=playback_field(j,root,"result");if(!body)body=playback_field(j,root,"data"); + void *leds=playback_field(j,body,"leds"); + if(!leds || j->type(leds)!=5)return false; + if(j->length(leds)!=(size_t)stream.count*3){stream.revision=0;return false;} + uint64_t sums[16][3]={{0}},weights[16]={0}; + for(unsigned i=0;iat(leds,i*3+c);if(!v || j->type(v)!=3)return false;char *end;long n=strtol(j->string(v),&end,10);if(*end || n<0 || n>255)return false;values[c]=(unsigned)n;} + LedBlend b=stream.mapping[i];unsigned w[2]={65535-b.weight,b.weight},r[2]={b.a,b.b}; + for(unsigned k=0;k<2;k++){weights[r[k]]+=w[k];for(unsigned c=0;c<3;c++)sums[r[k]][c]+=(uint64_t)values[c]*w[k];} + } + unsigned char mean[3]={0};uint64_t total=0,all[3]={0}; + for(unsigned r=0;r<16;r++){total+=weights[r];for(unsigned c=0;c<3;c++)all[c]+=sums[r][c];} + if(!total)return false; + for(unsigned c=0;c<3;c++)mean[c]=(unsigned char)(all[c]/total); + for(unsigned r=0;r<16;r++)for(unsigned c=0;c<3;c++)stream.colors[r][c]=weights[r]?(unsigned char)(sums[r][c]/weights[r]):mean[c]; + stream.valid=true;stream.updated=now;stream.sequence++;return true; +} +static void stream_tick(PlaybackJson *j,uint64_t now,bool enabled){ + if(!enabled){if(stream.fd>=0)stream_close(now);return;} + if(stream.fd>=0 && (stream.revision!=calibration_revision() || stream.layout_revision!=RECEIVER_LAYOUT_REVISION)){stream_close(now);stream.retry_at=now;} + if(stream.fd<0){if(now>=stream.retry_at)stream_start(now);return;} + if(stream.stage<4 && now>=stream.deadline){stream_close(now);return;} + if(stream.stage==1){ + struct pollfd p={stream.fd,POLLOUT,0};int error=0;socklen_t size=sizeof(error);if(poll(&p,1,0)<=0)return; + if(getsockopt(stream.fd,SOL_SOCKET,SO_ERROR,&error,&size)!=0 || error){stream_close(now);return;} + char line[384];if(target.token[0]){snprintf(line,sizeof(line),"{\"command\":\"authorize\",\"subcommand\":\"login\",\"token\":\"%s\"}\n",target.token);stream.stage=2;} + else {snprintf(line,sizeof(line),"{\"command\":\"serverinfo\"}\n");stream.stage=3;} + if(!stream_queue(line)){stream_close(now);return;} + } + if(stream.request){ + ssize_t n=send(stream.fd,stream.request+stream.sent,stream.length-stream.sent,MSG_NOSIGNAL); + if(n<0 && (errno==EAGAIN || errno==EWOULDBLOCK || errno==EINTR))return; + if(n<=0){stream_close(now);return;}stream.sent+=(size_t)n; + if(stream.sent==stream.length){free(stream.request);stream.request=NULL;} + } + if(stream.used==262144){stream_close(now);return;} + size_t available=262144-stream.used;if(available>65536)available=65536; + ssize_t n=recv(stream.fd,stream.data+stream.used,available,0); + if(n<0 && (errno==EAGAIN || errno==EWOULDBLOCK || errno==EINTR))return; + if(n<=0){stream_close(now);return;}stream.used+=(size_t)n;stream.data[stream.used]=0; + for(unsigned messages=0;messages<8;messages++){ + char *end=strchr(stream.data,'\n');if(!end)break;*end=0;void *root=j->parse(stream.data); + if(stream.stage==2){if(!playback_true(j,root,"success")){if(root)j->put(root);stream_close(now);return;}stream.stage=3;stream_queue("{\"command\":\"serverinfo\"}\n");stream.deadline=now+3000;} + else if(stream.stage==3){ + LedBlend *mapping=NULL;unsigned count=0;if(!layout_from_json(stream.data,&mapping,&count)){if(root)j->put(root);stream_close(now);return;} + stream.mapping=mapping;stream.count=count;stream.stage=4;stream_queue("{\"command\":\"ledcolors\",\"subcommand\":\"ledstream-start\",\"interval\":100}\n"); + }else if(playback_is(j,root,"command","ledcolors-ledstream-update"))stream_colors(j,root,now); + if(root)j->put(root); + size_t consumed=(size_t)(end-stream.data)+1;memmove(stream.data,stream.data+consumed,stream.used-consumed);stream.used-=consumed;stream.data[stream.used]=0; + } +} +#endif diff --git a/native/service.c b/native/service.c index 243c7b8..eefee4e 100644 --- a/native/service.c +++ b/native/service.c @@ -27,6 +27,7 @@ #include "target.h" #include "spatial_image.h" #include "diagnostics.h" +#include "continuity.h" #define SERVICE "org.webosbrew.histogramhyperion.service" #define PRIORITY 149 typedef struct {int code;char *message;const char *file;int line;const char *func;void *padding;unsigned long magic;} LSError; @@ -60,6 +61,10 @@ static unsigned letterbox_mode,settling; static int pending_letterbox=-1; static uint64_t candidate_since,next_border_probe; static bool color_valid; +static Continuity continuity; +static uint64_t sample_at,calibration_until; +static unsigned sample_sequence; +#define CALIBRATION_ACTIVE (calibration_until>milliseconds()) static unsigned led_count; static LedBlend *led_blends; static bool interpolation_enabled; @@ -108,6 +113,12 @@ static int send_line(const char *line){ while(left){ssize_t n=send(output,p,left,MSG_NOSIGNAL);if(n<=0)return -1;p+=n;left-=n;} return 0; } +static bool receiver_ack(void){ + char answer[4096];size_t used=0;bool complete=false; + while(used+1=0){if(target_login())send_line("{\"command\":\"clear\",\"priority\":149}\n");close(output);output=-1;} + } + return respond(h,m,"{\"returnValue\":true,\"running\":false}"); +} static bool autostart(void *h,void *m,void *ctx){ (void)ctx;const char *p=m?payload(m):NULL;bool enabled; if(p && strcmp(p,"{\"enabled\":true}")==0)enabled=true; else if(p && strcmp(p,"{\"enabled\":false}")==0)enabled=false; else return respond(h,m,"{\"returnValue\":false,\"errorText\":\"Expected enabled boolean\"}"); - if(geteuid()!=0 || !set_boot(enabled))return respond(h,m,"{\"returnValue\":false,\"errorText\":\"Autostart could not be saved. Check own service root elevation and boot hook.\"}"); + if(geteuid()!=0)return respond(h,m,"{\"returnValue\":false,\"rootRequired\":true,\"errorText\":\"Root access is required to change autostart. Select Enable Root Access in Overview.\"}"); + if(!set_boot(enabled))return respond(h,m,"{\"returnValue\":false,\"errorText\":\"Cannot update the HyperDRM boot hook. Check the installed boot script and whether another file occupies the hook path.\"}"); if(enabled)retry_reset(&retries); retry_update(&retries,enabled,capture!=NULL,milliseconds()); return respond(h,m,enabled?"{\"returnValue\":true,\"autostart\":true}":"{\"returnValue\":true,\"autostart\":false}"); } +static bool restart_service(void *h,void *m,void *ctx){ + (void)ctx;if(strcmp(payload(m),"{}"))return respond(h,m,"{\"returnValue\":false,\"errorText\":\"Restart expects an empty object\"}"); + bool ok=respond(h,m,"{\"returnValue\":true,\"restarting\":true}");quitting=1;return ok; +} static bool handover(void *h,void *m,void *ctx){ (void)ctx;const char *p=payload(m);bool enabled; if(strcmp(p,"{\"enabled\":true}")==0)enabled=true; @@ -219,7 +272,7 @@ static bool settings(void *h,void *m,void *ctx){ if(!playback_json.lib || !target_parse(&playback_json,payload(m),&next))return respond(h,m,"{\"returnValue\":false,\"errorText\":\"Enter a valid IPv4/IPv6 address, integer port (1-65535), receiver and optional API token\"}"); if(!target_save(TARGET_PREF,&next))return respond(h,m,"{\"returnValue\":false,\"errorText\":\"Could not save receiver settings\"}"); bool active=capture || piccap_owned || retries.due; - stop_capture();test_close();connection_test.stage=TEST_IDLE;target=next;last_error[0]=0;protection=PLAYBACK_UNKNOWN;clear_samples=0;clear_since=unknown_since=0; + stop_capture();stream_close(milliseconds());bridge_phase=0;memset(&continuity,0,sizeof(continuity));test_close();connection_test.stage=TEST_IDLE;target=next;last_error[0]=0;protection=PLAYBACK_UNKNOWN;clear_samples=0;clear_since=unknown_since=0; if(active && !retries.paused && !retries.blocked)retries.due=milliseconds(); return respond(h,m,"{\"returnValue\":true}"); } @@ -230,15 +283,21 @@ static bool test_connection(void *h,void *m,void *ctx){ return respond(h,m,"{\"returnValue\":true,\"testing\":true}"); } static bool status(void *h,void *m,void *ctx){ - (void)ctx;char json[4096],safe[512],endpoint[80];size_t n=0; + (void)ctx;char json[8192],safe[512],endpoint[80];size_t n=0; snprintf(endpoint,sizeof(endpoint),strchr(target.host,':')?"[%s]:%u":"%s:%u",target.host,target.port); for(size_t i=0;last_error[i] && n+2=32)safe[n++]=c;}safe[n]=0; uint64_t now=milliseconds(); + char report[512];size_t k=0;for(size_t i=0;calibration_message[i] && k+2=32)report[k++]=c;}report[k]=0; int used=snprintf(json,sizeof(json),"{\"calibrationProfile\":\"%s\",\"effectiveCalibration\":\"%s\",\"tvModel\":\"%s\",\"customModel\":\"%s\",\"customPoints\":[",calibration_key(calibration.kind),calibration_key(calibration_effective()),tv_model,calibration.model); for(unsigned i=0;inow?handover_cooldown-now:0)); + used+=snprintf(json+used,sizeof(json)-used,"\"calibrationMessage\":\"%s\",",report); + used+=snprintf(json+used,sizeof(json)-used,"\"calibrationDraft\":{\"model\":\"%s\",\"points\":[",calibration_draft.model); + for(unsigned i=0;inow?retries.due-now:0),capture_source==SOURCE_PICCAP_STARTING?"Starting PicCap":capture_source==SOURCE_PICCAP_STOPPING?"Stopping PicCap":piccap_owned?"PicCap":capture?"Histogram":"Stopped",piccap_error); - used+=snprintf(json+used,sizeof(json)-used,"\"version\":\"0.10.0\",\"running\":%s,\"colorValid\":%s,\"frames\":%lu,\"captureRecoveries\":%u,\"lastRecoveryMs\":%llu,\"endpoint\":\"%s\",\"host\":\"%s\",\"port\":%u,\"receiver\":\"%s\",\"tokenSet\":%s,\"piccapTargetCompatible\":%s,\"priority\":%d,\"uid\":%u,\"drmVerified\":false,\"mappingVerified\":false,\"outputColor\":[%u,%u,%u],\"error\":\"%s\",\"regions\":[",(capture||capture_source==SOURCE_PICCAP)?"true":"false",color_valid?"true":"false",frames,capture_recoveries,(unsigned long long)last_recovery_ms,endpoint,target.host,target.port,target.receiver,target.token[0]?"true":"false",target_piccap_compatible(&target)?"true":"false",PRIORITY,(unsigned)geteuid(),sent_rgb[0],sent_rgb[1],sent_rgb[2],safe); + used+=snprintf(json+used,sizeof(json)-used,"\"version\":\"0.11.0\",\"running\":%s,\"colorValid\":%s,\"frames\":%lu,\"captureRecoveries\":%u,\"lastRecoveryMs\":%llu,\"endpoint\":\"%s\",\"host\":\"%s\",\"port\":%u,\"receiver\":\"%s\",\"tokenSet\":%s,\"piccapTargetCompatible\":%s,\"priority\":%d,\"uid\":%u,\"drmVerified\":false,\"mappingVerified\":false,\"outputColor\":[%u,%u,%u],\"error\":\"%s\",\"regions\":[",(capture||capture_source==SOURCE_PICCAP)?"true":"false",color_valid?"true":"false",frames,capture_recoveries,(unsigned long long)last_recovery_ms,endpoint,target.host,target.port,target.receiver,target.token[0]?"true":"false",target_piccap_compatible(&target)?"true":"false",PRIORITY,(unsigned)geteuid(),sent_rgb[0],sent_rgb[1],sent_rgb[2],safe); for(int i=0;i<16;i++)used+=snprintf(json+used,sizeof(json)-used,"%s[%u,%u,%u]",i?",":"",rgb[i][0],rgb[i][1],rgb[i][2]); used+=snprintf(json+used,sizeof(json)-used,"],\"ledCount\":%u,\"spatialOutput\":%s,\"blackPercent\":[",led_count,led_count?"true":"false"); for(int i=0;i<16;i++)used+=snprintf(json+used,sizeof(json)-used,"%s%u",i?",":"",black_percent[i]); @@ -248,7 +307,9 @@ static int tick(void *unused){ (void)unused; uint64_t now=milliseconds(); model_tick(now);test_tick(&playback_json,now);layout_refresh_tick(&playback_json,now,capture || capture_source==SOURCE_PICCAP); - if(handover_tick())return 1; + stream_tick(&playback_json,now,handover_enabled && !retries.paused && !retries.blocked); + bool owned=handover_tick();bridge_tick(now); + if(owned)return 1; if(!capture){ retry_update(&retries,boot_enabled() && geteuid()==0,false,milliseconds()); if(retry_take(&retries,milliseconds())){ @@ -259,12 +320,22 @@ static int tick(void *unused){ } if(revoked){set_error("LG revoked capture; recovering after source transition");capture_recoveries++;recovery_started=milliseconds();release_capture(false);retry_source_transition(&retries,milliseconds());return 1;} if(settling){settling--;return 1;} - if(letterbox_mode && capture_preset==1 && milliseconds()>=next_border_probe){ + if(!CALIBRATION_ACTIVE && letterbox_mode && capture_preset==1 && milliseconds()>=next_border_probe){ if(vt_preset(capture,0)!=0){set_error("Border probe preset failed");stop_capture();return 1;} capture_preset=0;settling=2;return 1; } Histogram hist[16]={0};int rc=vt_get(capture,hist); - if(rc){set_error("LG histogram read failed; streaming stopped");stop_capture();return 1;} + bool populated=!rc && histogram_populated(hist); + if(!populated){ + unsigned char held[16][3]; + color_valid=false; + if(!continuity_frame(&continuity,false,rgb,now,held)){set_error("Histogram data unavailable beyond hold window; recovering capture");release_capture(false);retry_source_transition(&retries,now);return 1;} + char *line=region_command(held,led_blends,led_count,(unsigned)(1500-(now-continuity.missing_at))); + if(!line || send_line(line)){free(line);set_error("Receiver connection lost while holding colors");stop_capture();return 1;}free(line); + if(!receiver_ack()){set_error("Receiver did not acknowledge held colors");stop_capture();return 1;} + last_output_at=now;return 1; + } + sample_at=now;sample_sequence++; unsigned aggregate[3]={0}; for(int i=0;i<16;i++){ black_percent[i]=100; @@ -278,7 +349,7 @@ static int tick(void *unused){ for(int i=0;i<16;i++)for(int c=0;c<3;c++){ rgb[i][c]=histogram_mean(hist[i].bins[c]);aggregate[c]+=rgb[i][c]; } - if(capture_preset==0){ + if(!CALIBRATION_ACTIVE && capture_preset==0){ int candidate=letterbox_candidate(black_percent,rgb);uint64_t now=milliseconds(); if(candidate<0)pending_letterbox=-1; else if(candidate!=pending_letterbox){pending_letterbox=candidate;candidate_since=now;} @@ -290,26 +361,15 @@ static int tick(void *unused){ } for(int c=0;c<3;c++)sent_rgb[c]=(unsigned char)(aggregate[c]/16); unsigned char boosted_mean[3];boost_color(sent_rgb,boosted_mean);memcpy(sent_rgb,boosted_mean,3); - unsigned char mapped_rgb[16][3];calibration_colors(rgb,mapped_rgb); + unsigned char mapped_rgb[16][3],stable_rgb[16][3];calibration_colors(rgb,mapped_rgb); + continuity_frame(&continuity,true,mapped_rgb,now,stable_rgb); interpolation_enabled=led_count && calibration_effective()!=CAL_AVERAGE; - bool image_output=strcmp(target.receiver,"HyperHDR")==0; - size_t capacity=256+(size_t)led_count*12;char *line=image_output?spatial_image_command(mapped_rgb,PRIORITY):malloc(capacity); + char *line=region_command(stable_rgb,led_blends,led_count,1500); if(!line){set_error("Color buffer allocation failed");stop_capture();return 1;} - if(!image_output){ - size_t written=(size_t)snprintf(line,capacity,"{\"command\":\"color\",\"priority\":%d,\"duration\":1500,\"origin\":\"HyperDRM\",\"color\":[",PRIORITY); - for(unsigned i=0;i=3000){if(bridge_clear())bridge_phase=0;return;} + if(bridge_phase==1 && capture_source==SOURCE_PICCAP && piccap_connected && stream.stage==4){ + if(bridge_clear()){bridge_sequence=stream.sequence;bridge_clear_at=now;bridge_phase=2;} + }else if(bridge_phase==1 && now-bridge_last_sent>=100 && stream.stage==4){ + if(bridge_send(bridge_from))bridge_last_sent=now; + }else if(bridge_phase==2 && stream.valid && stream.sequence>bridge_sequence && stream.updated>=bridge_clear_at+150){ + memcpy(bridge_to,stream.colors,sizeof(bridge_to));bridge_fade_at=now;bridge_phase=3; + bool black=true;for(unsigned r=0;r<16;r++)for(unsigned c=0;c<3;c++)if(bridge_to[r][c]>3)black=false; + if(black)bridge_phase=0; + } + if(bridge_phase==3 && now-bridge_last_sent>=100){ + if(now-bridge_fade_at>=500){if(bridge_clear())bridge_phase=0;} + else {unsigned char colors[16][3];continuity_mix(bridge_from,bridge_to,(unsigned)(now-bridge_fade_at),colors);if(bridge_send(colors))bridge_last_sent=now;} + } +} +#endif diff --git a/native/spatial_image.h b/native/spatial_image.h index 2ee378c..d7cae1a 100644 --- a/native/spatial_image.h +++ b/native/spatial_image.h @@ -9,7 +9,7 @@ enum {SPATIAL_WIDTH=160,SPATIAL_HEIGHT=90,SPATIAL_PIXELS=SPATIAL_WIDTH*SPATIAL_H /* Synthetic color plane from histogram samples, never captured video pixels. * HyperHDR 22 treats JSON color as a solid color; image input retains space. * The receiver samples this plane using its configured LED rectangles. */ -static char *spatial_image_command(const unsigned char regions[16][3],unsigned priority){ +static char *spatial_image_command_duration(const unsigned char regions[16][3],unsigned priority,unsigned duration){ static LedBlend blends[SPATIAL_PIXELS];static unsigned generation; if(generation!=calibration_generation){ for(unsigned y=0;y>2];line[used++]=alphabet[((color[0]&3)<<4)|(color[1]>>4)]; @@ -26,4 +26,5 @@ static char *spatial_image_command(const unsigned char regions[16][3],unsigned p } line[used++]='"';line[used++]='}';line[used++]='\n';line[used]=0;return line; } +static inline char *spatial_image_command(const unsigned char regions[16][3],unsigned priority){return spatial_image_command_duration(regions,priority,1500);} #endif diff --git a/native/test_continuity.c b/native/test_continuity.c new file mode 100644 index 0000000..2159599 --- /dev/null +++ b/native/test_continuity.c @@ -0,0 +1,27 @@ +#include +#include +#include +#include +#include +#include "histogram.h" +#include "continuity.h" +int main(void){ + Histogram hist[16]={0};assert(!histogram_populated(hist)); + for(unsigned r=0;r<16;r++)for(unsigned c=0;c<3;c++)hist[r].bins[c][0]=100; + assert(histogram_populated(hist));hist[4].bins[2][0]=0;assert(!histogram_populated(hist)); + Continuity s={0};unsigned char red[16][3]={{0}},blue[16][3]={{0}},black[16][3]={{0}},out[16][3]; + for(unsigned r=0;r<16;r++){red[r][0]=200;blue[r][2]=200;} + assert(!continuity_frame(&s,false,red,1000,out)); + assert(continuity_frame(&s,true,red,1100,out));assert(!memcmp(out,red,sizeof(out))); + assert(continuity_frame(&s,false,black,1200,out));assert(!memcmp(out,red,sizeof(out))); + assert(continuity_frame(&s,false,black,2699,out));assert(!continuity_frame(&s,false,black,2700,out)); + assert(continuity_frame(&s,true,blue,2800,out)); + continuity_seed(&s,red,3000);continuity_frame(&s,true,blue,3100,out);assert(out[0][0]==200 && out[0][2]==0); + continuity_frame(&s,true,blue,3350,out);assert(out[0][0]==100 && out[0][2]==100); + continuity_frame(&s,true,blue,3600,out);assert(out[0][0]==0 && out[0][2]==200 && !s.fading); + continuity_seed(&s,red,4000);continuity_frame(&s,true,black,4100,out);assert(!memcmp(out,black,sizeof(out)) && !s.fading); + continuity_frame(&s,false,red,4200,out);assert(!memcmp(out,black,sizeof(out))); + for(unsigned r=0;r<16;r++)for(unsigned c=0;c<3;c++)black[r][c]=2; + continuity_seed(&s,red,4300);continuity_frame(&s,true,black,4400,out);assert(out[0][0]==2 && out[0][1]==2 && !s.fading); + puts("PASS: empty data versus populated black, bounded hold, recovery fade, immediate real black");return 0; +} diff --git a/native/test_handover.c b/native/test_handover.c index 3d4ec0d..46e34dd 100644 --- a/native/test_handover.c +++ b/native/test_handover.c @@ -12,7 +12,7 @@ static uint64_t clock_ms=10000; static unsigned stopped,called,canceled; static char last_uri[128],last_data[256]; static uint64_t milliseconds(void){return clock_ms;} -static void stop_capture(void){stopped++;} +static void release_capture(bool clear){(void)clear;stopped++;} static const char *payload(void *m){return m;} static void error_init(LSError *e){(void)e;} static void error_free(LSError *e){(void)e;} diff --git a/native/test_receiver_stream.c b/native/test_receiver_stream.c new file mode 100644 index 0000000..f0343ff --- /dev/null +++ b/native/test_receiver_stream.c @@ -0,0 +1,39 @@ +#define _DEFAULT_SOURCE +#include +#include +#include +#include "target.h" +#include "layout.h" +#include "receiver_stream.h" +static void fixture(PlaybackJson *json,bool modern,bool login){ + int server=socket(AF_INET,SOCK_STREAM,0);assert(server>=0); + struct sockaddr_in address={.sin_family=AF_INET,.sin_addr={htonl(INADDR_LOOPBACK)}}; + assert(!bind(server,(void*)&address,sizeof(address)) && !listen(server,1));socklen_t size=sizeof(address);assert(!getsockname(server,(void*)&address,&size)); + target.port=ntohs(address.sin_port);snprintf(target.token,sizeof(target.token),"%s",login?"fixture-token":""); + pid_t child=fork();assert(child>=0); + if(!child){ + int fd=accept(server,NULL,NULL);if(fd<0)_exit(1);FILE *input=fdopen(dup(fd),"r");char request[512]; + if(login){if(!fgets(request,sizeof(request),input) || !strstr(request,"authorize"))_exit(2);write(fd,"{\"success\":true}\n",17);} + if(!fgets(request,sizeof(request),input) || !strstr(request,"serverinfo"))_exit(3); + const char *layout="{\"success\":true,\"info\":{\"leds\":[{\"hmin\":0,\"hmax\":1,\"vmin\":0,\"vmax\":0.1}]}}\n";write(fd,layout,strlen(layout)); + if(!fgets(request,sizeof(request),input) || !strstr(request,"ledstream-start"))_exit(4); + const char *reply=modern?"{\"success\":true,\"command\":\"ledcolors-ledstream-update\",\"data\":{\"leds\":[20,30,40]}}\n":"{\"success\":true,\"command\":\"ledcolors-ledstream-update\",\"result\":{\"leds\":[20,30,40]}}\n"; + write(fd,reply,13);usleep(20000);write(fd,reply+13,strlen(reply)-13);usleep(500000);close(fd);fclose(input);close(server);_exit(0); + } + stream_close(0);stream.retry_at=0; + for(unsigned i=0;i<500 && !stream.valid;i++){stream_tick(json,1000+i*5,true);usleep(1000);} + assert(stream.valid && stream.sequence==1 && stream.count==1); + for(unsigned r=0;r<16;r++){assert(stream.colors[r][0]==20 && stream.colors[r][1]==30 && stream.colors[r][2]==40);} + void *bad=json->parse("{\"result\":{\"leds\":[0,0,999]}}");assert(!stream_colors(json,bad,2000));json->put(bad);assert(stream.colors[0][2]==40); + bad=json->parse("{\"data\":{\"leds\":[0,0,0]}}");assert(stream_colors(json,bad,2000));json->put(bad);assert(stream.colors[0][2]==0); + bad=json->parse("{\"data\":{\"leds\":[1,2,3,4,5,6]}}");assert(!stream_colors(json,bad,2000) && !stream.revision);json->put(bad); + stream_tick(json,2001,false);assert(stream.fd<0 && !stream.valid);int status;waitpid(child,&status,0);assert(WIFEXITED(status) && !WEXITSTATUS(status));close(server); +} +int main(void){ + PlaybackJson json={0};assert(playback_json_init(&json));fixture(&json,false,false);fixture(&json,true,true); + stream_start(1000);stream_tick(&json,5000,true);assert(stream.fd<0);stream_close(0); + TargetConfig copy=target;assert(target_valid(©));assert(target_piccap_compatible(©));assert(!target_piccap_local(©));assert(target_piccap_host(©)); + assert(!target_parse(&json,"{}",©));assert(!target_save("/no/such/profile",©));assert(!target_load(&json,"/no/such/profile",©)); + int fd=target_connect(©);if(fd>=0)close(fd); + dlclose(json.lib);puts("PASS: fragmented raw LED subscription, token login, old/new envelopes, invalid samples, real black, timeout and cleanup");return 0; +} diff --git a/native/test_source_bridge.c b/native/test_source_bridge.c new file mode 100644 index 0000000..a506aac --- /dev/null +++ b/native/test_source_bridge.c @@ -0,0 +1,43 @@ +#include +#include +#include +#include +#include +#include +#include "histogram.h" +#include "continuity.h" +#include "interpolation.h" +#define PRIORITY 149 +typedef struct {unsigned char a,b;unsigned weight;} LedBlend; +typedef enum {SOURCE_HISTOGRAM,SOURCE_PICCAP_STARTING,SOURCE_PICCAP,SOURCE_PICCAP_STOPPING} CaptureSource; +static CaptureSource capture_source; +static struct {bool paused,blocked;} retries; +static struct {char receiver[16];} target={"Hyperion"}; +static struct {int stage;bool valid;uint64_t updated;unsigned sequence,count;LedBlend *mapping;unsigned char colors[16][3];} stream; +static Continuity continuity; +static bool piccap_connected; +static char *queued; +static bool stream_queue(const char *line){if(queued)return false;queued=strdup(line);return queued!=NULL;} +static char *spatial_image_command_duration(const unsigned char colors[16][3],unsigned priority,unsigned duration){(void)colors;(void)priority;(void)duration;return strdup("image");} +#include "source_bridge.h" +static void consume(void){free(queued);queued=NULL;} +int main(void){ + LedBlend mapping={0,0,0};stream.mapping=&mapping;stream.count=1;stream.stage=4; + for(unsigned r=0;r<16;r++){continuity.last[r][0]=200;stream.colors[r][2]=200;}continuity.available=true;continuity.valid_at=1000; + capture_source=SOURCE_PICCAP_STARTING;bridge_tick(1000);assert(bridge_phase==1 && strstr(queued,"200,0,0"));consume(); + capture_source=SOURCE_PICCAP;piccap_connected=true;bridge_tick(1200);assert(bridge_phase==2 && strstr(queued,"clear"));consume(); + stream.valid=true;stream.sequence=1;stream.updated=1300;bridge_tick(1300);assert(bridge_phase==2); + stream.sequence=2;stream.updated=1400;bridge_tick(1400);assert(bridge_phase==3 && strstr(queued,"200,0,0"));consume(); + bridge_tick(1650);assert(strstr(queued,"100,0,100"));consume(); + bridge_tick(1900);assert(!bridge_phase && strstr(queued,"clear"));consume(); + capture_source=SOURCE_PICCAP_STOPPING;stream.updated=2000;bridge_tick(2000);assert(continuity.fading && continuity.last[0][2]==200 && strstr(queued,"0,0,200"));consume(); + capture_source=SOURCE_HISTOGRAM;bridge_tick(2100);assert(!queued); + capture_source=SOURCE_PICCAP_STARTING;continuity.valid_at=3000;bridge_tick(3000);consume();bridge_tick(6000);assert(!bridge_phase && strstr(queued,"clear"));consume(); + capture_source=SOURCE_PICCAP_STARTING;bridge_source=SOURCE_HISTOGRAM;continuity.valid_at=7000;bridge_tick(7000);consume();retries.paused=true;bridge_tick(7100);assert(!bridge_phase && strstr(queued,"clear"));consume(); + retries.paused=false;bridge_source=SOURCE_HISTOGRAM;continuity.valid_at=8000;capture_source=SOURCE_PICCAP_STARTING;bridge_tick(8000);consume(); + capture_source=SOURCE_PICCAP;bridge_tick(8100);consume();stream.sequence++;stream.updated=8300;memset(stream.colors,0,sizeof(stream.colors));bridge_tick(8300);assert(!bridge_phase && !queued); + bridge_source=SOURCE_HISTOGRAM;capture_source=SOURCE_PICCAP_STARTING;continuity.valid_at=1000;bridge_tick(9000);assert(!bridge_phase && !queued); + stream.stage=1;bridge_phase=1;bridge_started=9000;bridge_tick(12000);assert(!queued);retries.paused=true;bridge_tick(12100);assert(!bridge_phase && !queued); + strcpy(target.receiver,"HyperHDR");char *line=region_command(stream.colors,&mapping,1,500);assert(!strcmp(line,"image"));free(line);assert(!region_command(stream.colors,NULL,0,500)); + puts("PASS: both source transitions, fresh sample gate, fade midpoint/end, bounded timeout, manual-stop cleanup");return 0; +} diff --git a/package/packageinfo.json b/package/packageinfo.json index 76537ff..9294b78 100644 --- a/package/packageinfo.json +++ b/package/packageinfo.json @@ -1 +1 @@ -{"id": "org.webosbrew.histogramhyperion", "version": "0.10.0", "vendor": "Local development", "app": "org.webosbrew.histogramhyperion", "services": ["org.webosbrew.histogramhyperion.service"], "sourceUrl": "https://gitea.adnau.de/matze19999/HyperDRM"} +{"id": "org.webosbrew.histogramhyperion", "version": "0.11.0", "vendor": "Local development", "app": "org.webosbrew.histogramhyperion", "services": ["org.webosbrew.histogramhyperion.service"], "sourceUrl": "https://gitea.adnau.de/matze19999/HyperDRM"} diff --git a/profiles/README.md b/profiles/README.md index 335bd44..368df6c 100644 --- a/profiles/README.md +++ b/profiles/README.md @@ -33,3 +33,13 @@ SoC or firmware; document that test context with contributed profiles. Profiles only control spatial region assignment. Saturation, brightness and smoothing remain receiver settings. Runtime selection invalidates the generated HyperHDR geometry and refreshes the Hyperion LED mapping without capture restart. + +## Guided measurement + +The app's auto calibration uses an actual local video plane, not UI overlays. +It collects a black reference and fresh samples from 32 perimeter patches, +rejects global responses, and derives sorted positions from each region's local +response peak. A candidate must cover all four edges. The resulting JSON is a +proposal until Save profile is selected. Use Validate profile after saving and +check all four color quadrants before contributing the profile. Cancellation and +failed measurement preserve the saved profile. diff --git a/service/histogram-service b/service/histogram-service index e2ede4eeda37668165e782c37e8ad60ca54afff0..02c027d34b175418f730351da9fb5f29da6c57a3 100644 GIT binary patch literal 81868 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 W=D0{ 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 diff --git a/tests/calibration.test.js b/tests/calibration.test.js new file mode 100644 index 0000000..8e52903 --- /dev/null +++ b/tests/calibration.test.js @@ -0,0 +1,19 @@ +'use strict'; +const assert=require('assert'),fs=require('fs'),vm=require('vm'); +const c={};vm.createContext(c);vm.runInContext(fs.readFileSync('app/calibration.js','utf8'),c); +const baseline=Array(16).fill(10); +const patches=Array.from({length:32},(_,i)=>Array.from({length:16},(_,r)=>{ + const center=r*2+.5,distance=Math.min(Math.abs(i-center),32-Math.abs(i-center)); + return 10+80*Math.max(0,1-distance/2); +})); +const fit=c.calibrationFit(baseline,patches,'OTHER-TV');assert.equal(fit.points.length,16); +fit.points.forEach((p,i)=>{assert.equal(p.region,i);assert(Math.abs(p.position-(i*2+1)/8)<.05);}); +assert.throws(()=>c.calibrationFit(baseline,Array.from({length:32},()=>Array(16).fill(90)),'OTHER-TV'),/reliable spatial/); +assert.throws(()=>c.calibrationFit(baseline,Array.from({length:32},()=>baseline),'OTHER-TV'),/reliable spatial/); +assert.throws(()=>c.calibrationFit(baseline,patches.slice(1),'OTHER-TV'),/Incomplete/); +assert.throws(()=>c.calibrationAverage([baseline,baseline]),/fresh/); +const nested=patches.map(p=>p.map((v,r)=>r===15?p[0]:v)); +const reduced=c.calibrationFit(baseline,nested,'NESTED-TV');assert.equal(reduced.points.length,15);assert(!reduced.points.some(p=>p.region===15)); +const duplicate=patches.map(p=>Array(16).fill(p[0]));assert.throws(()=>c.calibrationFit(baseline,duplicate,'DUPLICATE-TV'),/reliable spatial/); +assert.deepEqual(Array.from(c.calibrationAverage([baseline,baseline,baseline])),baseline); +console.log('PASS: measured edge positions, global/absent response rejection and fresh sample minimum'); diff --git a/tests/form-navigation.test.js b/tests/form-navigation.test.js new file mode 100644 index 0000000..0dc0ef3 --- /dev/null +++ b/tests/form-navigation.test.js @@ -0,0 +1,24 @@ +'use strict'; +const assert=require('assert'),fs=require('fs'),vm=require('vm'); +const events={},windowEvents={},elements={};let inputFocuses=0; +const doc={activeElement:null,getElementById(id){return elements[id];},addEventListener(k,f){(events[k]||(events[k]=[])).push(f);}}; +function element(id,input){return {id,tagName:input?'INPUT':'DIV',type:'text',readOnly:true,disabled:false,style:{},attributes:{},handlers:{}, + addEventListener(k,f){this.handlers[k]=f;},setAttribute(k,v){this.attributes[k]=v;}, + focus(){if(doc.activeElement && doc.activeElement!==this)doc.activeElement.blur();doc.activeElement=this;if(input)inputFocuses++;}, + blur(){if(this.handlers.blur)this.handlers.blur();if(doc.activeElement===this)doc.activeElement=null;} +};} +['host','port','piccapPort','token','customProfile'].forEach(id=>{elements[id]=element(id,true);elements[id+'Field']=element(id+'Field',false);}); +['overview','receiver','calibration'].forEach(key=>{elements[key+'Panel']=element(key+'Panel');elements[key+'Tab']=element(key+'Tab');}); +['start','receiver','calibrate','calibrationShortcut'].forEach(id=>elements[id]=element(id)); +const win={addEventListener(k,f){windowEvents[k]=f;}}; +const c={document:doc,window:win};vm.createContext(c);vm.runInContext(fs.readFileSync('app/navigation.js','utf8'),c); +elements.receiverTab.onclick();assert.equal(elements.receiverPanel.style.display,'block');assert.equal(elements.overviewPanel.style.display,'none');assert.equal(doc.activeElement.id,'receiver'); +elements.hostField.focus();assert.equal(inputFocuses,0);assert(elements.host.readOnly); +elements.hostField.onclick();assert.equal(inputFocuses,1);assert(!elements.host.readOnly);assert.equal(doc.activeElement.id,'host'); +events.keyboardStateChange[0]({detail:{visibility:false}});assert(elements.host.readOnly);assert.equal(doc.activeElement.id,'hostField'); +elements.portField.focus();assert.equal(inputFocuses,1);elements.portField.onclick();assert.equal(inputFocuses,2); +let prevented=false;events.keydown[0]({keyCode:461,preventDefault(){prevented=true;}});assert(prevented && elements.port.readOnly && doc.activeElement.id==='portField'); +elements.token.disabled=true;elements.tokenField.onclick();assert.equal(inputFocuses,2); +elements.calibrationShortcut.onclick();assert.equal(doc.activeElement.id,'calibrate');assert.equal(elements.calibrationPanel.style.display,'block');assert.equal(elements.receiverPanel.style.display,'none'); +elements.customProfileField.onclick();assert.equal(inputFocuses,3);elements.start.focus();assert(elements.customProfile.readOnly); +console.log('PASS: three sections, calibration shortcut, highlight without input focus, explicit editing, keyboard close/Back and disabled input'); diff --git a/tests/receiver-ui.test.js b/tests/receiver-ui.test.js index 57a7e31..71936d7 100644 --- a/tests/receiver-ui.test.js +++ b/tests/receiver-ui.test.js @@ -1,6 +1,6 @@ 'use strict'; const assert=require('assert'),fs=require('fs'),vm=require('vm'); -const ids=['host','port','piccapPort','receiver','token','clearToken','endpoint','handover','autostart','error','status','regions','start','stop','refresh','saveTarget','testConnection','testResult','diagnostics','profile','customEditor','customProfile','saveProfile','profileStatus']; +const ids=['host','port','piccapPort','receiver','token','clearToken','endpoint','handover','autostart','error','status','regions','start','stop','refresh','saveTarget','testConnection','testResult','diagnostics','profile','customEditor','customProfile','saveProfile','profileStatus','calibrate','validateCalibration','cancelCalibration','editProfile','customProfileField','overviewTab','receiverTab','calibrationTab','calibrationShortcut','hostField','portField','piccapPortField','tokenField','grantRoot','rootHint']; const elements={}; ids.forEach(id=>elements[id]={value:'',textContent:'',disabled:false,checked:false,attributes:{},style:{},addEventListener(){},focus(){},appendChild(){},setAttribute(k,v){this.attributes[k]=v;},getAttribute(k){return this.attributes[k];}}); const requests=[]; @@ -14,7 +14,7 @@ const context={PalmServiceBridge:Bridge,document:{getElementById:id=>elements[id vm.runInNewContext(fs.readFileSync('app/app.js','utf8'),context); assert(elements.testResult.textContent.includes('120 LEDs')); assert(elements.diagnostics.textContent.includes('Root service')); -assert(controls.includes(elements.piccapPort)&&controls.includes(elements.testConnection)); +assert(controls.includes(elements.piccapPortField)&&controls.includes(elements.testConnection)); context.targetDirty=true;elements.testConnection.onclick();assert(elements.error.textContent.includes('Save receiver')); elements.piccapPort.value='0';elements.saveTarget.onclick();assert(elements.error.textContent.includes('FlatBuffer port')); elements.piccapPort.value='19446';elements.host.value='10.1.0.100';elements.token.value='';elements.saveTarget.onclick(); diff --git a/tests/remote-navigation.test.js b/tests/remote-navigation.test.js index 1cc26b0..a051aa3 100644 --- a/tests/remote-navigation.test.js +++ b/tests/remote-navigation.test.js @@ -29,11 +29,11 @@ buttons[4].disabled=false;buttons[3].focus();key(39);assert.equal(doc.activeElem key(39);assert.equal(doc.activeElement.id,'start');key(37);assert.equal(doc.activeElement.id,'handover'); buttons[2].tagName='INPUT';buttons[2].type='text';buttons[2].focus(); assert(!key(37));assert(!key(39));assert(!key(13));assert.equal(doc.activeElement.id,'refresh'); -key(40);assert.equal(doc.activeElement.id,'autostart');key(38);assert.equal(doc.activeElement.id,'refresh'); +assert(!key(40));assert(!key(38));assert.equal(doc.activeElement.id,'refresh'); buttons[2].tagName='TEXTAREA';buttons[2].focus(); assert(!key(37));assert(!key(39));assert(!key(13)); -key(40);assert.equal(doc.activeElement.id,'autostart'); -key(38);assert.equal(doc.activeElement.id,'refresh'); +assert(!key(40));assert(!key(38));assert.equal(doc.activeElement.id,'refresh'); +buttons[2].readOnly=true;assert(key(40));assert.equal(doc.activeElement.id,'autostart'); buttons[2].tagName='BUTTON'; buttons.forEach(button=>button.disabled=true);assert(key(39)); console.log('PASS: arrow navigation, wraparound, disabled controls, OK once per press, pointer handoff, focus recovery, Back preserved'); diff --git a/tests/root-repair.test.js b/tests/root-repair.test.js new file mode 100644 index 0000000..6ae5464 --- /dev/null +++ b/tests/root-repair.test.js @@ -0,0 +1,27 @@ +'use strict'; +const assert=require('assert'),fs=require('fs'),vm=require('vm'); +const elements={},requests=[],timers=new Map();let next=0,uid=1000,enabled=false,deny=false,delayRoot=false,pendingRoot=null; +for(const match of fs.readFileSync('app/index.html','utf8').matchAll(/id="([^"]+)"/g))elements[match[1]]={style:{},value:'',textContent:'',attributes:{},disabled:false,addEventListener(){},focus(){},appendChild(){},setAttribute(k,v){this.attributes[k]=v;},getAttribute(k){return this.attributes[k];}}; +class Bridge { + call(uri,raw){ + const data=JSON.parse(raw);requests.push({uri,data});let r={returnValue:true}; + if(uri.endsWith('/status'))r={returnValue:true,uid,autostart:enabled,piccapInstalled:true,connectionTest:{state:'Not tested'},calibrationProfile:'auto',effectiveCalibration:'g4',customPoints:[],tvModel:'OLED65G42LW.DEUQLJP'}; + if(uri.endsWith('/autostart')){if(uid)r={returnValue:false,rootRequired:true};else enabled=data.enabled;} + if(uri.includes('hbchannel')){if(delayRoot){pendingRoot=this;return;}if(deny)r={returnValue:false,errorText:'Denied by Homebrew Channel'};} + if(uri.endsWith('/restartService'))uid=0; + this.onservicecallback(JSON.stringify(r)); + } + cancel(){} +} +const c={document:{getElementById(id){assert(elements[id],id);return elements[id];},createElement(){return {};}},window:{},PalmServiceBridge:Bridge,setupRemoteNavigation(){},setInterval(){},setTimeout(fn){const id=++next;timers.set(id,fn);return id;},clearTimeout(id){timers.delete(id);}}; +vm.createContext(c);vm.runInContext(fs.readFileSync('app/app.js','utf8'),c); +function flush(){for(let i=0;timers.size && i<20;i++){const [id,fn]=timers.entries().next().value;timers.delete(id);fn();}assert(!timers.size);} +assert.equal(elements.grantRoot.style.display,'inline-block');elements.autostart.onclick();flush(); +assert(enabled && !elements.autostart.disabled && uid===0);assert.equal(elements.grantRoot.style.display,'none'); +const grant=requests.find(r=>r.uri.includes('hbchannel'));assert.deepEqual(grant.data,{id:'org.webosbrew.histogramhyperion.service'});assert(requests.some(r=>r.uri.endsWith('/restartService'))); +const grantCount=requests.filter(r=>r.uri.includes('hbchannel')).length; +elements.autostart.onclick();flush();assert(!enabled);assert.equal(requests.filter(r=>r.uri.includes('hbchannel')).length,grantCount); +uid=1000;deny=true;elements.autostart.onclick();flush();assert(!enabled && !elements.autostart.disabled && !elements.grantRoot.disabled);assert(elements.error.textContent.includes('could not grant root')); +deny=false;delayRoot=true;elements.grantRoot.onclick();elements.autostart.onclick();assert(pendingRoot && c.rootWaiters.length===2); +delayRoot=false;pendingRoot.onservicecallback(JSON.stringify({returnValue:true}));flush();assert(enabled && !elements.autostart.disabled && !c.rootWaiters.length); +console.log('PASS: root-required autostart repairs only own service, confirms root after restart, retries setting, avoids unnecessary elevation and reports denial'); diff --git a/tests/wizard.test.js b/tests/wizard.test.js new file mode 100644 index 0000000..373004d --- /dev/null +++ b/tests/wizard.test.js @@ -0,0 +1,32 @@ +'use strict'; +const assert=require('assert'),fs=require('fs'),vm=require('vm'); +const elements={},events={},requests=[];let active=false,sequence=0,globalResponse=false; +['calibrationVideo','cancelCalibration','calibrate','validateCalibration','wizardStatus','customProfile'].forEach(id=>elements[id]={style:{},disabled:false,currentTime:0,textContent:'',value:'',events:{},focus(){},pause(){},play(){return Promise.resolve();},addEventListener(k,f){this.events[k]=f;}}); +const c={profile:'auto',profileDirty:false,targetDirty:false,showProfile(){},display(){},setInterval(){return 1;},clearInterval(){},setTimeout(){},Date,Array,JSON, + window:{addEventListener(k,f){events[k]=f;}},document:{getElementById(id){return elements[id];},addEventListener(k,f){events[k]=f;}}, + call(method,done,data){ + requests.push({method,data});if(method==='calibrationSession')active=data.enabled; + const t=elements.calibrationVideo.currentTime,step=t<4?-1:Math.floor((t-4)/2); + const regions=Array.from({length:16},(_,r)=>{ + const center=r*2+.5,d=Math.min(Math.abs(step-center),32-Math.abs(step-center)); + const value=step<0?10:10+80*(globalResponse?1:Math.max(0,1-d/2));return [value,value,value]; + }); + done(method==='status'?{returnValue:true,running:true,activeSource:'HyperDRM',tvModel:'OTHER-TV',colorValid:true,calibrating:active,sampleSequence:++sequence,sampleAgeMs:10,regions}:{returnValue:true}); + } +};vm.createContext(c); +vm.runInContext(fs.readFileSync('app/calibration.js','utf8'),c);vm.runInContext(fs.readFileSync('app/wizard.js','utf8'),c); +function measure(){ + elements.calibrate.onclick();assert(active);assert.deepEqual(c.window.remoteNavigationScope,['cancelCalibration']); + [1,1.5,2].forEach(t=>{elements.calibrationVideo.currentTime=t;c.wizardSample();}); + for(let step=0;step<32;step++)[.8,1.1,1.4].forEach(t=>{elements.calibrationVideo.currentTime=4+step*2+t;c.wizardSample();}); + elements.calibrationVideo.currentTime=68;c.wizardSample(); + assert(!active && c.wizard===null && c.window.remoteNavigationScope===null); +} +measure();assert.equal(c.profile,'custom');assert(c.profileDirty); +const proposal=JSON.parse(elements.customProfile.value);assert.equal(proposal.points.length,16); +assert(requests.some(r=>r.method==='calibrationDraft'));assert(!requests.some(r=>r.method==='calibration')); +c.profileDirty=false;globalResponse=true;measure();assert(elements.wizardStatus.textContent.includes('reliable spatial'));assert.equal(elements.customProfile.value,JSON.stringify(proposal,null,2)); +globalResponse=false;elements.calibrate.onclick();elements.cancelCalibration.onclick();assert(!active && !c.wizard); +elements.validateCalibration.onclick();assert.equal(elements.calibrationVideo.currentTime,68);elements.calibrationVideo.events.ended();assert(!active && elements.wizardStatus.textContent.includes('Top-left red')); +elements.calibrate.onclick();let prevented=false;events.keydown({keyCode:461,preventDefault(){prevented=true;}});assert(prevented && !active); +console.log('PASS: guided measurement, proposal without save, invalid-response preservation, validation, cancel/Back and scoped remote navigation');