Skip to content

Commit e28dc87

Browse files
authored
(MINOR) Removes xmp_write feature and xmp_toolkit (contentauth#461)
xmp read/write now supported natively
1 parent ca3df05 commit e28dc87

File tree

5 files changed

+17
-19
lines changed

5 files changed

+17
-19
lines changed

make_test_images/Cargo.toml

-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ rust-version = "1.73.0"
1010
anyhow = "1.0.40"
1111
c2pa = { path = "../sdk", default-features = false, features = [
1212
"openssl",
13-
"xmp_write",
1413
"unstable_api",
1514
] }
1615
env_logger = "0.10"

sdk/Cargo.toml

-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ add_thumbnails = ["image"]
3030
psxxx_ocsp_stapling_experimental = []
3131
file_io = ["openssl_sign"]
3232
serialize_thumbnails = []
33-
xmp_write = ["xmp_toolkit"]
3433
no_interleaved_io = ["file_io"]
3534
fetch_remote_manifests = []
3635
openssl_sign = ["openssl"]
@@ -137,7 +136,6 @@ image = { version = "0.24.7", default-features = false, features = [
137136
], optional = true }
138137
instant = "0.1.12"
139138
openssl = { version = "0.10.61", features = ["vendored"], optional = true }
140-
xmp_toolkit = { version = "1.7.1", optional = true }
141139

142140
[target.'cfg(target_arch = "wasm32")'.dependencies]
143141
console_log = { version = "1.0.0", features = ["color"] }

sdk/src/asset_handlers/jpeg_io.rs

+14-11
Original file line numberDiff line numberDiff line change
@@ -555,17 +555,20 @@ impl RemoteRefEmbed for JpegIO {
555555
asset_path: &Path,
556556
embed_ref: crate::asset_io::RemoteRefEmbedType,
557557
) -> Result<()> {
558-
match embed_ref {
559-
crate::asset_io::RemoteRefEmbedType::Xmp(manifest_uri) => {
560-
#[cfg(feature = "xmp_write")]
561-
{
562-
crate::embedded_xmp::add_manifest_uri_to_file(asset_path, &manifest_uri)
563-
}
564-
565-
#[cfg(not(feature = "xmp_write"))]
566-
{
567-
Err(crate::error::Error::MissingFeature("xmp_write".to_string()))
568-
}
558+
match &embed_ref {
559+
crate::asset_io::RemoteRefEmbedType::Xmp(_manifest_uri) => {
560+
let mut file = std::fs::File::open(asset_path)?;
561+
let mut temp = Cursor::new(Vec::new());
562+
self.embed_reference_to_stream(&mut file, &mut temp, embed_ref)?;
563+
let mut output = std::fs::OpenOptions::new()
564+
.read(true)
565+
.write(true)
566+
.truncate(true)
567+
.open(asset_path)
568+
.map_err(Error::IoError)?;
569+
temp.set_position(0);
570+
std::io::copy(&mut temp, &mut output).map_err(Error::IoError)?;
571+
Ok(())
569572
}
570573
crate::asset_io::RemoteRefEmbedType::StegoS(_) => Err(Error::UnsupportedType),
571574
crate::asset_io::RemoteRefEmbedType::StegoB(_) => Err(Error::UnsupportedType),

sdk/src/lib.rs

-2
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,6 @@ pub(crate) mod callback_signer;
146146
pub(crate) mod claim;
147147
pub(crate) mod claim_generator_info;
148148
pub(crate) mod cose_validator;
149-
#[cfg(all(feature = "xmp_write", feature = "file_io"))]
150-
pub(crate) mod embedded_xmp;
151149
pub(crate) mod error;
152150
pub(crate) mod hashed_uri;
153151
pub(crate) mod ingredient;

sdk/src/manifest.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1717,7 +1717,7 @@ pub(crate) mod tests {
17171717
);
17181718
}
17191719

1720-
#[cfg(all(feature = "file_io", feature = "xmp_write"))]
1720+
#[cfg(feature = "file_io")]
17211721
#[test]
17221722
fn test_embed_user_label() {
17231723
let temp_dir = tempdir().expect("temp dir");
@@ -1738,7 +1738,7 @@ pub(crate) mod tests {
17381738
);
17391739
}
17401740

1741-
#[cfg(all(feature = "file_io", feature = "xmp_write"))]
1741+
#[cfg(feature = "file_io")]
17421742
#[test]
17431743
fn test_embed_sidecar_user_label() {
17441744
let temp_dir = tempdir().expect("temp dir");
@@ -1947,7 +1947,7 @@ pub(crate) mod tests {
19471947
assert!(manifest_store.validation_status().is_none())
19481948
}
19491949

1950-
#[cfg(all(feature = "file_io", feature = "xmp_write"))]
1950+
#[cfg(feature = "file_io")]
19511951
#[test]
19521952
fn test_embed_sidecar_with_parent_manifest() {
19531953
let temp_dir = tempdir().expect("temp dir");

0 commit comments

Comments
 (0)