tracers: Update to pcap-file 2

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2117>
This commit is contained in:
Sebastian Dröge 2025-03-03 17:03:58 +02:00
parent 370c162a06
commit 8b59d76b52
3 changed files with 89 additions and 106 deletions

150
Cargo.lock generated
View file

@ -133,7 +133,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -175,7 +175,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -197,7 +197,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -214,7 +214,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "644dd749086bf3771a2fbc5f256fdb982d53f011c7d5d560304eafeecebce79d"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -897,7 +897,7 @@ dependencies = [
"log",
"prettyplease",
"proc-macro2",
"quote 1.0.38",
"quote",
"regex",
"rustc-hash 1.1.0",
"shlex",
@ -986,6 +986,15 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495"
[[package]]
name = "byteorder_slice"
version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b294e30387378958e8bf8f4242131b930ea615ff81e8cac2440cea0a6013190"
dependencies = [
"byteorder",
]
[[package]]
name = "bytes"
version = "1.10.0"
@ -1195,7 +1204,7 @@ checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed"
dependencies = [
"heck 0.5.0",
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -1480,7 +1489,7 @@ dependencies = [
"fnv",
"ident_case",
"proc-macro2",
"quote 1.0.38",
"quote",
"strsim",
"syn 2.0.98",
]
@ -1492,7 +1501,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
dependencies = [
"darling_core",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -1600,12 +1609,13 @@ dependencies = [
[[package]]
name = "derive-into-owned"
version = "0.1.0"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "576fce04d31d592013a5887ba8d9c3830adff329e5096d7e1eb5e8e61262ca62"
checksum = "2c9d94d81e3819a7b06a8638f448bc6339371ca9b6076a99d4a43eece3c4c923"
dependencies = [
"quote 0.3.15",
"syn 0.11.11",
"proc-macro2",
"quote",
"syn 1.0.109",
]
[[package]]
@ -1625,7 +1635,7 @@ checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8"
dependencies = [
"darling",
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -1664,7 +1674,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -1720,7 +1730,7 @@ checksum = "b066b81018300fdce40f71c4db355a102699324af96fad28f25ab1b5f87de066"
dependencies = [
"ebml-iterable-specification",
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 1.0.109",
]
@ -1799,7 +1809,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -2070,7 +2080,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -2350,7 +2360,7 @@ dependencies = [
"heck 0.5.0",
"proc-macro-crate",
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -3868,7 +3878,7 @@ source = "git+https://github.com/gtk-rs/gtk4-rs?branch=main#6b5b7553ba7dd9c963ad
dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -4466,7 +4476,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -4565,7 +4575,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -5307,7 +5317,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -5438,7 +5448,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -5637,11 +5647,11 @@ dependencies = [
[[package]]
name = "pcap-file"
version = "1.1.1"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ad13fed1a83120159aea81b265074f21d753d157dd16b10cc3790ecba40a341"
checksum = "1fc1f139757b058f9f37b76c48501799d12c9aa0aa4c0d4c980b062ee925d1b2"
dependencies = [
"byteorder",
"byteorder_slice",
"derive-into-owned",
"thiserror 1.0.69",
]
@ -5697,7 +5707,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6e859e6e5bd50440ab63c47e3ebabc90f26251f7c73c3d3e837b74a1cc3fa67"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -5861,7 +5871,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
]
[[package]]
@ -5872,7 +5882,7 @@ checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802"
dependencies = [
"proc-macro-error-attr2",
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -5900,7 +5910,7 @@ version = "1.0.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a65f2e60fbf1063868558d69c6beacf412dc755f9fc020f514b7955fc914fe30"
dependencies = [
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -5944,7 +5954,7 @@ dependencies = [
"anyhow",
"itertools 0.12.1",
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -6097,12 +6107,6 @@ dependencies = [
"windows-sys 0.59.0",
]
[[package]]
name = "quote"
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
[[package]]
name = "quote"
version = "1.0.38"
@ -6893,7 +6897,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -6966,7 +6970,7 @@ checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e"
dependencies = [
"darling",
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -6991,7 +6995,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -7098,7 +7102,7 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95890f873bec569a0362c235787f3aca6e1e887302ba4840839bcc6459c42da6"
dependencies = [
"quote 1.0.38",
"quote",
]
[[package]]
@ -7305,17 +7309,6 @@ dependencies = [
"symphonia-metadata",
]
[[package]]
name = "syn"
version = "0.11.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
dependencies = [
"quote 0.3.15",
"synom",
"unicode-xid",
]
[[package]]
name = "syn"
version = "1.0.109"
@ -7323,7 +7316,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"unicode-ident",
]
@ -7334,7 +7327,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"unicode-ident",
]
@ -7353,15 +7346,6 @@ dependencies = [
"futures-core",
]
[[package]]
name = "synom"
version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
dependencies = [
"unicode-xid",
]
[[package]]
name = "synstructure"
version = "0.13.1"
@ -7369,7 +7353,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -7491,7 +7475,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "888d0c3c6db53c0fdab160d2ed5e12ba745383d3e85813f2ea0f2b1475ab553f"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -7503,7 +7487,7 @@ checksum = "eb39a1199760f44d7e11b6644b620d35abe7e012fa34288abae9e5aa95a243da"
dependencies = [
"proc-macro-error2",
"proc-macro2",
"quote 1.0.38",
"quote",
"regex",
"syn 2.0.98",
]
@ -7545,7 +7529,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -7556,7 +7540,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -7663,7 +7647,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -7854,7 +7838,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -8021,12 +8005,6 @@ version = "0.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
[[package]]
name = "unicode-xid"
version = "0.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
[[package]]
name = "untrusted"
version = "0.9.0"
@ -8271,7 +8249,7 @@ dependencies = [
"bumpalo",
"log",
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
"wasm-bindgen-shared",
]
@ -8295,7 +8273,7 @@ version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407"
dependencies = [
"quote 1.0.38",
"quote",
"wasm-bindgen-macro-support",
]
@ -8306,7 +8284,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
@ -8492,7 +8470,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -8503,7 +8481,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -8800,7 +8778,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
"synstructure",
]
@ -8831,7 +8809,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -8842,7 +8820,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "76331675d372f91bf8d17e13afbd5fe639200b73d01f0fc748bb059f9cca2db7"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]
@ -8862,7 +8840,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
"synstructure",
]
@ -8891,6 +8869,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6"
dependencies = [
"proc-macro2",
"quote 1.0.38",
"quote",
"syn 2.0.98",
]

View file

@ -13,7 +13,7 @@ gst.workspace = true
anyhow = "1"
regex = "1"
atomic_refcell = "0.1"
pcap-file = "1.1.1"
pcap-file = "2"
etherparse = "0.16.0"
chrono = "0.4.35"
walkdir = "2"

View file

@ -42,7 +42,7 @@
*
* Since: plugins-rs-0.13.0
*/
use pcap_file::pcap;
use pcap_file::pcap::{self, RawPcapPacket};
use etherparse::PacketBuilder;
use gst::glib::Properties;
@ -113,17 +113,23 @@ impl Writer {
anyhow::bail!("Maximum size of packet is {MAX_PACKET_LEN}");
}
let pts = buffer.pts().unwrap_or(gst::ClockTime::from_seconds(0));
// Store capture time in microsecond precision because that's what wireshark uses
// by default and the precision is not signalled in the packet headers.
let ts_sec = pts.seconds() as u32;
let ts_frac = (pts.useconds() % 1_000_000) as u32;
let map = buffer.map_readable()?;
if matches!(self.protocol, FakeProtocol::None) {
self.writer.write(
0,
buffer
.pts()
.unwrap_or(gst::ClockTime::from_seconds(0))
.nseconds() as u32,
map.as_slice(),
map.len() as u32,
)?;
let packet = RawPcapPacket {
ts_sec,
ts_frac,
incl_len: map.len() as u32,
orig_len: map.len() as u32,
data: std::borrow::Cow::Borrowed(map.as_slice()),
};
self.writer.write_raw_packet(&packet)?;
return Ok(());
}
@ -139,15 +145,14 @@ impl Writer {
self.buf.clear();
builder.write(&mut self.buf, map.as_slice()).unwrap();
self.writer.write(
0,
buffer
.pts()
.unwrap_or(gst::ClockTime::from_seconds(0))
.nseconds() as u32,
&self.buf,
size as u32,
)?;
let packet = RawPcapPacket {
ts_sec,
ts_frac,
incl_len: size as u32,
orig_len: size as u32,
data: std::borrow::Cow::Borrowed(&self.buf),
};
self.writer.write_raw_packet(&packet)?;
Ok(())
}