mux: single source of truth for the version label (VERSION_LABEL/MUX_APP)
The CLI --version, the MKV muxing/writing-application field, and the FVI generator all derive from one libfreemkv const, so a binary reports the exact same label it stamps into the files it produces — no split-brain where an MKV claims one version and the binary another.
This commit is contained in:
+14
@@ -85,6 +85,20 @@
|
|||||||
//! | E8xxx | Keydb errors (fetch, parse, load) |
|
//! | E8xxx | Keydb errors (fetch, parse, load) |
|
||||||
//! | E9xxx | Stream / mux errors (URL, PES, pipeline) |
|
//! | E9xxx | Stream / mux errors (URL, PES, pipeline) |
|
||||||
|
|
||||||
|
/// Single source of truth for every freemkv version surface.
|
||||||
|
///
|
||||||
|
/// `FREEMKV_VERSION` is the package version, overridable at build time via the
|
||||||
|
/// `FREEMKV_BUILD_LABEL` env (see `build.rs`); `GIT_SUFFIX` is the git short
|
||||||
|
/// hash. The CLI's `--version`, the MKV muxing/writing-application field, and
|
||||||
|
/// the FVI generator tag all derive from these two consts, so a binary reports
|
||||||
|
/// the exact same label it stamps into the files it produces — no split-brain
|
||||||
|
/// where an MKV claims one version and the binary another.
|
||||||
|
pub const VERSION_LABEL: &str = concat!(env!("FREEMKV_VERSION"), env!("GIT_SUFFIX"));
|
||||||
|
|
||||||
|
/// The muxing/writing-application string written into MKV output
|
||||||
|
/// (`"freemkv <version> (g<hash>)"`).
|
||||||
|
pub const MUX_APP: &str = concat!("freemkv ", env!("FREEMKV_VERSION"), env!("GIT_SUFFIX"));
|
||||||
|
|
||||||
pub mod aacs;
|
pub mod aacs;
|
||||||
pub(crate) mod clpi;
|
pub(crate) mod clpi;
|
||||||
pub mod consts;
|
pub mod consts;
|
||||||
|
|||||||
+2
-4
@@ -773,10 +773,8 @@ impl<W: Write + Seek> MkvMuxer<W> {
|
|||||||
}
|
}
|
||||||
// Stamp the freemkv version so any muxed file is traceable to the build
|
// Stamp the freemkv version so any muxed file is traceable to the build
|
||||||
// that produced it (MediaInfo "Writing application"/"library").
|
// that produced it (MediaInfo "Writing application"/"library").
|
||||||
const FREEMKV_MUX_APP: &str =
|
ebml::write_string(&mut writer, ebml::MUXING_APP, crate::MUX_APP)?;
|
||||||
concat!("freemkv ", env!("FREEMKV_VERSION"), env!("GIT_SUFFIX"));
|
ebml::write_string(&mut writer, ebml::WRITING_APP, crate::MUX_APP)?;
|
||||||
ebml::write_string(&mut writer, ebml::MUXING_APP, FREEMKV_MUX_APP)?;
|
|
||||||
ebml::write_string(&mut writer, ebml::WRITING_APP, FREEMKV_MUX_APP)?;
|
|
||||||
if let Some(t) = title {
|
if let Some(t) = title {
|
||||||
ebml::write_string(&mut writer, ebml::TITLE, t)?;
|
ebml::write_string(&mut writer, ebml::TITLE, t)?;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user