mirror of
https://github.com/R0m1k3/xtremflow.git
synced 2026-10-11 17:30:00 +02:00
Mesuré en prod avec la sonde admin : le panneau met 4,2 à 4,4 s à répondre la redirection d'un .ts, contre 0,2 à 1,3 s pour un .m3u8 dont le premier segment arrive ensuite en 50 ms. turbo.ts et les sessions HLS live lisent désormais le .m3u8 du panneau (-live_start_index -2 : deux segments d'avance d'un coup), avec repli automatique sur le .ts si le HLS ne livre rien — dans la même réponse pour turbo.ts, le lecteur ne voit qu'un démarrage plus long. Pas de reconnect_at_eof en HLS : chaque segment finit par un EOF (leçon de xtremobile). Le navigateur reçoit toujours le même flux MPEG-TS. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
36 lines
1.3 KiB
Dart
36 lines
1.3 KiB
Dart
import 'package:test/test.dart';
|
|
import '../api/streaming_handler.dart';
|
|
|
|
void main() {
|
|
group('liveInputArgs', () {
|
|
test('HLS : jamais de reconnect_at_eof (chaque segment finit par un EOF)',
|
|
() {
|
|
final args = liveInputArgs('http://p/live/u/p/1.m3u8', hls: true);
|
|
expect(args, isNot(contains('-reconnect_at_eof')));
|
|
expect(args, isNot(contains('-reconnect_streamed')));
|
|
});
|
|
|
|
test('HLS : démarre deux segments avant le direct pour avoir de l\'avance',
|
|
() {
|
|
final args = liveInputArgs('http://p/live/u/p/1.m3u8', hls: true);
|
|
final i = args.indexOf('-live_start_index');
|
|
expect(i, isNot(-1));
|
|
expect(args[i + 1], '-2');
|
|
// Option de démuxeur : doit précéder -i.
|
|
expect(i, lessThan(args.indexOf('-i')));
|
|
});
|
|
|
|
test('.ts : garde la reconnexion en fin de flux (coupures du panneau)', () {
|
|
final args = liveInputArgs('http://p/live/u/p/1.ts', hls: false);
|
|
expect(args, contains('-reconnect_at_eof'));
|
|
expect(args, isNot(contains('-live_start_index')));
|
|
});
|
|
|
|
test('l\'URL est la dernière entrée, juste après -i', () {
|
|
final args = liveInputArgs('http://p/x.m3u8', hls: true);
|
|
expect(args.last, 'http://p/x.m3u8');
|
|
expect(args[args.length - 2], '-i');
|
|
});
|
|
});
|
|
}
|