feat: make media inspection progressive
This commit is contained in:
@@ -7,9 +7,11 @@ import {
|
||||
MAX_PROBE_TIMEOUT_MILLISECONDS,
|
||||
MIN_PROBE_TIMEOUT_MILLISECONDS,
|
||||
MULTITHREAD_CODEC_THREAD_LIMIT,
|
||||
canReuseProbeCapabilities,
|
||||
engineJobTimeoutMilliseconds,
|
||||
prepareEngineArguments,
|
||||
probeTimeoutMilliseconds,
|
||||
shouldRefreshCoreBeforeProbe,
|
||||
shouldRecycleExecutionCore,
|
||||
} from '../../src/ffmpeg/EngineManager';
|
||||
|
||||
@@ -127,6 +129,40 @@ describe('probeTimeoutMilliseconds', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('Firefox probe core refresh policy', () => {
|
||||
it('refreshes only affected Firefox-family runtimes', () => {
|
||||
expect(
|
||||
shouldRefreshCoreBeforeProbe(
|
||||
'Mozilla/5.0 (X11; Linux x86_64; rv:142.0) Gecko/20100101 Firefox/142.0'
|
||||
)
|
||||
).toBe(true);
|
||||
expect(
|
||||
shouldRefreshCoreBeforeProbe(
|
||||
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_6 like Mac OS X) FxiOS/142.0'
|
||||
)
|
||||
).toBe(true);
|
||||
expect(
|
||||
shouldRefreshCoreBeforeProbe(
|
||||
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 Chrome/140.0 Safari/537.36'
|
||||
)
|
||||
).toBe(false);
|
||||
expect(shouldRefreshCoreBeforeProbe('')).toBe(false);
|
||||
});
|
||||
|
||||
it('reuses cached capabilities only for the identical engine mode', () => {
|
||||
expect(canReuseProbeCapabilities('multithread', 'multithread')).toBe(true);
|
||||
expect(canReuseProbeCapabilities('single-thread', 'single-thread')).toBe(
|
||||
true
|
||||
);
|
||||
expect(canReuseProbeCapabilities('multithread', 'single-thread')).toBe(
|
||||
false
|
||||
);
|
||||
expect(canReuseProbeCapabilities('single-thread', 'multithread')).toBe(
|
||||
false
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('execution core recycling policy', () => {
|
||||
it('refreshes only after the bounded idle-core job budget is exhausted', () => {
|
||||
expect(shouldRecycleExecutionCore(MAX_EXECUTIONS_PER_ENGINE - 1)).toBe(
|
||||
|
||||
Reference in New Issue
Block a user