Revert "Distinguish a failed key source from one with no entry"
This reverts commit 22a3e3fd01.
This commit is contained in:
@@ -77,11 +77,6 @@ pub enum KeyNode {
|
|||||||
MatchedDisc,
|
MatchedDisc,
|
||||||
/// The source had no entry for this disc.
|
/// The source had no entry for this disc.
|
||||||
NoEntry,
|
NoEntry,
|
||||||
/// The source FAILED — it errored rather than reporting no entry. Distinct
|
|
||||||
/// from [`Self::NoEntry`]: an unreachable key server or an unreadable keydb is
|
|
||||||
/// a fixable condition, whereas "this disc is not in the database" is not, and
|
|
||||||
/// collapsing the two told the front-end the wrong cause.
|
|
||||||
SourceFailed,
|
|
||||||
/// Pre-decrypted unit keys were found.
|
/// Pre-decrypted unit keys were found.
|
||||||
FoundUnitKeys,
|
FoundUnitKeys,
|
||||||
/// A VUK was found.
|
/// A VUK was found.
|
||||||
|
|||||||
+3
-13
@@ -350,25 +350,15 @@ pub fn resolve_and_apply_traced(
|
|||||||
outcome: KeyOutcome::NoKey,
|
outcome: KeyOutcome::NoKey,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// No key from this source either way, but WHY differs and the caller
|
// Empty (no key here) or a source failure — both are "no key from
|
||||||
// renders it: a source that errored is a fixable condition (server
|
// this source"; move on to the next.
|
||||||
// unreachable, keydb unreadable), while "no entry for this disc" is
|
Ok(_) | Err(_) => {
|
||||||
// not. Recording both as NoEntry lost that distinction — the same one
|
|
||||||
// drive_unit_keys / drive_fmts_indexes were refactored to preserve.
|
|
||||||
Ok(_) => {
|
|
||||||
trace.keys.push(KeyStep {
|
trace.keys.push(KeyStep {
|
||||||
who,
|
who,
|
||||||
path: vec![KeyNode::NoEntry],
|
path: vec![KeyNode::NoEntry],
|
||||||
outcome: KeyOutcome::NoKey,
|
outcome: KeyOutcome::NoKey,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
Err(_) => {
|
|
||||||
trace.keys.push(KeyStep {
|
|
||||||
who,
|
|
||||||
path: vec![KeyNode::SourceFailed],
|
|
||||||
outcome: KeyOutcome::NoKey,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
(false, trace)
|
(false, trace)
|
||||||
|
|||||||
@@ -690,13 +690,12 @@ fn dts_core_duration_ns(data: &[u8]) -> u64 {
|
|||||||
const DTS_PCMBLOCK_SAMPLES: u32 = 32;
|
const DTS_PCMBLOCK_SAMPLES: u32 = 32;
|
||||||
const DTS_SUBBAND_SAMPLES: u32 = 8;
|
const DTS_SUBBAND_SAMPLES: u32 = 8;
|
||||||
/// Number of LEGAL `AMODE` (channel-arrangement) codes. The 6-bit AMODE field
|
/// Number of LEGAL `AMODE` (channel-arrangement) codes. The 6-bit AMODE field
|
||||||
/// (ETSI TS 102 114 §5.3.1) defines 16 channel arrangements, codes 0-15, of
|
/// (ETSI TS 102 114 §5.3.1) has 16 defined channel arrangements, codes 0-15;
|
||||||
/// which 10-15 are the 6/7/8-channel layouts; codes 16-63 are
|
/// only 16-63 are reserved/user-defined and undecodable. ffmpeg's
|
||||||
/// reserved/user-defined and undecodable. A frame is dropped only when
|
/// `ff_dca_channels[16] = {1,2,2,2,2,3,3,4,4,5,6,6,6,7,8,8}` confirms all 16 are
|
||||||
/// `audio_mode >= DTS_AMODE_COUNT` (i.e. a truly reserved 16-63 code); dropping a
|
/// decodable — codes 10-15 are the 6/7/8-channel layouts. A frame is dropped
|
||||||
/// legal 10-15 multichannel core would silence recoverable audio. The per-AMODE
|
/// only when `audio_mode >= DTS_AMODE_COUNT` (i.e. a truly reserved 16-63 code);
|
||||||
/// channel counts live in `DTS_AMODE_CH` in `mux/mp4/audio.rs`, cross-checked
|
/// dropping a legal 10-15 multichannel core would silence recoverable audio.
|
||||||
/// against the speaker masks in `DTS_AMODE_LAYOUT` by an invariant test.
|
|
||||||
const DTS_AMODE_COUNT: u32 = 16;
|
const DTS_AMODE_COUNT: u32 = 16;
|
||||||
const DTS_LFE_FLAG_INVALID: u32 = 3;
|
const DTS_LFE_FLAG_INVALID: u32 = 3;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user