@@ -203,10 +203,7 @@ class cross val_source ~duration_getter ~override_duration ~persist_override
203
203
| `After after_source -> Some after_source)
204
204
| `After after_source
205
205
when self#can_reselect
206
- ~reselect:
207
- (match reselect with
208
- | `After_position _ -> reselect
209
- | _ -> `Ok )
206
+ ~reselect: (match reselect with `Force -> `Ok | _ -> reselect)
210
207
after_source ->
211
208
Some after_source
212
209
| `After _ -> Some self#prepare_before
@@ -268,7 +265,6 @@ class cross val_source ~duration_getter ~override_duration ~persist_override
268
265
in
269
266
let buffered_before = Generator. length gen_before in
270
267
let buffered_after = Generator. length gen_after in
271
- let buffered = min buffered_before buffered_after in
272
268
let after =
273
269
Clock. collect_after (fun () ->
274
270
let metadata = function
@@ -277,52 +273,20 @@ class cross val_source ~duration_getter ~override_duration ~persist_override
277
273
in
278
274
let before_metadata = metadata before_metadata in
279
275
let after_metadata = metadata after_metadata in
280
- let before_head =
281
- if buffered < buffered_before then (
282
- let head =
283
- Generator. slice gen_before (buffered_before - buffered)
284
- in
285
- let head_gen =
286
- Generator. create ~content: head
287
- (Generator. content_type gen_before)
288
- in
289
- let s = new consumer head_gen in
290
- s#set_id (self#id ^ " _before_head" );
291
- Typing. (s#frame_type < : self#frame_type );
292
- Some s)
293
- else None
294
- in
295
276
let before = new consumer gen_before in
296
277
Typing. (before#frame_type < : self#frame_type );
297
278
let before = new Insert_metadata. replay before_metadata before in
298
279
Typing. (before#frame_type < : self#frame_type );
299
- let after_tail =
300
- if buffered < buffered_after then (
301
- let head = Generator. slice gen_after buffered in
302
- let head_gen =
303
- Generator. create ~content: head
304
- (Generator. content_type gen_after)
305
- in
306
- let tail_gen = gen_after in
307
- gen_after < - head_gen;
308
- let s = new consumer tail_gen in
309
- Typing. (s#frame_type < : self#frame_type );
310
- s#set_id (self#id ^ " _after_tail" );
311
- Some s)
312
- else None
313
- in
280
+ before#set_id (self#id ^ " _before" );
314
281
let after = new consumer gen_after in
315
282
Typing. (after#frame_type < : self#frame_type );
316
283
let after = new Insert_metadata. replay after_metadata after in
317
284
Typing. (after#frame_type < : self#frame_type );
318
- before#set_id (self#id ^ " _before" );
319
285
after#set_id (self#id ^ " _after" );
320
286
self#log#important " Analysis: %fdB / %fdB (%.2fs / %.2fs)" db_before
321
287
db_after
322
288
(Frame. seconds_of_main buffered_before)
323
289
(Frame. seconds_of_main buffered_after);
324
- self#log#important " Computing crossfade over first and last %.2fs"
325
- (Frame. seconds_of_main buffered);
326
290
let compound =
327
291
let params =
328
292
[
@@ -334,9 +298,7 @@ class cross val_source ~duration_getter ~override_duration ~persist_override
334
298
( " expected_duration" ,
335
299
Lang. float (Frame. seconds_of_main cross_length) );
336
300
( " buffered" ,
337
- Lang. float
338
- (Frame. seconds_of_main
339
- (Generator. length gen_before)) );
301
+ Lang. float (Frame. seconds_of_main buffered_before) );
340
302
(" metadata" , Lang. metadata before_metadata);
341
303
] );
342
304
( " " ,
@@ -347,29 +309,15 @@ class cross val_source ~duration_getter ~override_duration ~persist_override
347
309
( " expected_duration" ,
348
310
Lang. float (Frame. seconds_of_main cross_length) );
349
311
( " buffered" ,
350
- Lang. float
351
- (Frame. seconds_of_main (Generator. length gen_after))
352
- );
312
+ Lang. float (Frame. seconds_of_main buffered_after) );
353
313
(" metadata" , Lang. metadata after_metadata);
354
314
] );
355
315
]
356
316
in
357
317
Lang. to_source (Lang. apply transition params)
358
318
in
359
319
Typing. (compound#frame_type < : self#frame_type );
360
- let compound =
361
- match (before_head, after_tail) with
362
- | None , None -> compound
363
- | Some s , None ->
364
- (new Sequence. sequence ~merge: true [s; compound]
365
- :> Source. source)
366
- | None , Some s ->
367
- (new Sequence. sequence ~merge: true [compound; s]
368
- :> Source. source)
369
- | Some _ , Some _ -> assert false
370
- in
371
320
Clock. unify ~pos: self#pos compound#clock s#clock;
372
- Typing. (compound#frame_type < : self#frame_type );
373
321
compound)
374
322
in
375
323
self#prepare_source after;
0 commit comments