mirror of
https://github.com/wader/fq.git
synced 2024-12-20 11:51:58 +03:00
051a70bd4b
All other ranges and slicing uses exclusive end so i think it make sense to make it consistent. Update docs and add additional example for non-byte-aligned field. Also fixes issue showing zero bit ranges as start-NA.
174 lines
18 KiB
Plaintext
174 lines
18 KiB
Plaintext
# ffmpeg -f lavfi -i sine -t 1ms -write_xing 0 -write_id3v2 0 -write_id3v1 0 -f mp3 test.mp3
|
|
# convert -size 4x4 "xc:#000" 4x4.png
|
|
# eyeD3 --encoding=utf16 --add-image=4x4.png:OTHER:test test.mp3
|
|
# fq test.mp3 .headers[0]._bits > utf16-apic
|
|
$ fq -d id3v2 dv utf16-apic
|
|
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: utf16-apic (id3v2) 0x0-0x256 (598)
|
|
| | | header{}: 0x0-0xa (10)
|
|
0x000|49 44 33 |ID3 | magic: "ID3" (valid) 0x0-0x3 (3)
|
|
0x000| 04 | . | version: 4 (valid) 0x3-0x4 (1)
|
|
0x000| 00 | . | revision: 0 0x4-0x5 (1)
|
|
| | | flags{}: 0x5-0x6 (1)
|
|
0x000| 00 | . | unsynchronisation: false 0x5-0x5.1 (0.1)
|
|
0x000| 00 | . | extended_header: false 0x5.1-0x5.2 (0.1)
|
|
0x000| 00 | . | experimental_indicator: false 0x5.2-0x5.3 (0.1)
|
|
0x000| 00 | . | unused: 0 0x5.3-0x6 (0.5)
|
|
0x000| 00 00 04 4c | ...L | size: 588 0x6-0xa (4)
|
|
| | | frames[0:2]: 0xa-0x156 (332)
|
|
| | | [0]{}: frame 0xa-0x12f (293)
|
|
0x000| 41 50 49 43 | APIC | id: "APIC" (Attached picture) 0xa-0xe (4)
|
|
0x000| 00 00| ..| size: 283 0xe-0x12 (4)
|
|
0x010|02 1b |.. |
|
|
| | | flags{}: 0x12-0x14 (2)
|
|
0x010| 00 | . | unused0: 0 0x12-0x12.1 (0.1)
|
|
0x010| 00 | . | tag_alter_preservation: false 0x12.1-0x12.2 (0.1)
|
|
0x010| 00 | . | file_alter_preservation: false 0x12.2-0x12.3 (0.1)
|
|
0x010| 00 | . | read_only: false 0x12.3-0x12.4 (0.1)
|
|
0x010| 00 00 | .. | unused1: 0 0x12.4-0x13.1 (0.5)
|
|
0x010| 00 | . | grouping_identity: false 0x13.1-0x13.2 (0.1)
|
|
0x010| 00 | . | unused2: 0 0x13.2-0x13.4 (0.2)
|
|
0x010| 00 | . | compression: false 0x13.4-0x13.5 (0.1)
|
|
0x010| 00 | . | encryption: false 0x13.5-0x13.6 (0.1)
|
|
0x010| 00 | . | unsync: false 0x13.6-0x13.7 (0.1)
|
|
0x010| 00 | . | data_length_indicator: false 0x13.7-0x14 (0.1)
|
|
0x010| 01 | . | text_encoding: "utf16" (1) 0x14-0x15 (1)
|
|
0x010| 69 6d 61 67 65 2f 70 6e 67 00 | image/png. | mime_type: "image/png" 0x15-0x1f (10)
|
|
0x010| 00| .| picture_type: 0 0x1f-0x20 (1)
|
|
0x020|ff fe 74 00 65 00 73 00 74 00 00 00 |..t.e.s.t... | description: "test" 0x20-0x2c (12)
|
|
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| picture{}: (png) 0x2c-0x12f (259)
|
|
0x020| 89 50 4e 47| .PNG| signature: raw bits (valid) 0x2c-0x34 (8)
|
|
0x030|0d 0a 1a 0a |.... |
|
|
| | | chunks[0:9]: 0x34-0x12f (251)
|
|
| | | [0]{}: chunk 0x34-0x4d (25)
|
|
0x030| 00 00 00 0d | .... | length: 13 0x34-0x38 (4)
|
|
0x030| 49 48 44 52 | IHDR | type: "IHDR" 0x38-0x3c (4)
|
|
0x030| 49 | I | ancillary: false 0x38.3-0x38.4 (0.1)
|
|
0x030| 48 | H | private: false 0x39.3-0x39.4 (0.1)
|
|
0x030| 44 | D | reserved: false 0x3a.3-0x3a.4 (0.1)
|
|
0x030| 52 | R | safe_to_copy: true 0x3b.3-0x3b.4 (0.1)
|
|
0x030| 00 00 00 04| ....| width: 4 0x3c-0x40 (4)
|
|
0x040|00 00 00 04 |.... | height: 4 0x40-0x44 (4)
|
|
0x040| 01 | . | bit_depth: 1 0x44-0x45 (1)
|
|
0x040| 00 | . | color_type: "grayscale" (0) 0x45-0x46 (1)
|
|
0x040| 00 | . | compression_method: "deflate" (0) 0x46-0x47 (1)
|
|
0x040| 00 | . | filter_method: "adaptive_filtering" (0) 0x47-0x48 (1)
|
|
0x040| 00 | . | interlace_method: "none" (0) 0x48-0x49 (1)
|
|
0x040| 81 8a a3 d3 | .... | crc: 0x818aa3d3 (valid) 0x49-0x4d (4)
|
|
| | | [1]{}: chunk 0x4d-0x5d (16)
|
|
0x040| 00 00 00| ...| length: 4 0x4d-0x51 (4)
|
|
0x050|04 |. |
|
|
0x050| 67 41 4d 41 | gAMA | type: "gAMA" 0x51-0x55 (4)
|
|
0x050| 67 | g | ancillary: false 0x51.3-0x51.4 (0.1)
|
|
0x050| 41 | A | private: false 0x52.3-0x52.4 (0.1)
|
|
0x050| 4d | M | reserved: false 0x53.3-0x53.4 (0.1)
|
|
0x050| 41 | A | safe_to_copy: false 0x54.3-0x54.4 (0.1)
|
|
0x050| 00 00 b1 8f | .... | value: 45455 0x55-0x59 (4)
|
|
0x050| 0b fc 61 05 | ..a. | crc: 0xbfc6105 (valid) 0x59-0x5d (4)
|
|
| | | [2]{}: chunk 0x5d-0x89 (44)
|
|
0x050| 00 00 00| ...| length: 32 0x5d-0x61 (4)
|
|
0x060|20 | |
|
|
0x060| 63 48 52 4d | cHRM | type: "cHRM" 0x61-0x65 (4)
|
|
0x060| 63 | c | ancillary: false 0x61.3-0x61.4 (0.1)
|
|
0x060| 48 | H | private: false 0x62.3-0x62.4 (0.1)
|
|
0x060| 52 | R | reserved: true 0x63.3-0x63.4 (0.1)
|
|
0x060| 4d | M | safe_to_copy: false 0x64.3-0x64.4 (0.1)
|
|
0x060| 00 00 7a 26 | ..z& | white_point_x: 31.27 0x65-0x69 (4)
|
|
0x060| 00 00 80 84 | .... | white_point_y: 32.9 0x69-0x6d (4)
|
|
0x060| 00 00 fa| ...| red_x: 64 0x6d-0x71 (4)
|
|
0x070|00 |. |
|
|
0x070| 00 00 80 e8 | .... | red_y: 33 0x71-0x75 (4)
|
|
0x070| 00 00 75 30 | ..u0 | green_x: 30 0x75-0x79 (4)
|
|
0x070| 00 00 ea 60 | ...` | green_y: 60 0x79-0x7d (4)
|
|
0x070| 00 00 3a| ..:| blue_x: 15 0x7d-0x81 (4)
|
|
0x080|98 |. |
|
|
0x080| 00 00 17 70 | ...p | blue_y: 6 0x81-0x85 (4)
|
|
0x080| 9c ba 51 3c | ..Q< | crc: 0x9cba513c (valid) 0x85-0x89 (4)
|
|
| | | [3]{}: chunk 0x89-0x97 (14)
|
|
0x080| 00 00 00 02 | .... | length: 2 0x89-0x8d (4)
|
|
0x080| 62 4b 47| bKG| type: "bKGD" 0x8d-0x91 (4)
|
|
0x090|44 |D |
|
|
0x080| 62 | b | ancillary: false 0x8d.3-0x8d.4 (0.1)
|
|
0x080| 4b | K | private: false 0x8e.3-0x8e.4 (0.1)
|
|
0x080| 47| G| reserved: false 0x8f.3-0x8f.4 (0.1)
|
|
0x090|44 |D | safe_to_copy: false 0x90.3-0x90.4 (0.1)
|
|
0x090| 00 01 | .. | gray: 1 0x91-0x93 (2)
|
|
0x090| dd 8a 13 a4 | .... | crc: 0xdd8a13a4 (valid) 0x93-0x97 (4)
|
|
| | | [4]{}: chunk 0x97-0xaa (19)
|
|
0x090| 00 00 00 07 | .... | length: 7 0x97-0x9b (4)
|
|
0x090| 74 49 4d 45 | tIME | type: "tIME" 0x9b-0x9f (4)
|
|
0x090| 74 | t | ancillary: true 0x9b.3-0x9b.4 (0.1)
|
|
0x090| 49 | I | private: false 0x9c.3-0x9c.4 (0.1)
|
|
0x090| 4d | M | reserved: false 0x9d.3-0x9d.4 (0.1)
|
|
0x090| 45 | E | safe_to_copy: false 0x9e.3-0x9e.4 (0.1)
|
|
0x090| 07| .| data: raw bits 0x9f-0xa6 (7)
|
|
0x0a0|e5 05 14 14 35 24 |....5$ |
|
|
0x0a0| 18 db 42 e2 | ..B. | crc: 0x18db42e2 (valid) 0xa6-0xaa (4)
|
|
| | | [5]{}: chunk 0xaa-0xc1 (23)
|
|
0x0a0| 00 00 00 0b | .... | length: 11 0xaa-0xae (4)
|
|
0x0a0| 49 44| ID| type: "IDAT" 0xae-0xb2 (4)
|
|
0x0b0|41 54 |AT |
|
|
0x0a0| 49 | I | ancillary: false 0xae.3-0xae.4 (0.1)
|
|
0x0a0| 44| D| private: false 0xaf.3-0xaf.4 (0.1)
|
|
0x0b0|41 |A | reserved: false 0xb0.3-0xb0.4 (0.1)
|
|
0x0b0| 54 | T | safe_to_copy: true 0xb1.3-0xb1.4 (0.1)
|
|
0x0b0| 08 d7 63 60 80 00 00 00 08 00 01 | ..c`....... | data: raw bits 0xb2-0xbd (11)
|
|
0x0b0| 2f 20 dd| / .| crc: 0x2f20dd31 (valid) 0xbd-0xc1 (4)
|
|
0x0c0|31 |1 |
|
|
| | | [6]{}: chunk 0xc1-0xf2 (49)
|
|
0x0c0| 00 00 00 25 | ...% | length: 37 0xc1-0xc5 (4)
|
|
0x0c0| 74 45 58 74 | tEXt | type: "tEXt" 0xc5-0xc9 (4)
|
|
0x0c0| 74 | t | ancillary: true 0xc5.3-0xc5.4 (0.1)
|
|
0x0c0| 45 | E | private: false 0xc6.3-0xc6.4 (0.1)
|
|
0x0c0| 58 | X | reserved: true 0xc7.3-0xc7.4 (0.1)
|
|
0x0c0| 74 | t | safe_to_copy: true 0xc8.3-0xc8.4 (0.1)
|
|
0x0c0| 64 61 74 65 3a 63 72| date:cr| keyword: "date:create" 0xc9-0xd5 (12)
|
|
0x0d0|65 61 74 65 00 |eate. |
|
|
0x0d0| 32 30 32 31 2d 30 35 2d 32 30 54| 2021-05-20T| text: "2021-05-20T20:53:36+00:00" 0xd5-0xee (25)
|
|
0x0e0|32 30 3a 35 33 3a 33 36 2b 30 30 3a 30 30 |20:53:36+00:00 |
|
|
0x0e0| 67 53| gS| crc: 0x6753fe7a (valid) 0xee-0xf2 (4)
|
|
0x0f0|fe 7a |.z |
|
|
| | | [7]{}: chunk 0xf2-0x123 (49)
|
|
0x0f0| 00 00 00 25 | ...% | length: 37 0xf2-0xf6 (4)
|
|
0x0f0| 74 45 58 74 | tEXt | type: "tEXt" 0xf6-0xfa (4)
|
|
0x0f0| 74 | t | ancillary: true 0xf6.3-0xf6.4 (0.1)
|
|
0x0f0| 45 | E | private: false 0xf7.3-0xf7.4 (0.1)
|
|
0x0f0| 58 | X | reserved: true 0xf8.3-0xf8.4 (0.1)
|
|
0x0f0| 74 | t | safe_to_copy: true 0xf9.3-0xf9.4 (0.1)
|
|
0x0f0| 64 61 74 65 3a 6d| date:m| keyword: "date:modify" 0xfa-0x106 (12)
|
|
0x100|6f 64 69 66 79 00 |odify. |
|
|
0x100| 32 30 32 31 2d 30 35 2d 32 30| 2021-05-20| text: "2021-05-20T20:53:36+00:00" 0x106-0x11f (25)
|
|
0x110|54 32 30 3a 35 33 3a 33 36 2b 30 30 3a 30 30 |T20:53:36+00:00 |
|
|
0x110| 16| .| crc: 0x160e46c6 (valid) 0x11f-0x123 (4)
|
|
0x120|0e 46 c6 |.F. |
|
|
| | | [8]{}: chunk 0x123-0x12f (12)
|
|
0x120| 00 00 00 00 | .... | length: 0 0x123-0x127 (4)
|
|
0x120| 49 45 4e 44 | IEND | type: "IEND" 0x127-0x12b (4)
|
|
0x120| 49 | I | ancillary: false 0x127.3-0x127.4 (0.1)
|
|
0x120| 45 | E | private: false 0x128.3-0x128.4 (0.1)
|
|
0x120| 4e | N | reserved: false 0x129.3-0x129.4 (0.1)
|
|
0x120| 44 | D | safe_to_copy: false 0x12a.3-0x12a.4 (0.1)
|
|
0x120| ae 42 60 82 | .B`. | crc: 0xae426082 (valid) 0x12b-0x12f (4)
|
|
| | | [1]{}: frame 0x12f-0x156 (39)
|
|
0x120| 54| T| id: "TSSE" (Software/Hardware and settings used for encoding) 0x12f-0x133 (4)
|
|
0x130|53 53 45 |SSE |
|
|
0x130| 00 00 00 1d | .... | size: 29 0x133-0x137 (4)
|
|
| | | flags{}: 0x137-0x139 (2)
|
|
0x130| 00 | . | unused0: 0 0x137-0x137.1 (0.1)
|
|
0x130| 00 | . | tag_alter_preservation: false 0x137.1-0x137.2 (0.1)
|
|
0x130| 00 | . | file_alter_preservation: false 0x137.2-0x137.3 (0.1)
|
|
0x130| 00 | . | read_only: false 0x137.3-0x137.4 (0.1)
|
|
0x130| 00 00 | .. | unused1: 0 0x137.4-0x138.1 (0.5)
|
|
0x130| 00 | . | grouping_identity: false 0x138.1-0x138.2 (0.1)
|
|
0x130| 00 | . | unused2: 0 0x138.2-0x138.4 (0.2)
|
|
0x130| 00 | . | compression: false 0x138.4-0x138.5 (0.1)
|
|
0x130| 00 | . | encryption: false 0x138.5-0x138.6 (0.1)
|
|
0x130| 00 | . | unsync: false 0x138.6-0x138.7 (0.1)
|
|
0x130| 00 | . | data_length_indicator: false 0x138.7-0x139 (0.1)
|
|
0x130| 01 | . | text_encoding: "utf16" (1) 0x139-0x13a (1)
|
|
0x130| ff fe 4c 00 61 00| ..L.a.| text: "Lavf58.76.100" 0x13a-0x156 (28)
|
|
0x140|76 00 66 00 35 00 38 00 2e 00 37 00 36 00 2e 00|v.f.5.8...7.6...|
|
|
0x150|31 00 30 00 30 00 |1.0.0. |
|
|
0x150| 00 00 00 00 00 00 00 00 00 00| ..........| padding: raw bits (all zero) 0x156-0x256 (256)
|
|
0x160|00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00|................|
|
|
* |until 0x255.7 (end) (256) | |
|