From 2a55a7048fc1839ce3329e73d1ef9d5cec8ed51a Mon Sep 17 00:00:00 2001 From: DavidVentura Date: Thu, 1 Feb 2024 18:06:05 +0100 Subject: [PATCH] add note on packet loss --- README.md | 15 +++++++++++++++ pics/packet_loss_bad.jpg | Bin 0 -> 14500 bytes pics/packet_loss_good.jpg | Bin 0 -> 14441 bytes 3 files changed, 15 insertions(+) create mode 100644 pics/packet_loss_bad.jpg create mode 100644 pics/packet_loss_good.jpg diff --git a/README.md b/README.md index 80ad979..995de48 100644 --- a/README.md +++ b/README.md @@ -149,6 +149,21 @@ Every 8-10s There are some other strings in the APK ending in `-$$` which decode to other ips/hostnames. +## Other stuff + +These little cameras have quite some packet loss - I _tried_ to deal with it by splicing around it on the JPEG payloads, but it's probably wrong, I expected artifacts like this: + +![](pics/packet_loss_good.jpg?raw=true) + +but most of the time got: + +![](pics/packet_loss_bad.jpg?raw=true) + +which _moves_ the rest of the image, causing more visual noise. + +For now, images on which there was packet loss get skipped. The algorithm to "fix" packet loss can be enabled as an option. + + ## Reversing The interesting implementation is in `libvdp.so`, part of the apk bundle. diff --git a/pics/packet_loss_bad.jpg b/pics/packet_loss_bad.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2a624fa6c67e649543164f4bd48c09785cc887b5 GIT binary patch literal 14500 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 literal 0 HcmV?d00001 diff --git a/pics/packet_loss_good.jpg b/pics/packet_loss_good.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c498f966bb48bb8f103aebfbd8b903cf35aeb899 GIT binary patch literal 14441 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 literal 0 HcmV?d00001