1
1
mirror of https://github.com/wader/fq.git synced 2024-12-20 11:51:58 +03:00
fq/format/png/testdata/4x4a.fqtest
Mattias Wadman 051a70bd4b interp: Change bit ranges to use exclusive end
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.
2023-10-20 15:37:26 +02:00

113 lines
11 KiB
Plaintext

# ffmpeg -y -f lavfi -i testsrc=size=4x4:r=1 -t 2s 4x4a.apng
$ fq -d png dv 4x4a.apng
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: 4x4a.apng (png) 0x0-0xf4 (244)
0x00|89 50 4e 47 0d 0a 1a 0a |.PNG.... | signature: raw bits (valid) 0x0-0x8 (8)
| | | chunks[0:8]: 0x8-0xf4 (236)
| | | [0]{}: chunk 0x8-0x21 (25)
0x00| 00 00 00 0d | .... | length: 13 0x8-0xc (4)
0x00| 49 48 44 52| IHDR| type: "IHDR" 0xc-0x10 (4)
0x00| 49 | I | ancillary: false 0xc.3-0xc.4 (0.1)
0x00| 48 | H | private: false 0xd.3-0xd.4 (0.1)
0x00| 44 | D | reserved: false 0xe.3-0xe.4 (0.1)
0x00| 52| R| safe_to_copy: true 0xf.3-0xf.4 (0.1)
0x10|00 00 00 04 |.... | width: 4 0x10-0x14 (4)
0x10| 00 00 00 04 | .... | height: 4 0x14-0x18 (4)
0x10| 08 | . | bit_depth: 8 0x18-0x19 (1)
0x10| 02 | . | color_type: "rgb" (2) 0x19-0x1a (1)
0x10| 00 | . | compression_method: "deflate" (0) 0x1a-0x1b (1)
0x10| 00 | . | filter_method: "adaptive_filtering" (0) 0x1b-0x1c (1)
0x10| 00 | . | interlace_method: "none" (0) 0x1c-0x1d (1)
0x10| 26 93 09| &..| crc: 0x26930929 (valid) 0x1d-0x21 (4)
0x20|29 |) |
| | | [1]{}: chunk 0x21-0x36 (21)
0x20| 00 00 00 09 | .... | length: 9 0x21-0x25 (4)
0x20| 70 48 59 73 | pHYs | type: "pHYs" 0x25-0x29 (4)
0x20| 70 | p | ancillary: true 0x25.3-0x25.4 (0.1)
0x20| 48 | H | private: false 0x26.3-0x26.4 (0.1)
0x20| 59 | Y | reserved: true 0x27.3-0x27.4 (0.1)
0x20| 73 | s | safe_to_copy: true 0x28.3-0x28.4 (0.1)
0x20| 00 00 00 01 | .... | x_pixels_per_unit: 1 0x29-0x2d (4)
0x20| 00 00 00| ...| y_pixels_per_unit: 1 0x2d-0x31 (4)
0x30|01 |. |
0x30| 00 | . | unit: 0 0x31-0x32 (1)
0x30| 4f 25 c4 d6 | O%.. | crc: 0x4f25c4d6 (valid) 0x32-0x36 (4)
| | | [2]{}: chunk 0x36-0x4a (20)
0x30| 00 00 00 08 | .... | length: 8 0x36-0x3a (4)
0x30| 61 63 54 4c | acTL | type: "acTL" 0x3a-0x3e (4)
0x30| 61 | a | ancillary: false 0x3a.3-0x3a.4 (0.1)
0x30| 63 | c | private: false 0x3b.3-0x3b.4 (0.1)
0x30| 54 | T | reserved: true 0x3c.3-0x3c.4 (0.1)
0x30| 4c | L | safe_to_copy: false 0x3d.3-0x3d.4 (0.1)
0x30| 00 00| ..| num_frames: 2 0x3e-0x42 (4)
0x40|00 02 |.. |
0x40| 00 00 00 01 | .... | num_plays: 1 0x42-0x46 (4)
0x40| 84 8a a3 e6 | .... | crc: 0x848aa3e6 (valid) 0x46-0x4a (4)
| | | [3]{}: chunk 0x4a-0x70 (38)
0x40| 00 00 00 1a | .... | length: 26 0x4a-0x4e (4)
0x40| 66 63| fc| type: "fcTL" 0x4e-0x52 (4)
0x50|54 4c |TL |
0x40| 66 | f | ancillary: false 0x4e.3-0x4e.4 (0.1)
0x40| 63| c| private: false 0x4f.3-0x4f.4 (0.1)
0x50|54 |T | reserved: true 0x50.3-0x50.4 (0.1)
0x50| 4c | L | safe_to_copy: false 0x51.3-0x51.4 (0.1)
0x50| 00 00 00 00 | .... | sequence_number: 0 0x52-0x56 (4)
0x50| 00 00 00 04 | .... | width: 4 0x56-0x5a (4)
0x50| 00 00 00 04 | .... | height: 4 0x5a-0x5e (4)
0x50| 00 00| ..| x_offset: 0 0x5e-0x62 (4)
0x60|00 00 |.. |
0x60| 00 00 00 00 | .... | y_offset: 0 0x62-0x66 (4)
0x60| 00 01 | .. | delay_num: 1 0x66-0x68 (2)
0x60| 00 01 | .. | delay_sep: 1 0x68-0x6a (2)
0x60| 00 | . | dispose_op: "none" (0) 0x6a-0x6b (1)
0x60| 00 | . | blend_op: "source" (0) 0x6b-0x6c (1)
0x60| 5b 27 ec 00| ['..| crc: 0x5b27ec00 (valid) 0x6c-0x70 (4)
| | | [4]{}: chunk 0x70-0x9e (46)
0x70|00 00 00 22 |..." | length: 34 0x70-0x74 (4)
0x70| 49 44 41 54 | IDAT | type: "IDAT" 0x74-0x78 (4)
0x70| 49 | I | ancillary: false 0x74.3-0x74.4 (0.1)
0x70| 44 | D | private: false 0x75.3-0x75.4 (0.1)
0x70| 41 | A | reserved: false 0x76.3-0x76.4 (0.1)
0x70| 54 | T | safe_to_copy: true 0x77.3-0x77.4 (0.1)
0x70| 78 9c 63 60 60 60 f8 0f| x.c```..| data: raw bits 0x78-0x9a (34)
0x80|c6 ff 41 14 88 05 64 fc 87 08 22 71 80 44 3d 88|..A...d..."q.D=.|
0x90|f1 bf 81 e1 3f 00 c8 76 13 ed |....?..v.. |
0x90| 2f 76 8a 2a | /v.* | crc: 0x2f768a2a (valid) 0x9a-0x9e (4)
| | | [5]{}: chunk 0x9e-0xc4 (38)
0x90| 00 00| ..| length: 26 0x9e-0xa2 (4)
0xa0|00 1a |.. |
0xa0| 66 63 54 4c | fcTL | type: "fcTL" 0xa2-0xa6 (4)
0xa0| 66 | f | ancillary: false 0xa2.3-0xa2.4 (0.1)
0xa0| 63 | c | private: false 0xa3.3-0xa3.4 (0.1)
0xa0| 54 | T | reserved: true 0xa4.3-0xa4.4 (0.1)
0xa0| 4c | L | safe_to_copy: false 0xa5.3-0xa5.4 (0.1)
0xa0| 00 00 00 01 | .... | sequence_number: 1 0xa6-0xaa (4)
0xa0| 00 00 00 04 | .... | width: 4 0xaa-0xae (4)
0xa0| 00 00| ..| height: 1 0xae-0xb2 (4)
0xb0|00 01 |.. |
0xb0| 00 00 00 00 | .... | x_offset: 0 0xb2-0xb6 (4)
0xb0| 00 00 00 03 | .... | y_offset: 3 0xb6-0xba (4)
0xb0| 00 01 | .. | delay_num: 1 0xba-0xbc (2)
0xb0| 00 01 | .. | delay_sep: 1 0xbc-0xbe (2)
0xb0| 00 | . | dispose_op: "none" (0) 0xbe-0xbf (1)
0xb0| 00| .| blend_op: "source" (0) 0xbf-0xc0 (1)
0xc0|c2 3b a2 c2 |.;.. | crc: 0xc23ba2c2 (valid) 0xc0-0xc4 (4)
| | | [6]{}: chunk 0xc4-0xe8 (36)
0xc0| 00 00 00 18 | .... | length: 24 0xc4-0xc8 (4)
0xc0| 66 64 41 54 | fdAT | type: "fdAT" 0xc8-0xcc (4)
0xc0| 66 | f | ancillary: false 0xc8.3-0xc8.4 (0.1)
0xc0| 64 | d | private: false 0xc9.3-0xc9.4 (0.1)
0xc0| 41 | A | reserved: false 0xca.3-0xca.4 (0.1)
0xc0| 54 | T | safe_to_copy: true 0xcb.3-0xcb.4 (0.1)
0xc0| 00 00 00 02| ....| sequence_number: 2 0xcc-0xd0 (4)
0xd0|78 9c 63 f8 ff 9f 81 e1 7f 03 10 ff 67 a8 07 00|x.c.........g...| data: raw bits 0xd0-0xe0 (16)
0xe0| 7b f5 c3 3d | {..= | crc: 0x7bf5c33d (valid) 0xe4-0xe8 (4)
| | | [7]{}: chunk 0xe8-0xf4 (12)
0xe0| 00 00 00 00 | .... | length: 0 0xe8-0xec (4)
0xe0| 49 45 4e 44| IEND| type: "IEND" 0xec-0xf0 (4)
0xe0| 49 | I | ancillary: false 0xec.3-0xec.4 (0.1)
0xe0| 45 | E | private: false 0xed.3-0xed.4 (0.1)
0xe0| 4e | N | reserved: false 0xee.3-0xee.4 (0.1)
0xe0| 44| D| safe_to_copy: false 0xef.3-0xef.4 (0.1)
0xf0|ae 42 60 82| |.B`.| | crc: 0xae426082 (valid) 0xf0-0xf4 (4)
0xe0|29 e6 05 fb |)... | gap0: raw bits 0xe0-0xe4 (4)