[INFO] fetching crate oximedia-timecode 0.1.3... [INFO] testing oximedia-timecode-0.1.3 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-2 [INFO] extracting crate oximedia-timecode 0.1.3 into /workspace/builds/worker-2-tc2/source [INFO] started tweaking crates.io crate oximedia-timecode 0.1.3 [INFO] finished tweaking crates.io crate oximedia-timecode 0.1.3 [INFO] tweaked toml for crates.io crate oximedia-timecode 0.1.3 written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate oximedia-timecode 0.1.3 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate oximedia-timecode 0.1.3 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 7378fa1888aff6350207fb10bea57fca7f217f7ea0a2bae54cf4eb1ef27a12cd [INFO] running `Command { std: "docker" "start" "-a" "7378fa1888aff6350207fb10bea57fca7f217f7ea0a2bae54cf4eb1ef27a12cd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7378fa1888aff6350207fb10bea57fca7f217f7ea0a2bae54cf4eb1ef27a12cd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7378fa1888aff6350207fb10bea57fca7f217f7ea0a2bae54cf4eb1ef27a12cd", kill_on_drop: false }` [INFO] [stdout] 7378fa1888aff6350207fb10bea57fca7f217f7ea0a2bae54cf4eb1ef27a12cd [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 27186c0ab55625ad6d12bdd1829c62f1f73b85a36e0459ed4c3e3c8525fe404e [INFO] running `Command { std: "docker" "start" "-a" "27186c0ab55625ad6d12bdd1829c62f1f73b85a36e0459ed4c3e3c8525fe404e", kill_on_drop: false }` [INFO] [stderr] Compiling audio-core v0.2.1 [INFO] [stderr] Compiling strength_reduce v0.2.4 [INFO] [stderr] Compiling oxifft v0.2.0 [INFO] [stderr] Compiling seahash v4.1.0 [INFO] [stderr] Compiling spin v0.10.0 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling num-complex v0.4.6 [INFO] [stderr] Compiling windowfunctions v0.1.1 [INFO] [stderr] Compiling bitflags v2.11.1 [INFO] [stderr] Compiling hashbrown v0.17.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling visibility v0.1.1 [INFO] [stderr] Compiling oxifft-codegen v0.2.0 [INFO] [stderr] Compiling rayon v1.12.0 [INFO] [stderr] Compiling audioadapter v3.0.0 [INFO] [stderr] Compiling audioadapter-sample v3.0.0 [INFO] [stderr] Compiling primal-check v0.3.4 [INFO] [stderr] Compiling transpose v0.2.3 [INFO] [stderr] Compiling audioadapter-buffers v3.0.0 [INFO] [stderr] Compiling rustfft v6.4.1 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling oximedia-core v0.1.3 [INFO] [stderr] Compiling realfft v3.5.0 [INFO] [stderr] Compiling rubato v2.0.0 [INFO] [stderr] Compiling oximedia-audio v0.1.3 [INFO] [stderr] Compiling oximedia-timecode v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 32.54s [INFO] running `Command { std: "docker" "inspect" "27186c0ab55625ad6d12bdd1829c62f1f73b85a36e0459ed4c3e3c8525fe404e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "27186c0ab55625ad6d12bdd1829c62f1f73b85a36e0459ed4c3e3c8525fe404e", kill_on_drop: false }` [INFO] [stdout] 27186c0ab55625ad6d12bdd1829c62f1f73b85a36e0459ed4c3e3c8525fe404e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 26c58913be8a4b06ccc86395ffb79f159bdcdac7a9a49c023a75d5d0451f711b [INFO] running `Command { std: "docker" "start" "-a" "26c58913be8a4b06ccc86395ffb79f159bdcdac7a9a49c023a75d5d0451f711b", kill_on_drop: false }` [INFO] [stderr] Compiling oximedia-timecode v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 4.28s [INFO] running `Command { std: "docker" "inspect" "26c58913be8a4b06ccc86395ffb79f159bdcdac7a9a49c023a75d5d0451f711b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "26c58913be8a4b06ccc86395ffb79f159bdcdac7a9a49c023a75d5d0451f711b", kill_on_drop: false }` [INFO] [stdout] 26c58913be8a4b06ccc86395ffb79f159bdcdac7a9a49c023a75d5d0451f711b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 86161a4e22f1f85859d47444c093c6ad48f40cc87c8c195f800ce54665beaf72 [INFO] running `Command { std: "docker" "start" "-a" "86161a4e22f1f85859d47444c093c6ad48f40cc87c8c195f800ce54665beaf72", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.07s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_timecode-578ebbd503d9c99e) [INFO] [stdout] [INFO] [stdout] running 577 tests [INFO] [stdout] test burn_in::tests::test_burn_in_style_classic_scale ... ok [INFO] [stdout] test burn_in::tests::test_burn_in_style_modern_scale ... ok [INFO] [stdout] test burn_in::tests::test_position_is_right_true ... ok [INFO] [stdout] test burn_in::tests::test_position_is_top_false ... ok [INFO] [stdout] test burn_in::tests::test_position_is_top_true ... ok [INFO] [stdout] test burn_in::tests::test_burn_in_style_minimal_scale ... ok [INFO] [stdout] test burn_in::tests::test_position_is_right_false ... ok [INFO] [stdout] test burn_in::tests::test_render_timecode_text_bottom_center ... ok [INFO] [stdout] test burn_in::tests::test_render_timecode_text_top_left ... ok [INFO] [stdout] test burn_in::tests::test_default_broadcast_style ... ok [INFO] [stdout] test burn_in::tests::test_render_timecode_text_top_right ... ok [INFO] [stdout] test burn_in::tests::test_default_dailies_style ... ok [INFO] [stdout] test compare::tests::clamp_to_range_below ... ok [INFO] [stdout] test compare::tests::clamp_to_range_within ... ok [INFO] [stdout] test compare::tests::clamp_to_range_above ... ok [INFO] [stdout] test compare::tests::standalone_is_earlier_than ... ok [INFO] [stdout] test continuity::tests::test_expected_frame_count ... ok [INFO] [stdout] test compare::tests::is_earlier_than_false_when_equal ... ok [INFO] [stdout] test compare::tests::is_earlier_than_true ... ok [INFO] [stdout] test compare::tests::is_later_than_true ... ok [INFO] [stdout] test compare::tests::frames_distance ... ok [INFO] [stdout] test continuity::tests::test_monitor_gap_detection ... ok [INFO] [stdout] test continuity::tests::test_monitor_report ... ok [INFO] [stdout] test continuity::tests::test_monitor_reset ... ok [INFO] [stdout] test compare::tests::is_same_frame_as ... ok [INFO] [stdout] test continuity::tests::test_timecode_range_duration ... ok [INFO] [stdout] test continuity::tests::test_split_into_segments ... ok [INFO] [stdout] test compare::tests::partial_ord_uses_frame_count ... ok [INFO] [stdout] test compare::tests::standalone_earlier_returns_min ... ok [INFO] [stdout] test continuity::tests::test_check_continuity_continuous ... ok [INFO] [stdout] test continuity::tests::test_check_continuity_gap ... ok [INFO] [stdout] test continuity::tests::test_timecode_range_contains ... ok [INFO] [stdout] test continuity::tests::test_check_continuity_overlap ... ok [INFO] [stdout] test continuity::tests::test_check_continuity_repeat ... ok [INFO] [stdout] test continuity::tests::test_find_gaps ... ok [INFO] [stdout] test continuity::tests::test_monitor_continuous ... ok [INFO] [stdout] test continuity::tests::test_timecode_range_overlaps ... ok [INFO] [stdout] test drop_frame::tests::test_df_one_frame ... ok [INFO] [stdout] test drop_frame::tests::test_df_one_second ... ok [INFO] [stdout] test drop_frame::tests::test_df_one_minute ... ok [INFO] [stdout] test drop_frame::tests::test_format_df ... ok [INFO] [stdout] test drop_frame::tests::test_parse_df_invalid ... ok [INFO] [stdout] test drop_frame::tests::test_total_frame_counter_drop_frame ... ok [INFO] [stdout] test drop_frame::tests::test_total_frame_counter_reset ... ok [INFO] [stdout] test drop_frame::tests::test_df_zero ... ok [INFO] [stdout] test duration::tests::test_duration_range_contains_true ... ok [INFO] [stdout] test duration::tests::test_duration_range_contains_false ... ok [INFO] [stdout] test duration::tests::test_is_negative_true ... ok [INFO] [stdout] test duration::tests::test_is_negative_false ... ok [INFO] [stdout] test duration::tests::test_add ... ok [INFO] [stdout] test drop_frame::tests::test_df_roundtrip ... ok [INFO] [stdout] test duration::tests::test_subtract_to_zero ... ok [INFO] [stdout] test drop_frame::tests::test_df_ten_minutes ... ok [INFO] [stdout] test drop_frame::tests::test_is_dropped_frame ... ok [INFO] [stdout] test duration::tests::test_subtract_positive ... ok [INFO] [stdout] test drop_frame::tests::test_parse_df_valid ... ok [INFO] [stdout] test drop_frame::tests::test_parse_format_roundtrip ... ok [INFO] [stdout] test duration::tests::test_duration_range_duration_frames ... ok [INFO] [stdout] test duration::tests::test_subtract_negative_returns_none ... ok [INFO] [stdout] test duration::tests::test_duration_range_overlaps_false ... ok [INFO] [stdout] test drop_frame::tests::test_total_frame_counter_non_drop_frame ... ok [INFO] [stdout] test duration::tests::test_timecode_subtract_negative ... ok [INFO] [stdout] test duration::tests::test_timecode_subtract_positive ... ok [INFO] [stdout] test duration::tests::test_to_seconds_zero_fps ... ok [INFO] [stdout] test embedded_tc::tests::test_atc_round_trip_ltc ... ok [INFO] [stdout] test embedded_tc::tests::test_atc_round_trip_vitc ... ok [INFO] [stdout] test duration::tests::test_to_milliseconds ... ok [INFO] [stdout] test duration::tests::test_to_seconds_25fps ... ok [INFO] [stdout] test embedded_tc::tests::test_encode_decode_timecode_bytes ... ok [INFO] [stdout] test embedded_tc::tests::test_atc_adf_header ... ok [INFO] [stdout] test embedded_tc::tests::test_atc_to_sdi_words_length ... ok [INFO] [stdout] test embedded_tc::tests::test_atc_zero_user_bits ... ok [INFO] [stdout] test embedded_tc::tests::test_atc_continuity_counter ... ok [INFO] [stdout] test embedded_tc::tests::test_atc_from_sdi_words_bad_adf ... ok [INFO] [stdout] test embedded_tc::tests::test_parity_9bit_even_input ... ok [INFO] [stdout] test embedded_tc::tests::test_atc_from_sdi_words_too_short ... ok [INFO] [stdout] test embedded_tc::tests::test_atc_max_user_bits ... ok [INFO] [stdout] test frame_offset::tests::test_cross_rate_25_to_50 ... ok [INFO] [stdout] test frame_offset::tests::test_cross_rate_same_rate ... ok [INFO] [stdout] test frame_offset::tests::test_frame_offset_from_seconds_25fps ... ok [INFO] [stdout] test embedded_tc::tests::test_atc_packet_creation ... ok [INFO] [stdout] test frame_offset::tests::test_frame_offset_from_timecode ... ok [INFO] [stdout] test frame_offset::tests::test_frame_offset_to_seconds_25fps ... ok [INFO] [stdout] test frame_offset::tests::test_frame_offset_diff ... ok [INFO] [stdout] test frame_offset::tests::test_offset_table_lookup ... ok [INFO] [stdout] test frame_offset::tests::test_frame_duration ... ok [INFO] [stdout] test frame_offset::tests::test_frame_offset_to_timecode ... ok [INFO] [stdout] test frame_offset::tests::test_offset_table_empty_lookup ... ok [INFO] [stdout] test frame_offset::tests::test_frame_offset_arithmetic ... ok [INFO] [stdout] test frame_rate::tests::test_common_frame_rates_contains_25 ... ok [INFO] [stdout] test frame_rate::tests::test_display_integer ... ok [INFO] [stdout] test frame_offset::tests::test_offset_table_offset_at ... ok [INFO] [stdout] test frame_rate::tests::test_is_drop_frame_compatible_false ... ok [INFO] [stdout] test frame_rate::tests::test_common_frame_rates_count ... ok [INFO] [stdout] test frame_rate::tests::test_fps_f64_exact ... ok [INFO] [stdout] test frame_rate::tests::test_display_fractional ... ok [INFO] [stdout] test frame_rate::tests::test_is_drop_frame_compatible_true ... ok [INFO] [stdout] test frame_rate::tests::test_fps_f64_fractional ... ok [INFO] [stdout] test frame_rate::tests::test_matches_equal ... ok [INFO] [stdout] test frame_offset::tests::test_frame_offset_sub_saturate ... ok [INFO] [stdout] test frame_rate::tests::test_matches_not_equal ... ok [INFO] [stdout] test jam_sync::tests::test_output_frozen_while_locking ... ok [INFO] [stdout] test jam_sync::tests::test_first_feed_transitions_to_locking ... ok [INFO] [stdout] test jam_sync::tests::test_frames_since_reference_counter ... ok [INFO] [stdout] test jam_sync::tests::test_output_tracks_reference_after_lock ... ok [INFO] [stdout] test jam_sync::tests::test_holdover_keeps_advancing ... ok [INFO] [stdout] test jam_sync::tests::test_holdover_triggered_after_budget_exceeded ... ok [INFO] [stdout] test jam_sync::tests::test_re_lock_from_holdover ... ok [INFO] [stdout] test jam_sync::tests::test_initial_state_is_waiting ... ok [INFO] [stdout] test jam_sync::tests::test_lock_acquired_after_threshold ... ok [INFO] [stdout] test jam_sync::tests::test_lock_not_acquired_before_threshold ... ok [INFO] [stdout] test frame_rate::tests::test_new_valid ... ok [INFO] [stdout] test frame_rate::tests::test_new_zero_denominator ... ok [INFO] [stdout] test frame_rate::tests::test_nominal_fps_exact ... ok [INFO] [stdout] test frame_rate::tests::test_nominal_fps_rounded ... ok [INFO] [stdout] test frame_offset::tests::test_cross_rate_50_to_25 ... ok [INFO] [stdout] test jam_sync::tests::test_non_sequential_resets_lock_count ... ok [INFO] [stdout] test jam_sync::tests::test_reset_returns_to_waiting ... ok [INFO] [stdout] test ltc::decoder::tests::test_bits_to_u8 ... ok [INFO] [stdout] test ltc::decoder::tests::test_decoder_creation ... ok [INFO] [stdout] test ltc::decoder::tests::test_zero_crossing_detector ... ok [INFO] [stdout] test ltc::encoder::tests::test_encoder_creation ... ok [INFO] [stdout] test ltc::decoder::tests::test_drop_frame_validator ... ok [INFO] [stdout] test ltc::encoder::tests::test_encode_frame ... ok [INFO] [stdout] test ltc::encoder::tests::test_user_bits_date ... ok [INFO] [stdout] test ltc::tests::test_ltc_reader_creation ... ok [INFO] [stdout] test ltc::tests::test_ltc_writer_creation ... ok [INFO] [stdout] test ltc::tests::test_sync_word ... ok [INFO] [stdout] test ltc_encoder::tests::test_audio_encoder_amplitude_bounds ... ok [INFO] [stdout] test ltc_encoder::tests::test_audio_encoder_output_length ... ok [INFO] [stdout] test ltc_encoder::tests::test_audio_encoder_params_accessor ... ok [INFO] [stdout] test ltc_encoder::tests::test_bit_encoder_drop_frame_flag ... ok [INFO] [stdout] test ltc_encoder::tests::test_bit_encoder_sync_word_present ... ok [INFO] [stdout] test ltc_encoder::tests::test_signal_params_30fps ... ok [INFO] [stdout] test ltc_parser::tests::test_build_ltc_word_length ... ok [INFO] [stdout] test ltc_parser::tests::test_check_sync_too_short ... ok [INFO] [stdout] test ltc_parser::tests::test_check_sync_invalid ... ok [INFO] [stdout] test ltc_parser::tests::test_decode_bits_empty ... ok [INFO] [stdout] test ltc_parser::tests::test_decode_bits_finds_one_frame ... ok [INFO] [stdout] test ltc_parser::tests::test_decode_bits_too_short ... ok [INFO] [stdout] test ltc_parser::tests::test_check_sync_valid ... ok [INFO] [stdout] test ltc::encoder::tests::test_user_bits_ascii ... ok [INFO] [stdout] test ltc_encoder::tests::test_audio_encoder_polarity_reset ... ok [INFO] [stdout] test ltc_encoder::tests::test_bit_encoder_max_values ... ok [INFO] [stdout] test ltc_encoder::tests::test_audio_encoder_sequence ... ok [INFO] [stdout] test ltc_encoder::tests::test_signal_params_samples_per_frame_25fps ... ok [INFO] [stdout] test ltc_parser::tests::test_decode_drop_frame_flag ... ok [INFO] [stdout] test ltc::encoder::tests::test_even_parity ... ok [INFO] [stdout] test ltc_encoder::tests::test_bit_encoder_roundtrip ... ok [INFO] [stdout] test ltc_encoder::tests::test_signal_params_samples_per_bit_25fps ... ok [INFO] [stdout] test ltc_encoder::tests::test_bit_encoder_midnight ... ok [INFO] [stdout] test ltc_parser::tests::test_decode_frame_bit_offset ... ok [INFO] [stdout] test ltc_parser::tests::test_encode_decode_midnight ... ok [INFO] [stdout] test ltc_parser::tests::test_encode_decode_roundtrip_simple ... ok [INFO] [stdout] test ltc_parser::tests::test_decode_frame_buffer_too_small ... ok [INFO] [stdout] test ltc_parser::tests::test_ltcframe_color_frame_default_false ... ok [INFO] [stdout] test ltc_simd::tests::test_scalar_fallback_non_simd ... ok [INFO] [stdout] test ltc_simd::tests::test_scalar_roundtrip_all_zeros ... ok [INFO] [stdout] test ltc_simd::tests::test_scalar_sample_count ... ok [INFO] [stdout] test ltc_simd::tests::test_simd_matches_scalar_encode ... ok [INFO] [stdout] test ltc_parser::tests::test_ltcbit_from_bool ... ok [INFO] [stdout] test ltc_simd::tests::test_simd_roundtrip ... ok [INFO] [stdout] test ltc_parser::tests::test_ltcbit_from_u8 ... ok [INFO] [stdout] test midi_timecode::tests::test_mtc_frame_rate_fps ... ok [INFO] [stdout] test midi_timecode::tests::test_mtc_frame_rate_from_code ... ok [INFO] [stdout] test midi_timecode::tests::test_mtc_timecode_from_frame_count ... ok [INFO] [stdout] test midi_timecode::tests::test_mtc_full_frame_encode ... ok [INFO] [stdout] test midi_timecode::tests::test_mtc_receiver_assemble ... ok [INFO] [stdout] test midi_timecode::tests::test_mtc_timecode_roundtrip ... ok [INFO] [stdout] test ltc_parser::tests::test_ltcbit_as_u8 ... ok [INFO] [stdout] test midi_timecode::tests::test_mtc_timecode_to_frame_count ... ok [INFO] [stdout] test ltc_simd::tests::test_decode_odd_length_returns_none ... ok [INFO] [stdout] test ltc_simd::tests::test_scalar_roundtrip_all_ones ... ok [INFO] [stdout] test ltc_simd::tests::test_scalar_roundtrip_alternating ... ok [INFO] [stdout] test midi_timecode::tests::test_mtc_full_frame_decode ... ok [INFO] [stdout] test midi_timecode::tests::test_mtc_receiver_default ... ok [INFO] [stdout] test midi_timecode::tests::test_mtc_receiver_reset ... ok [INFO] [stdout] test midi_timecode::tests::test_mtc_full_frame_decode_invalid ... ok [INFO] [stdout] test ltc_simd::tests::test_simd_matches_scalar_decode ... ok [INFO] [stdout] test midi_timecode::tests::test_mtc_frame_rate_code ... ok [INFO] [stdout] test reader::tests::test_ltc_decoder_new ... ok [INFO] [stdout] test reader::tests::test_parse_timecode_string_invalid ... ok [INFO] [stdout] test reader::tests::test_timecode_source_eq ... ok [INFO] [stdout] test reader::tests::test_timecode_validator_reset ... ok [INFO] [stdout] test reader::tests::test_timecode_validator_sequence_continuity ... ok [INFO] [stdout] test reader::tests::test_timecode_validator_sequence_discontinuity ... ok [INFO] [stdout] test reader::tests::test_timecode_validator_valid ... ok [INFO] [stdout] test reader::tests::test_vitc_parser_all_zeros ... ok [INFO] [stdout] test reader::tests::test_vitc_parser_new ... ok [INFO] [stdout] test subframe::tests::half_frame_offset_at_25fps ... ok [INFO] [stdout] test subframe::tests::ordering ... ok [INFO] [stdout] test subframe::tests::sample_rate_zero_clamped ... ok [INFO] [stdout] test subframe::tests::to_seconds_f64_is_consistent ... ok [INFO] [stdout] test subframe::tests::zero_subframe_matches_tc_nanos ... ok [INFO] [stdout] test sync::tests::test_aggregator ... ok [INFO] [stdout] test sync::tests::test_genlock ... ok [INFO] [stdout] test reader::tests::test_parse_timecode_string_25fps ... ok [INFO] [stdout] test subframe::tests::subframe_fraction_zero ... ok [INFO] [stdout] test reader::tests::test_parse_timecode_string_drop_frame ... ok [INFO] [stdout] test reader::tests::test_vitc_parser_short_line ... ok [INFO] [stdout] test sync::tests::test_synchronizer_creation ... ok [INFO] [stdout] test sync::tests::test_jam_sync ... ok [INFO] [stdout] test sync_map::tests::test_sync_map_extrapolate_after_last ... ok [INFO] [stdout] test sync_map::tests::test_sync_map_empty_passthrough ... ok [INFO] [stdout] test sync_map::tests::test_sync_map_point_count ... ok [INFO] [stdout] test sync_map::tests::test_sync_map_sorted_after_add ... ok [INFO] [stdout] test sync_map::tests::test_sync_map_target_to_source_single_point ... ok [INFO] [stdout] test reader::tests::test_timecode_validator_invalid_frames ... ok [INFO] [stdout] test sync_map::tests::test_tc_offset_is_zero_true ... ok [INFO] [stdout] test sync_map::tests::test_sync_map_two_points_interpolation ... ok [INFO] [stdout] test sync_map::tests::test_sync_map_extrapolate_before_first ... ok [INFO] [stdout] test sync_map::tests::test_sync_map_single_point ... ok [INFO] [stdout] test sync_map::tests::test_tc_offset_negate ... ok [INFO] [stdout] test sync_map::tests::test_tc_offset_negate_zero ... ok [INFO] [stdout] test sync_map::tests::test_tc_sync_point_offset ... ok [INFO] [stdout] test sync_map::tests::test_tc_sync_point_negative_offset ... ok [INFO] [stdout] test sync_map::tests::test_tc_offset_is_zero_false ... ok [INFO] [stdout] test tc_calculator::tests::test_add_frames_basic ... ok [INFO] [stdout] test tc_calculator::tests::test_add_frames_wraps_hour ... ok [INFO] [stdout] test tc_calculator::tests::test_add_zero_frames ... ok [INFO] [stdout] test tc_calculator::tests::test_difference_negative ... ok [INFO] [stdout] test tc_calculator::tests::test_difference_positive ... ok [INFO] [stdout] test tc_calculator::tests::test_difference_zero ... ok [INFO] [stdout] test tc_calculator::tests::test_frames_per_day_25fps ... ok [INFO] [stdout] test tc_calculator::tests::test_add_seconds ... ok [INFO] [stdout] test tc_calculator::tests::test_frames_per_day_30fps ... ok [INFO] [stdout] test tc_calculator::tests::test_max_tc ... ok [INFO] [stdout] test tc_calculator::tests::test_min_tc ... ok [INFO] [stdout] test tc_calculator::tests::test_operation_display ... ok [INFO] [stdout] test tc_calculator::tests::test_subtract_frames_basic ... ok [INFO] [stdout] test tc_calculator::tests::test_subtract_frames_wraps_backwards ... ok [INFO] [stdout] test duration::tests::test_duration_range_overlaps_true ... ok [INFO] [stdout] test tc_calculator::tests::test_tc_result_tc_accessor ... ok [INFO] [stdout] test tc_compare::tests::test_distance_frames_one_second ... ok [INFO] [stdout] test tc_compare::tests::test_compare_before ... ok [INFO] [stdout] test tc_calculator::tests::test_subtract_seconds ... ok [INFO] [stdout] test tc_compare::tests::test_earliest_latest ... ok [INFO] [stdout] test tc_compare::tests::test_compare_equal ... ok [INFO] [stdout] test tc_compare::tests::test_midpoint ... ok [INFO] [stdout] test tc_compare::tests::test_is_ascending ... ok [INFO] [stdout] test tc_compare::tests::test_sort_timecodes ... ok [INFO] [stdout] test tc_compare::tests::test_is_within_range ... ok [INFO] [stdout] test tc_compare::tests::test_tc_span_invalid ... ok [INFO] [stdout] test tc_compare::tests::test_tc_span_overlaps ... ok [INFO] [stdout] test tc_compare::tests::test_compare_after ... ok [INFO] [stdout] test tc_compare::tests::test_distance_frames_same ... ok [INFO] [stdout] test tc_convert::tests::test_audio_samples ... ok [INFO] [stdout] test tc_compare::tests::test_distance_frames_symmetric ... ok [INFO] [stdout] test tc_compare::tests::test_distance_seconds ... ok [INFO] [stdout] test tc_compare::tests::test_tc_span_intersection ... ok [INFO] [stdout] test reader::tests::test_ltc_decoder_feed_silence ... ok [INFO] [stdout] test tc_compare::tests::test_tc_span_contains ... ok [INFO] [stdout] test tc_compare::tests::test_is_contiguous ... ok [INFO] [stdout] test tc_compare::tests::test_tc_span_creation ... ok [INFO] [stdout] test tc_convert::tests::test_convert_preserve_display ... ok [INFO] [stdout] test reader::tests::test_vitc_line_numbers ... ok [INFO] [stdout] test tc_convert::tests::test_convert_preserve_time_same_rate ... ok [INFO] [stdout] test tc_convert::tests::test_convert_preserve_time_25_to_30 ... ok [INFO] [stdout] test midi_timecode::tests::test_mtc_timecode_new ... ok [INFO] [stdout] test tc_convert::tests::test_frames_to_smpte_string ... ok [INFO] [stdout] test tc_convert::tests::test_millis_roundtrip ... ok [INFO] [stdout] test tc_convert::tests::test_ndf_to_df_29_97 ... ok [INFO] [stdout] test tc_convert::tests::test_ndf_to_df_already_df_is_error ... ok [INFO] [stdout] test tc_convert::tests::test_ndf_to_df_unsupported_rate_is_error ... ok [INFO] [stdout] test tc_convert::tests::test_df_to_ndf_29_97 ... ok [INFO] [stdout] test tc_convert::tests::test_parse_smpte_ndf ... ok [INFO] [stdout] test tc_convert::tests::test_negative_seconds_error ... ok [INFO] [stdout] test tc_convert::tests::test_parse_smpte_invalid ... ok [INFO] [stdout] test tc_drift::tests::test_analyze_no_drift ... ok [INFO] [stdout] test tc_drift::tests::test_analyze_with_drift ... ok [INFO] [stdout] test tc_drift::tests::test_clear_samples ... ok [INFO] [stdout] test tc_drift::tests::test_compute_ppm_positive ... ok [INFO] [stdout] test tc_convert::tests::test_convert_preserve_frame ... ok [INFO] [stdout] test tc_drift::tests::test_compute_ppm_zero ... ok [INFO] [stdout] test tc_drift::tests::test_compute_ppm_zero_reference ... ok [INFO] [stdout] test tc_drift::tests::test_config_builder ... ok [INFO] [stdout] test tc_drift::tests::test_config_defaults ... ok [INFO] [stdout] test tc_drift::tests::test_correct_timecode_backward ... ok [INFO] [stdout] test tc_convert::tests::test_seconds_to_timecode_25fps ... ok [INFO] [stdout] test tc_convert::tests::test_timecode_to_seconds ... ok [INFO] [stdout] test tc_drift::tests::test_detector_add_sample ... ok [INFO] [stdout] test tc_convert::tests::test_df_ndf_roundtrip_preserves_frame_count ... ok [INFO] [stdout] test tc_drift::tests::test_detector_no_samples ... ok [INFO] [stdout] test tc_drift::tests::test_correct_timecode_forward ... ok [INFO] [stdout] test tc_drift::tests::test_drift_sample_negative ... ok [INFO] [stdout] test tc_drift::tests::test_drift_sample_positive ... ok [INFO] [stdout] test tc_drift::tests::test_drift_sample_zero_drift ... ok [INFO] [stdout] test tc_drift::tests::test_drift_sample_zero_expected ... ok [INFO] [stdout] test tc_interpolate::tests::test_interpolate_empty ... ok [INFO] [stdout] test tc_interpolate::tests::test_batch_interpolate ... ok [INFO] [stdout] test tc_interpolate::tests::test_interpolate_exact_match ... ok [INFO] [stdout] test tc_interpolate::tests::test_clear ... ok [INFO] [stdout] test tc_interpolate::tests::test_interpolate_linear_between ... ok [INFO] [stdout] test tc_drift::tests::test_drift_sample_creation ... ok [INFO] [stdout] test tc_interpolate::tests::test_max_gap_exceeded ... ok [INFO] [stdout] test tc_interpolate::tests::test_interpolator_creation ... ok [INFO] [stdout] test tc_interpolate::tests::test_ref_point_creation ... ok [INFO] [stdout] test tc_interpolate::tests::test_validate_consistency_mismatch ... ok [INFO] [stdout] test tc_interpolate::tests::test_add_ref_sorted ... ok [INFO] [stdout] test tc_list::tests::first_pair_values ... ok [INFO] [stdout] test tc_list::tests::empty_and_comment_lines_skipped ... ok [INFO] [stdout] test tc_list::tests::invalid_row_silently_skipped ... ok [INFO] [stdout] test tc_interpolate::tests::test_interpolate_forward_extrapolation ... ok [INFO] [stdout] test tc_math::tests::test_duration_add_subtract ... ok [INFO] [stdout] test tc_interpolate::tests::test_validate_consistency_ok ... ok [INFO] [stdout] test tc_math::tests::test_duration_as_seconds ... ok [INFO] [stdout] test tc_list::tests::drop_frame_semicolon_parsed ... ok [INFO] [stdout] test tc_math::tests::test_duration_display ... ok [INFO] [stdout] test tc_list::tests::parse_two_pairs ... ok [INFO] [stdout] test tc_math::tests::test_duration_divide_by_zero ... ok [INFO] [stdout] test tc_math::tests::test_duration_from_hmsf ... ok [INFO] [stdout] test tc_math::tests::test_duration_is_zero ... ok [INFO] [stdout] test tc_list::tests::round_trip_csv ... ok [INFO] [stdout] test tc_interpolate::tests::test_interpolate_forward_only ... ok [INFO] [stdout] test tc_interpolate::tests::test_interpolate_nearest ... ok [INFO] [stdout] test tc_list::tests::second_pair_values ... ok [INFO] [stdout] test tc_math::tests::test_duration_divide ... ok [INFO] [stdout] test tc_math::tests::test_duration_midpoint ... ok [INFO] [stdout] test tc_math::tests::test_duration_multiply ... ok [INFO] [stdout] test tc_math::tests::test_math_duration_between ... ok [INFO] [stdout] test tc_list::tests::tab_separated_accepted ... ok [INFO] [stdout] test tc_math::tests::test_math_offset_by_percentage ... ok [INFO] [stdout] test tc_math::tests::test_duration_scale ... ok [INFO] [stdout] test tc_math::tests::test_math_midpoint ... ok [INFO] [stdout] test tc_math::tests::test_math_position_percentage ... ok [INFO] [stdout] test tc_math::tests::test_duration_to_hmsf ... ok [INFO] [stdout] test tc_metadata::tests::test_record_date_valid ... ok [INFO] [stdout] test tc_metadata::tests::test_reel_id ... ok [INFO] [stdout] test tc_metadata::tests::test_tc_metadata_new ... ok [INFO] [stdout] test tc_metadata::tests::test_tc_metadata_validate_ok ... ok [INFO] [stdout] test tc_math::tests::test_math_convert_frame_count ... ok [INFO] [stdout] test tc_metadata::tests::test_tc_metadata_with_builders ... ok [INFO] [stdout] test tc_metadata::tests::test_timecode_source_variants ... ok [INFO] [stdout] test tc_metadata::tests::test_tc_metadata_validate_mismatch ... ok [INFO] [stdout] test tc_metadata::tests::test_user_bits_date_encode_decode ... ok [INFO] [stdout] test tc_metadata::tests::test_user_bits_nibble ... ok [INFO] [stdout] test tc_metadata::tests::test_user_bits_no_date ... ok [INFO] [stdout] test tc_metadata::tests::test_tc_metadata_summary ... ok [INFO] [stdout] test tc_math::tests::test_math_rate_conversion_factor ... ok [INFO] [stdout] test tc_offset_table::tests::test_frame_to_timecode_minute_boundary ... ok [INFO] [stdout] test tc_offset_table::tests::test_minute_offset_out_of_range ... ok [INFO] [stdout] test tc_metadata::tests::test_metadata_timeline_empty_lookup ... ok [INFO] [stdout] test tc_offset_table::tests::test_build_25fps ... ok [INFO] [stdout] test tc_metadata::tests::test_metadata_timeline_insert_and_lookup ... ok [INFO] [stdout] test tc_metadata::tests::test_record_date_invalid_day ... ok [INFO] [stdout] test tc_convert::tests::test_df_to_ndf_already_ndf_is_error ... ok [INFO] [stdout] test tc_metadata::tests::test_record_date_invalid_month ... ok [INFO] [stdout] test tc_offset_table::tests::test_signed_distance_negative ... ok [INFO] [stdout] test tc_offset_table::tests::test_rate_accessor ... ok [INFO] [stdout] test tc_offset_table::tests::test_total_day_frames_30 ... ok [INFO] [stdout] test tc_offset_table::tests::test_signed_distance_positive ... ok [INFO] [stdout] test tc_range::tests::test_create_range ... ok [INFO] [stdout] test tc_range::tests::test_contains_frame ... ok [INFO] [stdout] test tc_offset_table::tests::test_total_day_frames_25 ... ok [INFO] [stdout] test tc_offset_table::tests::test_zero_timecode ... ok [INFO] [stdout] test tc_range::tests::test_merge_ranges ... ok [INFO] [stdout] test tc_range::tests::test_offset_negative ... ok [INFO] [stdout] test tc_range::tests::test_overlap_kind_contains ... ok [INFO] [stdout] test tc_range::tests::test_offset_positive ... ok [INFO] [stdout] test tc_range::tests::test_duration_frames ... ok [INFO] [stdout] test tc_range::tests::test_invalid_range ... ok [INFO] [stdout] test tc_range::tests::test_duration_seconds ... ok [INFO] [stdout] test tc_offset_table::tests::test_roundtrip_30fps ... ok [INFO] [stdout] test tc_offset_table::tests::test_roundtrip_ndf ... ok [INFO] [stdout] test tc_range::tests::test_split_at_frame ... ok [INFO] [stdout] test tc_range::tests::test_total_coverage ... ok [INFO] [stdout] test tc_range::tests::test_union ... ok [INFO] [stdout] test tc_sequence::tests::test_build_sequence ... ok [INFO] [stdout] test tc_sequence::tests::test_compact_merges_contiguous ... ok [INFO] [stdout] test tc_sequence::tests::test_compact_preserves_gaps ... ok [INFO] [stdout] test tc_sequence::tests::test_detect_gaps ... ok [INFO] [stdout] test tc_sequence::tests::test_end_timecode ... ok [INFO] [stdout] test tc_range::tests::test_overlaps ... ok [INFO] [stdout] test tc_sequence::tests::test_run_contains ... ok [INFO] [stdout] test tc_sequence::tests::test_find_run_at_offset ... ok [INFO] [stdout] test tc_sequence::tests::test_run_zero_frames_error ... ok [INFO] [stdout] test tc_sequence::tests::test_run_creation ... ok [INFO] [stdout] test tc_sequence::tests::test_run_duration_secs ... ok [INFO] [stdout] test tc_sequence::tests::test_sequence_is_contiguous ... ok [INFO] [stdout] test tc_sequence::tests::test_sequence_not_contiguous ... ok [INFO] [stdout] test tc_range::tests::test_frame_iter_count ... ok [INFO] [stdout] test tc_offset_table::tests::test_table_is_not_empty ... ok [INFO] [stdout] test tc_range::tests::test_intersect ... ok [INFO] [stdout] test tc_range::tests::test_overlap_kind_equal ... ok [INFO] [stdout] test tc_range::tests::test_extend_and_trim ... ok [INFO] [stdout] test tc_range::tests::test_intersect_none ... ok [INFO] [stdout] test tc_sequence::tests::test_sequence_push_and_total ... ok [INFO] [stdout] test tc_sequence::tests::test_total_duration_secs ... ok [INFO] [stdout] test tc_range::tests::test_overlap_kind_partial ... ok [INFO] [stdout] test tc_smpte_ranges::tests::test_boundary_checker_allowed ... ok [INFO] [stdout] test tc_smpte_ranges::tests::test_boundary_checker_not_allowed ... ok [INFO] [stdout] test tc_smpte_ranges::tests::test_duration_seconds ... ok [INFO] [stdout] test tc_smpte_ranges::tests::test_encompasses ... ok [INFO] [stdout] test tc_smpte_ranges::tests::test_from_boundary_single_hour ... ok [INFO] [stdout] test tc_smpte_ranges::tests::test_full_day_range ... ok [INFO] [stdout] test tc_smpte_ranges::tests::test_from_boundary_first_half ... ok [INFO] [stdout] test tc_smpte_ranges::tests::test_intersection_some ... ok [INFO] [stdout] test tc_smpte_ranges::tests::test_overlaps_false ... ok [INFO] [stdout] test tc_smpte_ranges::tests::test_overlaps_true ... ok [INFO] [stdout] test tc_smpte_ranges::tests::test_range_contains_inside ... ok [INFO] [stdout] test tc_smpte_ranges::tests::test_range_contains_outside ... ok [INFO] [stdout] test tc_smpte_ranges::tests::test_range_from_timecodes ... ok [INFO] [stdout] test tc_smpte_ranges::tests::test_split_at ... ok [INFO] [stdout] test tc_smpte_ranges::tests::test_split_at_invalid ... ok [INFO] [stdout] test tc_subtitle_sync::tests::test_apply_frame_offset_negative_clamp ... ok [INFO] [stdout] test tc_subtitle_sync::tests::test_apply_frame_offset_positive ... ok [INFO] [stdout] test tc_subtitle_sync::tests::test_compute_average_drift_empty ... ok [INFO] [stdout] test tc_subtitle_sync::tests::test_compute_average_drift_some ... ok [INFO] [stdout] test tc_subtitle_sync::tests::test_compute_average_drift_zero ... ok [INFO] [stdout] test tc_subtitle_sync::tests::test_cue_duration_frames ... ok [INFO] [stdout] test tc_subtitle_sync::tests::test_cue_duration_secs ... ok [INFO] [stdout] test tc_subtitle_sync::tests::test_cue_overlap ... ok [INFO] [stdout] test tc_subtitle_sync::tests::test_linear_stretch_double ... ok [INFO] [stdout] test tc_subtitle_sync::tests::test_cue_no_overlap ... ok [INFO] [stdout] test tc_validator::tests::test_frames_out_of_range ... ok [INFO] [stdout] test tc_subtitle_sync::tests::test_find_overlaps ... ok [INFO] [stdout] test tc_validator::tests::test_drop_frame_illegal_position_detected ... ok [INFO] [stdout] test tc_subtitle_sync::tests::test_sort_cues_by_in ... ok [INFO] [stdout] test tc_smpte_ranges::tests::test_boundary_checker_matching_ranges ... ok [INFO] [stdout] test tc_smpte_ranges::tests::test_duration_frames ... ok [INFO] [stdout] test tc_validator::tests::test_minutes_out_of_range ... ok [INFO] [stdout] test tc_smpte_ranges::tests::test_empty_range_duration ... ok [INFO] [stdout] test tc_validator::tests::test_is_valid_returns_true_for_good_tc ... ok [INFO] [stdout] test tc_smpte_ranges::tests::test_intersection_none ... ok [INFO] [stdout] test tc_validator::tests::test_drop_frame_tenth_minute_is_ok ... ok [INFO] [stdout] test tc_smpte_ranges::tests::test_range_contains_on_boundary ... ok [INFO] [stdout] test tc_validator::tests::test_rule_display ... ok [INFO] [stdout] test tc_subtitle_sync::tests::test_linear_stretch_identity ... ok [INFO] [stdout] test tc_smpte_ranges::tests::test_boundary_display ... ok [INFO] [stdout] test tc_validator::tests::test_hours_out_of_range ... ok [INFO] [stdout] test tc_validator::tests::test_multiple_violations_accumulate ... ok [INFO] [stdout] test tc_validator::tests::test_valid_timecode_no_violations ... ok [INFO] [stdout] test tc_validator::tests::test_seconds_out_of_range ... ok [INFO] [stdout] test tc_validator::tests::test_validate_range_with_violation ... ok [INFO] [stdout] test tc_validator::tests::test_validate_range_all_valid ... ok [INFO] [stdout] test tc_validator::tests::test_violation_display ... ok [INFO] [stdout] test tc_validator::tests::test_within_range_fail ... ok [INFO] [stdout] test tc_validator::tests::test_validate_range_empty_slice ... ok [INFO] [stdout] test tc_validator::tests::test_within_range_pass ... ok [INFO] [stdout] test tc_validator::tests::test_no_rules_produces_no_violations ... ok [INFO] [stdout] test tests::test_frame_count_cache_after_increment ... ok [INFO] [stdout] test tests::test_frame_count_cache_matches_recomputed ... ok [INFO] [stdout] test tests::test_frame_rate_from_info ... ok [INFO] [stdout] test tests::test_framerate_47952_and_120 ... ok [INFO] [stdout] test tests::test_from_string_df ... ok [INFO] [stdout] test tests::test_from_string_invalid_parts ... ok [INFO] [stdout] test tests::test_add_timecodes ... ok [INFO] [stdout] test tests::test_from_string_invalid_too_short ... ok [INFO] [stdout] test tests::test_from_string_ndf ... ok [INFO] [stdout] test tests::test_timecode_increment ... ok [INFO] [stdout] test tests::test_frame_rate ... ok [INFO] [stdout] test tests::test_to_seconds_f64_one_hour_25fps ... ok [INFO] [stdout] test tests::test_to_seconds_f64_pull_down ... ok [INFO] [stdout] test timecode_calculator::tests::test_add_frames_backward ... ok [INFO] [stdout] test timecode_calculator::tests::test_add_frames_wrap_at_24h ... ok [INFO] [stdout] test timecode_calculator::tests::test_add_frames_forward ... ok [INFO] [stdout] test timecode_calculator::tests::test_display_df ... ok [INFO] [stdout] test timecode_calculator::tests::test_display_ndf ... ok [INFO] [stdout] test timecode_calculator::tests::test_duration_from_timecode ... ok [INFO] [stdout] test tests::test_sub_timecodes ... ok [INFO] [stdout] test timecode_calculator::tests::test_duration_to_timecode ... ok [INFO] [stdout] test timecode_calculator::tests::test_frame_count_roundtrip_ndf ... ok [INFO] [stdout] test tests::test_timecode_creation ... ok [INFO] [stdout] test tests::test_ord_timecodes ... ok [INFO] [stdout] test tests::test_add_u32_frames ... ok [INFO] [stdout] test tests::test_timecode_display ... ok [INFO] [stdout] test timecode_calculator::tests::test_from_frame_count_ndf ... ok [INFO] [stdout] test timecode_calculator::tests::test_parse_display_roundtrip ... ok [INFO] [stdout] test timecode_calculator::tests::test_parse_ndf ... ok [INFO] [stdout] test timecode_calculator::tests::test_subtract ... ok [INFO] [stdout] test timecode_calculator::tests::test_parse_df ... ok [INFO] [stdout] test timecode_calculator::tests::test_to_frame_count_ndf ... ok [INFO] [stdout] test timecode_calculator::tests::test_to_frame_count_one_hour ... ok [INFO] [stdout] test timecode_calculator::tests::test_parse_invalid ... ok [INFO] [stdout] test timecode_display::tests::test_comparison_build ... ok [INFO] [stdout] test timecode_display::tests::test_film_format ... ok [INFO] [stdout] test timecode_calculator::tests::test_timecode_value_new ... ok [INFO] [stdout] test timecode_display::tests::test_ebu_always_colon ... ok [INFO] [stdout] test timecode_display::tests::test_parse_display_smpte ... ok [INFO] [stdout] test timecode_display::tests::test_frame_number ... ok [INFO] [stdout] test timecode_event::tests::test_cue_event ... ok [INFO] [stdout] test timecode_display::tests::test_smpte_ndf ... ok [INFO] [stdout] test timecode_event::tests::test_duration_seconds ... ok [INFO] [stdout] test timecode_display::tests::test_feet_frames_35mm ... ok [INFO] [stdout] test timecode_event::tests::test_custom_event ... ok [INFO] [stdout] test timecode_event::tests::test_event_kind_display ... ok [INFO] [stdout] test timecode_event::tests::test_mark_out_returns_range ... ok [INFO] [stdout] test timecode_format::tests::test_drop_frame_separator ... ok [INFO] [stdout] test timecode_event::tests::test_clear_resets_state ... ok [INFO] [stdout] test timecode_format::tests::test_format_frames_feet ... ok [INFO] [stdout] test timecode_format::tests::test_format_frames_seconds ... ok [INFO] [stdout] test timecode_format::tests::test_format_frames_smpte_df ... ok [INFO] [stdout] test timecode_event::tests::test_mark_out_without_mark_in_returns_none ... ok [INFO] [stdout] test timecode_format::tests::test_format_frames_smpte_mixed ... ok [INFO] [stdout] test timecode_format::tests::test_format_enum_separator ... ok [INFO] [stdout] test timecode_format::tests::test_formatter_new_zero_fps_returns_none ... ok [INFO] [stdout] test timecode_format::tests::test_format_frames_frames ... ok [INFO] [stdout] test timecode_format::tests::test_parse_smpte_invalid_minutes ... ok [INFO] [stdout] test timecode_format::tests::test_format_frames_smpte_ndf ... ok [INFO] [stdout] test timecode_format::tests::test_parse_smpte_invalid_too_few_parts ... ok [INFO] [stdout] test timecode_format::tests::test_parse_smpte_valid_colon ... ok [INFO] [stdout] test timecode_event::tests::test_mark_ins_filter ... ok [INFO] [stdout] test timecode_event::tests::test_mark_in_records_event ... ok [INFO] [stdout] test timecode_format::tests::test_parse_smpte_invalid_frames_exceed_fps ... ok [INFO] [stdout] test timecode_event::tests::test_edit_ranges_reconstruction ... ok [INFO] [stdout] test timecode_display::tests::test_milliseconds_format ... ok [INFO] [stdout] test timecode_format::tests::test_parse_smpte_valid_semicolon ... ok [INFO] [stdout] test timecode_generator::tests::test_drop_frame_generator_next_at_minute_boundary ... ok [INFO] [stdout] test timecode_generator::tests::test_generator_starts_at_midnight ... ok [INFO] [stdout] test timecode_generator::tests::test_next_increments ... ok [INFO] [stdout] test timecode_generator::tests::test_next_returns_current_before_increment ... ok [INFO] [stdout] test timecode_generator::tests::test_reset_to_midnight ... ok [INFO] [stdout] test timecode_generator::tests::test_skip_backward_wraps ... ok [INFO] [stdout] test timecode_generator::tests::test_stop_freezes_position ... ok [INFO] [stdout] test timecode_log::tests::test_csv_round_trip ... ok [INFO] [stdout] test timecode_log::tests::test_entries_in_range ... ok [INFO] [stdout] test timecode_log::tests::test_filter_by_level ... ok [INFO] [stdout] test timecode_log::tests::test_filter_by_category ... ok [INFO] [stdout] test timecode_log::tests::test_first_at_or_after ... ok [INFO] [stdout] test timecode_log::tests::test_filter_by_message ... ok [INFO] [stdout] test timecode_log::tests::test_log_clear ... ok [INFO] [stdout] test timecode_generator::tests::test_seek_alias ... ok [INFO] [stdout] test timecode_log::tests::test_log_entry_wall_clock ... ok [INFO] [stdout] test timecode_log::tests::test_log_entry_with_metadata ... ok [INFO] [stdout] test timecode_event::tests::test_event_display ... ok [INFO] [stdout] test timecode_generator::tests::test_reset_to_arbitrary_tc ... ok [INFO] [stdout] test timecode_log::tests::test_to_text_contains_header ... ok [INFO] [stdout] test timecode_overlay::tests::test_burn_in_preset ... ok [INFO] [stdout] test timecode_overlay::tests::test_compute_position_center ... ok [INFO] [stdout] test timecode_overlay::tests::test_compute_position_custom ... ok [INFO] [stdout] test timecode_overlay::tests::test_estimate_text_width ... ok [INFO] [stdout] test timecode_overlay::tests::test_font_size_pixel_height ... ok [INFO] [stdout] test timecode_overlay::tests::test_overlay_stamper ... ok [INFO] [stdout] test timecode_overlay::tests::test_render_overlay_basic ... ok [INFO] [stdout] test timecode_overlay::tests::test_monitoring_preset ... ok [INFO] [stdout] test timecode_generator::tests::test_skip_forward_wraps_midnight ... ok [INFO] [stdout] test timecode_overlay::tests::test_render_overlay_drop_frame_indicator ... ok [INFO] [stdout] test timecode_generator::tests::test_start_resumes_after_stop ... ok [INFO] [stdout] test timecode_generator::tests::test_skip_forward ... ok [INFO] [stdout] test timecode_overlay::tests::test_background_rect ... ok [INFO] [stdout] test timecode_overlay::tests::test_render_overlay_with_field_indicator ... ok [INFO] [stdout] test timecode_overlay::tests::test_render_overlay_with_prefix_and_suffix ... ok [INFO] [stdout] test timecode_overlay::tests::test_render_batch ... ok [INFO] [stdout] test timecode_range::tests::test_contains_frame_inside ... ok [INFO] [stdout] test timecode_overlay::tests::test_compute_position_corners ... ok [INFO] [stdout] test timecode_log::tests::test_log_entry_format_line ... ok [INFO] [stdout] test timecode_log::tests::test_record_and_query ... ok [INFO] [stdout] test timecode_range::tests::test_contains_frame_outside ... ok [INFO] [stdout] test timecode_overlay::tests::test_rgba_blend_over ... ok [INFO] [stdout] test timecode_range::tests::test_duration_frames ... ok [INFO] [stdout] test timecode_overlay::tests::test_render_overlay_no_df_indicator ... ok [INFO] [stdout] test timecode_range::tests::test_list_merge_adjacent ... ok [INFO] [stdout] test timecode_range::tests::test_list_total_frames ... ok [INFO] [stdout] test timecode_range::tests::test_list_merge_overlapping ... ok [INFO] [stdout] test timecode_range::tests::test_new_valid ... ok [INFO] [stdout] test timecode_range::tests::test_new_same_start_end ... ok [INFO] [stdout] test timecode_range::tests::test_new_invalid_returns_none ... ok [INFO] [stdout] test timecode_range::tests::test_overlaps_true ... ok [INFO] [stdout] test timecode_range::tests::test_overlaps_touching ... ok [INFO] [stdout] test vitc::decoder::tests::test_bits_to_u8 ... ok [INFO] [stdout] test timecode_range::tests::test_split_at_boundary_invalid ... ok [INFO] [stdout] test vitc::decoder::tests::test_crc_calculation ... ok [INFO] [stdout] test timecode_range::tests::test_overlaps_adjacent_no_overlap ... ok [INFO] [stdout] test vitc::decoder::tests::test_line_quality_analyzer ... ok [INFO] [stdout] test timecode_range::tests::test_split_at_valid ... ok [INFO] [stdout] test vitc::encoder::tests::test_encoder_creation ... ok [INFO] [stdout] test vitc::encoder::tests::test_line_buffer ... ok [INFO] [stdout] test vitc::encoder::tests::test_pixel_level_adjuster ... ok [INFO] [stdout] test vitc::decoder::tests::test_decoder_creation ... ok [INFO] [stdout] test vitc::encoder::tests::test_user_bits_helper ... ok [INFO] [stdout] test vitc::tests::test_constants ... ok [INFO] [stdout] test vitc::tests::test_video_standard ... ok [INFO] [stdout] test vitc::tests::test_vitc_reader_creation ... ok [INFO] [stdout] test vitc::encoder::tests::test_encode_line ... ok [INFO] [stdout] test vitc::decoder::tests::test_field_detector ... ok [INFO] [stdout] test vitc::encoder::tests::test_crc_calculation ... ok [INFO] [stdout] test vitc::tests::test_vitc_writer_creation ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 577 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stderr] Doc-tests oximedia_timecode [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test src/compare.rs - compare::Timecode::is_earlier_than (line 45) ... ignored [INFO] [stdout] test src/subframe.rs - subframe (line 12) ... ignored [INFO] [stdout] test src/timecode_event.rs - timecode_event (line 14) - compile ... ok [INFO] [stdout] test src/ltc_encoder.rs - ltc_encoder::LtcAudioEncoder (line 170) ... ok [INFO] [stdout] test src/tc_validator.rs - tc_validator::TimecodeValidator (line 100) ... ok [INFO] [stdout] test src/timecode_log.rs - timecode_log (line 15) ... ok [INFO] [stdout] test src/timecode_display.rs - timecode_display::format_timecode (line 128) ... ok [INFO] [stdout] test src/timecode_overlay.rs - timecode_overlay (line 18) ... ok [INFO] [stdout] test src/ltc_parser.rs - ltc_parser::LtcParser (line 92) ... ok [INFO] [stdout] test src/tc_calculator.rs - tc_calculator::TcCalculator (line 62) ... ok [INFO] [stdout] test src/tc_math.rs - tc_math::TcMath (line 133) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 9 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.85s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "86161a4e22f1f85859d47444c093c6ad48f40cc87c8c195f800ce54665beaf72", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "86161a4e22f1f85859d47444c093c6ad48f40cc87c8c195f800ce54665beaf72", kill_on_drop: false }` [INFO] [stdout] 86161a4e22f1f85859d47444c093c6ad48f40cc87c8c195f800ce54665beaf72