diff options
author | gennyble <gen@nyble.dev> | 2023-09-12 04:28:39 -0500 |
---|---|---|
committer | gennyble <gen@nyble.dev> | 2023-09-12 04:28:39 -0500 |
commit | 8f62ded141c9876e219defe98b794ecb3f88f01d (patch) | |
tree | 6d87e065088b8697ed32ba305ac4d90caf1de64d | |
parent | 5cb9f9586b97de062e39b6071936abf3ab523e2b (diff) | |
download | lri-rs-8f62ded141c9876e219defe98b794ecb3f88f01d.tar.gz lri-rs-8f62ded141c9876e219defe98b794ecb3f88f01d.zip |
docs
-rw-r--r-- | NOTES.md | 15 | ||||
-rw-r--r-- | README.md | 47 |
2 files changed, 22 insertions, 40 deletions
diff --git a/NOTES.md b/NOTES.md index c57e4a6..705b09e 100644 --- a/NOTES.md +++ b/NOTES.md @@ -103,4 +103,17 @@ The header is 32 bytes long. and goes as follows: | 8 | header length (32) **OR** message length | | 4 | message length **OR** unknown | | 1 | message type. 0 for `LightHeader` *(as described in lightheader.proto)* or 1 for `view_preferences.proto` | -| 7 | reserved | \ No newline at end of file +| 7 | reserved | + +### ***it's September 12th now and I removed this from the readme. putting it here for safekeeping*** + +[helloavo/Light-L16-Archive](https://github.com/helloavo/Light-L16-Archive): +helloavo archived a lot of files and data related to the camera here and I am +very, very grateful for that. I'm using the `.class` files they ripped from the +APK. I then used quiltflower to decompile the entire directory. I used this +command: `java -jar quiltflower.jar -dgs=1 Light-L16-Archive/APKs/light_camera_decompiled` + +And it's proved useful! In `light/co/camera/proto/LightHeader.java` we can get an idea +of the file header? + +Can we parse the message in the header with the protobuf as described in: [dllu/lri-rs](https://github.com/dllu/lri-rs/blob/main/proto/lightheader.proto)? \ No newline at end of file diff --git a/README.md b/README.md index 6a764e4..02b4d34 100644 --- a/README.md +++ b/README.md @@ -1,46 +1,15 @@ -The Light L16 is a weird little camera with sixteen lens. -It's cheapish now on the 2nd hand market as it's been discontinued. +### LRI File Structure +The file is made up if blocks each with a short header, a protobuf message, and possibly some associated data. -I would like to be able to read the raw LRI files it puts out. They are, however, -proprietary and not described anywhere. This is my effort. - -[helloavo/Light-L16-Archive](https://github.com/helloavo/Light-L16-Archive): -helloavo archived a lot of files and data related to the camera here and I am -very, very grateful for that. I'm using the `.class` files they ripped from the -APK. I then used quiltflower to decompile the entire directory. I used this -command: `java -jar quiltflower.jar -dgs=1 Light-L16-Archive/APKs/light_camera_decompiled` - -And it's proved useful! In `light/co/camera/proto/LightHeader.java` we can get an idea -of the file header? - -Can we parse the message in the header with the protobuf as described in: [dllu/lri-rs](https://github.com/dllu/lri-rs/blob/main/proto/lightheader.proto)? - -### File Header -The LightHeader seems to consist of a header followed be a proto buf message -that then gets appended to it. - -The header is **little endian** - -#### File Header Structure -This is only sometimes the case. It seems that "header length (32)" field is sometimes a lot *a lot* bigger. in that case you have the sensor data. perhaps then the message length is some inidication to protobuf data? perhaps it's nothing? padding? +Things seem to be **little endian** +#### Block Header The header is 32 bytes long. and goes as follows: | bytes | meaning | | ----- | ------- | | 4 | Magic Number: "LELR" | -| 8 | header length (32) + protobuf message length | -| 8 | header length (32) | -| 4 | message length | -| 1 | type (?) | +| 8 | block length | +| 8 | protobuf message offset from the start of the block | +| 4 | protobuf message length | +| 1 | message type. 0 for `LightHeader` *(as described in lightheader.proto)*, 1 for `view_preferences.proto`, or 2 for gps data | | 7 | reserved | - -and then follows the message which already has a known length - -## Image Sensors -Listen in sensor_type.proto of lri-rs - -| Sensor | Resolutions | Output | -| - | - | - | -| AR0835HS | 8 Mp: 3264 × 2448, 6 Mp: 3264 × 1836 | 10−bit Raw, 10−to−8 bit A−Law, 8/6−bit DPCM | -| AR1335 | 4208 × 3120 | DPCM: 10-8-10, 10-6-10 | -| IMX386 | 4032 x 3024 | ? | \ No newline at end of file |