1
1
mirror of https://github.com/wader/fq.git synced 2025-01-03 19:19:43 +03:00

interp: dump: Show field name for compound values in arrays

mp3: Remove one level of struct for granales
dump: Makes it a bit easier to understand array of arrays/structs.
avro_ocf: Rename ocf.go -> avro_ocr.go to have same name of source file as format
pcap,pcapng: Rename tcp flow struct to tcp_connection, makes more sense i think
mp4: Add ISOBMFF to format description
This commit is contained in:
Mattias Wadman 2022-04-21 17:31:34 +02:00
parent 8dc2fdea34
commit 21ad628add
34 changed files with 1211 additions and 1276 deletions

View File

@ -501,13 +501,19 @@
<text x="656" y="192">{</text> <text x="656" y="192">{</text>
<text x="664" y="192">}</text> <text x="664" y="192">}</text>
<text x="672" y="192">:</text> <text x="672" y="192">:</text>
<text x="688" y="192">(</text> <text x="688" y="192">h</text>
<text x="696" y="192">i</text> <text x="696" y="192">e</text>
<text x="704" y="192">d</text> <text x="704" y="192">a</text>
<text x="712" y="192">3</text> <text x="712" y="192">d</text>
<text x="720" y="192">v</text> <text x="720" y="192">e</text>
<text x="728" y="192">2</text> <text x="728" y="192">r</text>
<text x="736" y="192">)</text> <text x="744" y="192">(</text>
<text x="752" y="192">i</text>
<text x="760" y="192">d</text>
<text x="768" y="192">3</text>
<text x="776" y="192">v</text>
<text x="784" y="192">2</text>
<text x="792" y="192">)</text>
<text x="0" y="208" style="fill: #bbbb00">0</text> <text x="0" y="208" style="fill: #bbbb00">0</text>
<text x="8" y="208" style="fill: #bbbb00">x</text> <text x="8" y="208" style="fill: #bbbb00">x</text>
<text x="16" y="208" style="fill: #bbbb00">0</text> <text x="16" y="208" style="fill: #bbbb00">0</text>

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View File

@ -1,4 +1,4 @@
<svg viewBox="0 0 880 160" width="880" height="160" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg viewBox="0 0 912 160" width="912" height="160" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<style> <style>
rect { shape-rendering: crispEdges; } rect { shape-rendering: crispEdges; }
text { text {
@ -157,6 +157,9 @@
<text x="856" y="16">{</text> <text x="856" y="16">{</text>
<text x="864" y="16">}</text> <text x="864" y="16">}</text>
<text x="872" y="16">:</text> <text x="872" y="16">:</text>
<text x="888" y="16">b</text>
<text x="896" y="16">o</text>
<text x="904" y="16">x</text>
<text x="0" y="32" style="fill: #bbbb00">0</text> <text x="0" y="32" style="fill: #bbbb00">0</text>
<text x="8" y="32" style="fill: #bbbb00">x</text> <text x="8" y="32" style="fill: #bbbb00">x</text>
<text x="16" y="32" style="fill: #bbbb00">d</text> <text x="16" y="32" style="fill: #bbbb00">d</text>

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -1,4 +1,4 @@
<svg viewBox="0 0 880 224" width="880" height="224" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg viewBox="0 0 912 224" width="912" height="224" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<style> <style>
rect { shape-rendering: crispEdges; } rect { shape-rendering: crispEdges; }
text { text {
@ -159,6 +159,9 @@
<text x="856" y="16">{</text> <text x="856" y="16">{</text>
<text x="864" y="16">}</text> <text x="864" y="16">}</text>
<text x="872" y="16">:</text> <text x="872" y="16">:</text>
<text x="888" y="16">b</text>
<text x="896" y="16">o</text>
<text x="904" y="16">x</text>
<text x="0" y="32" style="fill: #bbbb00">0</text> <text x="0" y="32" style="fill: #bbbb00">0</text>
<text x="8" y="32" style="fill: #bbbb00">x</text> <text x="8" y="32" style="fill: #bbbb00">x</text>
<text x="16" y="32" style="fill: #bbbb00">d</text> <text x="16" y="32" style="fill: #bbbb00">d</text>
@ -339,6 +342,11 @@
<text x="624" y="144">{</text> <text x="624" y="144">{</text>
<text x="632" y="144">}</text> <text x="632" y="144">}</text>
<text x="640" y="144">:</text> <text x="640" y="144">:</text>
<text x="656" y="144">e</text>
<text x="664" y="144">n</text>
<text x="672" y="144">t</text>
<text x="680" y="144">r</text>
<text x="688" y="144">y</text>
<text x="0" y="160" style="fill: #bbbb00">0</text> <text x="0" y="160" style="fill: #bbbb00">0</text>
<text x="8" y="160" style="fill: #bbbb00">x</text> <text x="8" y="160" style="fill: #bbbb00">x</text>
<text x="16" y="160" style="fill: #bbbb00">d</text> <text x="16" y="160" style="fill: #bbbb00">d</text>

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -61,7 +61,7 @@
|[`matroska`](#matroska) |Matroska&nbsp;file |<sub>`aac_frame` `av1_ccr` `av1_frame` `avc_au` `avc_dcr` `flac_frame` `flac_metadatablocks` `hevc_au` `hevc_dcr` `image` `mp3_frame` `mpeg_asc` `mpeg_pes_packet` `mpeg_spu` `opus_packet` `vorbis_packet` `vp8_frame` `vp9_cfm` `vp9_frame`</sub>| |[`matroska`](#matroska) |Matroska&nbsp;file |<sub>`aac_frame` `av1_ccr` `av1_frame` `avc_au` `avc_dcr` `flac_frame` `flac_metadatablocks` `hevc_au` `hevc_dcr` `image` `mp3_frame` `mpeg_asc` `mpeg_pes_packet` `mpeg_spu` `opus_packet` `vorbis_packet` `vp8_frame` `vp9_cfm` `vp9_frame`</sub>|
|`mp3` |MP3&nbsp;file |<sub>`id3v2` `id3v1` `id3v11` `apev2` `mp3_frame`</sub>| |`mp3` |MP3&nbsp;file |<sub>`id3v2` `id3v1` `id3v11` `apev2` `mp3_frame`</sub>|
|`mp3_frame` |MPEG&nbsp;audio&nbsp;layer&nbsp;3&nbsp;frame |<sub>`xing`</sub>| |`mp3_frame` |MPEG&nbsp;audio&nbsp;layer&nbsp;3&nbsp;frame |<sub>`xing`</sub>|
|[`mp4`](#mp4) |MPEG-4&nbsp;file&nbsp;and&nbsp;similar |<sub>`aac_frame` `av1_ccr` `av1_frame` `flac_frame` `flac_metadatablocks` `id3v2` `image` `jpeg` `mp3_frame` `avc_au` `avc_dcr` `mpeg_es` `hevc_au` `hevc_dcr` `mpeg_pes_packet` `opus_packet` `protobuf_widevine` `pssh_playready` `vorbis_packet` `vp9_frame` `vpx_ccr` `icc_profile`</sub>| |[`mp4`](#mp4) |ISOBMFF&nbsp;MPEG-4&nbsp;part&nbsp;12&nbsp;and&nbsp;similar |<sub>`aac_frame` `av1_ccr` `av1_frame` `flac_frame` `flac_metadatablocks` `id3v2` `image` `jpeg` `mp3_frame` `avc_au` `avc_dcr` `mpeg_es` `hevc_au` `hevc_dcr` `mpeg_pes_packet` `opus_packet` `protobuf_widevine` `pssh_playready` `vorbis_packet` `vp9_frame` `vpx_ccr` `icc_profile`</sub>|
|`mpeg_asc` |MPEG-4&nbsp;Audio&nbsp;Specific&nbsp;Config |<sub></sub>| |`mpeg_asc` |MPEG-4&nbsp;Audio&nbsp;Specific&nbsp;Config |<sub></sub>|
|`mpeg_es` |MPEG&nbsp;Elementary&nbsp;Stream |<sub>`mpeg_asc` `vorbis_packet`</sub>| |`mpeg_es` |MPEG&nbsp;Elementary&nbsp;Stream |<sub>`mpeg_asc` `vorbis_packet`</sub>|
|`mpeg_pes` |MPEG&nbsp;Packetized&nbsp;elementary&nbsp;stream |<sub>`mpeg_pes_packet` `mpeg_spu`</sub>| |`mpeg_pes` |MPEG&nbsp;Packetized&nbsp;elementary&nbsp;stream |<sub>`mpeg_pes_packet` `mpeg_spu`</sub>|

View File

@ -1,7 +1,7 @@
# ssl_test.pcap from https://www.cloudshark.org/captures/a9718e5fdb28 # ssl_test.pcap from https://www.cloudshark.org/captures/a9718e5fdb28
$ fq '.tcp_connections | d' flow_missing_synack.pcap $ fq '.tcp_connections | d' flow_missing_synack.pcap
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0:8]: |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0:8]:
| | | [0]{}: | | | [0]{}: tcp_connection
| | | source_ip: "192.168.1.4" | | | source_ip: "192.168.1.4"
| | | source_port: 2061 | | | source_port: 2061
| | | destination_ip: "192.168.1.3" | | | destination_ip: "192.168.1.3"
@ -12,7 +12,7 @@ $ fq '.tcp_connections | d' flow_missing_synack.pcap
* |until 0x177.7 (end) (376) | | * |until 0x177.7 (end) (376) | |
0x0000|16 03 01 00 35 02 00 00 31 03 01 50 83 9c 9f e3|....5...1..P....| server_stream: raw bits 0x0000|16 03 01 00 35 02 00 00 31 03 01 50 83 9c 9f e3|....5...1..P....| server_stream: raw bits
* |until 0x42b.7 (end) (1068) | | * |until 0x42b.7 (end) (1068) | |
| | | [1]{}: | | | [1]{}: tcp_connection
| | | source_ip: "192.168.1.4" | | | source_ip: "192.168.1.4"
| | | source_port: 2068 | | | source_port: 2068
| | | destination_ip: "192.168.1.3" | | | destination_ip: "192.168.1.3"
@ -23,7 +23,7 @@ $ fq '.tcp_connections | d' flow_missing_synack.pcap
* |until 0x177.7 (end) (376) | | * |until 0x177.7 (end) (376) | |
0x0000|16 03 01 00 35 02 00 00 31 03 01 50 83 9c a5 e5|....5...1..P....| server_stream: raw bits 0x0000|16 03 01 00 35 02 00 00 31 03 01 50 83 9c a5 e5|....5...1..P....| server_stream: raw bits
* |until 0x42b.7 (end) (1068) | | * |until 0x42b.7 (end) (1068) | |
| | | [2]{}: | | | [2]{}: tcp_connection
| | | source_ip: "192.168.1.4" | | | source_ip: "192.168.1.4"
| | | source_port: 2070 | | | source_port: 2070
| | | destination_ip: "192.168.1.3" | | | destination_ip: "192.168.1.3"
@ -34,7 +34,7 @@ $ fq '.tcp_connections | d' flow_missing_synack.pcap
* |until 0x2ad.7 (end) (686) | | * |until 0x2ad.7 (end) (686) | |
0x0000|16 03 01 00 35 02 00 00 31 03 01 50 83 9c a8 b2|....5...1..P....| server_stream: raw bits 0x0000|16 03 01 00 35 02 00 00 31 03 01 50 83 9c a8 b2|....5...1..P....| server_stream: raw bits
* |until 0x53c.7 (end) (1341) | | * |until 0x53c.7 (end) (1341) | |
| | | [3]{}: | | | [3]{}: tcp_connection
| | | source_ip: "192.168.1.4" | | | source_ip: "192.168.1.4"
| | | source_port: 2071 | | | source_port: 2071
| | | destination_ip: "192.168.1.3" | | | destination_ip: "192.168.1.3"
@ -45,7 +45,7 @@ $ fq '.tcp_connections | d' flow_missing_synack.pcap
* |until 0x2df.7 (end) (736) | | * |until 0x2df.7 (end) (736) | |
0x0000|16 03 01 00 51 02 00 00 4d 03 01 50 83 9c a8 fc|....Q...M..P....| server_stream: raw bits 0x0000|16 03 01 00 51 02 00 00 4d 03 01 50 83 9c a8 fc|....Q...M..P....| server_stream: raw bits
* |until 0x1b7.7 (end) (440) | | * |until 0x1b7.7 (end) (440) | |
| | | [4]{}: | | | [4]{}: tcp_connection
| | | source_ip: "192.168.1.4" | | | source_ip: "192.168.1.4"
| | | source_port: 2072 | | | source_port: 2072
| | | destination_ip: "192.168.1.3" | | | destination_ip: "192.168.1.3"
@ -56,7 +56,7 @@ $ fq '.tcp_connections | d' flow_missing_synack.pcap
* |until 0x2fd.7 (end) (766) | | * |until 0x2fd.7 (end) (766) | |
0x0000|16 03 01 00 51 02 00 00 4d 03 01 50 83 9c a8 d8|....Q...M..P....| server_stream: raw bits 0x0000|16 03 01 00 51 02 00 00 4d 03 01 50 83 9c a8 d8|....Q...M..P....| server_stream: raw bits
* |until 0x1b7.7 (end) (440) | | * |until 0x1b7.7 (end) (440) | |
| | | [5]{}: | | | [5]{}: tcp_connection
| | | source_ip: "192.168.1.4" | | | source_ip: "192.168.1.4"
| | | source_port: 2073 | | | source_port: 2073
| | | destination_ip: "192.168.1.3" | | | destination_ip: "192.168.1.3"
@ -67,7 +67,7 @@ $ fq '.tcp_connections | d' flow_missing_synack.pcap
* |until 0x2fd.7 (end) (766) | | * |until 0x2fd.7 (end) (766) | |
0x0000|16 03 01 00 51 02 00 00 4d 03 01 50 83 9c b2 45|....Q...M..P...E| server_stream: raw bits 0x0000|16 03 01 00 51 02 00 00 4d 03 01 50 83 9c b2 45|....Q...M..P...E| server_stream: raw bits
* |until 0x2d73.7 (end) (11636) | | * |until 0x2d73.7 (end) (11636) | |
| | | [6]{}: | | | [6]{}: tcp_connection
| | | source_ip: "192.168.1.4" | | | source_ip: "192.168.1.4"
| | | source_port: 2078 | | | source_port: 2078
| | | destination_ip: "192.168.1.3" | | | destination_ip: "192.168.1.3"
@ -78,7 +78,7 @@ $ fq '.tcp_connections | d' flow_missing_synack.pcap
* |until 0x38c.7 (end) (909) | | * |until 0x38c.7 (end) (909) | |
0x0000|16 03 01 00 51 02 00 00 4d 03 01 50 83 9d 7c ac|....Q...M..P..|.| server_stream: raw bits 0x0000|16 03 01 00 51 02 00 00 4d 03 01 50 83 9d 7c ac|....Q...M..P..|.| server_stream: raw bits
* |until 0x2d5.7 (end) (726) | | * |until 0x2d5.7 (end) (726) | |
| | | [7]{}: | | | [7]{}: tcp_connection
| | | source_ip: "192.168.1.4" | | | source_ip: "192.168.1.4"
| | | source_port: 2085 | | | source_port: 2085
| | | destination_ip: "192.168.1.3" | | | destination_ip: "192.168.1.3"

View File

@ -371,8 +371,7 @@ $ fq -d matroska dv /mp3.mkv
0x230| 00 | . | private_bits: 0 0x236.1-0x236.5 (0.5) 0x230| 00 | . | private_bits: 0 0x236.1-0x236.5 (0.5)
0x230| 00 0a | .. | share0: 0 0x236.6-0x237.1 (0.4) 0x230| 00 0a | .. | share0: 0 0x236.6-0x237.1 (0.4)
| | | granules[0:2]: 0x237.2-0x245.7 (14.6) | | | granules[0:2]: 0x237.2-0x245.7 (14.6)
| | | [0]{}: granule 0x237.2-0x23e.4 (7.3) | | | [0][0:1]: granule 0x237.2-0x23e.4 (7.3)
| | | channels[0:1]: 0x237.2-0x23e.4 (7.3)
| | | [0]{}: channel 0x237.2-0x23e.4 (7.3) | | | [0]{}: channel 0x237.2-0x23e.4 (7.3)
0x230| 0a 2c | ., | part2_3_length: 651 0x237.2-0x238.5 (1.4) 0x230| 0a 2c | ., | part2_3_length: 651 0x237.2-0x238.5 (1.4)
0x230| 2c 43 | ,C | big_values: 33 0x238.6-0x239.6 (1.1) 0x230| 2c 43 | ,C | big_values: 33 0x238.6-0x239.6 (1.1)
@ -389,8 +388,7 @@ $ fq -d matroska dv /mp3.mkv
0x230| 01 | . | preflag: 0 0x23e.2-0x23e.2 (0.1) 0x230| 01 | . | preflag: 0 0x23e.2-0x23e.2 (0.1)
0x230| 01 | . | scalefac_scale: 0 0x23e.3-0x23e.3 (0.1) 0x230| 01 | . | scalefac_scale: 0 0x23e.3-0x23e.3 (0.1)
0x230| 01 | . | count1table_select: 0 0x23e.4-0x23e.4 (0.1) 0x230| 01 | . | count1table_select: 0 0x23e.4-0x23e.4 (0.1)
| | | [1]{}: granule 0x23e.5-0x245.7 (7.3) | | | [1][0:1]: granule 0x23e.5-0x245.7 (7.3)
| | | channels[0:1]: 0x23e.5-0x245.7 (7.3)
| | | [0]{}: channel 0x23e.5-0x245.7 (7.3) | | | [0]{}: channel 0x23e.5-0x245.7 (7.3)
0x230| 01 81| ..| part2_3_length: 770 0x23e.5-0x240 (1.4) 0x230| 01 81| ..| part2_3_length: 770 0x23e.5-0x240 (1.4)
0x240|15 |. | 0x240|15 |. |
@ -446,8 +444,7 @@ $ fq -d matroska dv /mp3.mkv
0x300| 82 | . | private_bits: 0 0x30d.1-0x30d.5 (0.5) 0x300| 82 | . | private_bits: 0 0x30d.1-0x30d.5 (0.5)
0x300| 82 0a | .. | share0: 8 0x30d.6-0x30e.1 (0.4) 0x300| 82 0a | .. | share0: 8 0x30d.6-0x30e.1 (0.4)
| | | granules[0:2]: 0x30e.2-0x31c.7 (14.6) | | | granules[0:2]: 0x30e.2-0x31c.7 (14.6)
| | | [0]{}: granule 0x30e.2-0x315.4 (7.3) | | | [0][0:1]: granule 0x30e.2-0x315.4 (7.3)
| | | channels[0:1]: 0x30e.2-0x315.4 (7.3)
| | | [0]{}: channel 0x30e.2-0x315.4 (7.3) | | | [0]{}: channel 0x30e.2-0x315.4 (7.3)
0x300| 0a 60| .`| part2_3_length: 664 0x30e.2-0x30f.5 (1.4) 0x300| 0a 60| .`| part2_3_length: 664 0x30e.2-0x30f.5 (1.4)
0x300| 60| `| big_values: 16 0x30f.6-0x310.6 (1.1) 0x300| 60| `| big_values: 16 0x30f.6-0x310.6 (1.1)
@ -465,8 +462,7 @@ $ fq -d matroska dv /mp3.mkv
0x310| 01 | . | preflag: 0 0x315.2-0x315.2 (0.1) 0x310| 01 | . | preflag: 0 0x315.2-0x315.2 (0.1)
0x310| 01 | . | scalefac_scale: 0 0x315.3-0x315.3 (0.1) 0x310| 01 | . | scalefac_scale: 0 0x315.3-0x315.3 (0.1)
0x310| 01 | . | count1table_select: 0 0x315.4-0x315.4 (0.1) 0x310| 01 | . | count1table_select: 0 0x315.4-0x315.4 (0.1)
| | | [1]{}: granule 0x315.5-0x31c.7 (7.3) | | | [1][0:1]: granule 0x315.5-0x31c.7 (7.3)
| | | channels[0:1]: 0x315.5-0x31c.7 (7.3)
| | | [0]{}: channel 0x315.5-0x31c.7 (7.3) | | | [0]{}: channel 0x315.5-0x31c.7 (7.3)
0x310| 01 59 04 | .Y. | part2_3_length: 690 0x315.5-0x317 (1.4) 0x310| 01 59 04 | .Y. | part2_3_length: 690 0x315.5-0x317 (1.4)
0x310| 04 a1 | .. | big_values: 18 0x317.1-0x318.1 (1.1) 0x310| 04 a1 | .. | big_values: 18 0x317.1-0x318.1 (1.1)
@ -527,8 +523,7 @@ $ fq -d matroska dv /mp3.mkv
0x3e0| 80 | . | private_bits: 0 0x3ee.1-0x3ee.5 (0.5) 0x3e0| 80 | . | private_bits: 0 0x3ee.1-0x3ee.5 (0.5)
0x3e0| 80 0d| ..| share0: 0 0x3ee.6-0x3ef.1 (0.4) 0x3e0| 80 0d| ..| share0: 0 0x3ee.6-0x3ef.1 (0.4)
| | | granules[0:2]: 0x3ef.2-0x3fd.7 (14.6) | | | granules[0:2]: 0x3ef.2-0x3fd.7 (14.6)
| | | [0]{}: granule 0x3ef.2-0x3f6.4 (7.3) | | | [0][0:1]: granule 0x3ef.2-0x3f6.4 (7.3)
| | | channels[0:1]: 0x3ef.2-0x3f6.4 (7.3)
| | | [0]{}: channel 0x3ef.2-0x3f6.4 (7.3) | | | [0]{}: channel 0x3ef.2-0x3f6.4 (7.3)
0x3e0| 0d| .| part2_3_length: 889 0x3ef.2-0x3f0.5 (1.4) 0x3e0| 0d| .| part2_3_length: 889 0x3ef.2-0x3f0.5 (1.4)
0x3f0|e4 |. | 0x3f0|e4 |. |
@ -546,8 +541,7 @@ $ fq -d matroska dv /mp3.mkv
0x3f0| 91 | . | preflag: 0 0x3f6.2-0x3f6.2 (0.1) 0x3f0| 91 | . | preflag: 0 0x3f6.2-0x3f6.2 (0.1)
0x3f0| 91 | . | scalefac_scale: 1 0x3f6.3-0x3f6.3 (0.1) 0x3f0| 91 | . | scalefac_scale: 1 0x3f6.3-0x3f6.3 (0.1)
0x3f0| 91 | . | count1table_select: 0 0x3f6.4-0x3f6.4 (0.1) 0x3f0| 91 | . | count1table_select: 0 0x3f6.4-0x3f6.4 (0.1)
| | | [1]{}: granule 0x3f6.5-0x3fd.7 (7.3) | | | [1][0:1]: granule 0x3f6.5-0x3fd.7 (7.3)
| | | channels[0:1]: 0x3f6.5-0x3fd.7 (7.3)
| | | [0]{}: channel 0x3f6.5-0x3fd.7 (7.3) | | | [0]{}: channel 0x3f6.5-0x3fd.7 (7.3)
0x3f0| 91 30 8d | .0. | part2_3_length: 609 0x3f6.5-0x3f8 (1.4) 0x3f0| 91 30 8d | .0. | part2_3_length: 609 0x3f6.5-0x3f8 (1.4)
0x3f0| 8d a3 | .. | big_values: 54 0x3f8.1-0x3f9.1 (1.1) 0x3f0| 8d a3 | .. | big_values: 54 0x3f8.1-0x3f9.1 (1.1)

View File

@ -56,8 +56,7 @@ $ fq -d mp3 dv /header-zeros-frames.mp3
0x030| 00 | . | private_bits: 0 0x35.1-0x35.5 (0.5) 0x030| 00 | . | private_bits: 0 0x35.1-0x35.5 (0.5)
0x030| 00 0a | .. | share0: 0 0x35.6-0x36.1 (0.4) 0x030| 00 0a | .. | share0: 0 0x35.6-0x36.1 (0.4)
| | | granules[0:2]: 0x36.2-0x44.7 (14.6) | | | granules[0:2]: 0x36.2-0x44.7 (14.6)
| | | [0]{}: granule 0x36.2-0x3d.4 (7.3) | | | [0][0:1]: granule 0x36.2-0x3d.4 (7.3)
| | | channels[0:1]: 0x36.2-0x3d.4 (7.3)
| | | [0]{}: channel 0x36.2-0x3d.4 (7.3) | | | [0]{}: channel 0x36.2-0x3d.4 (7.3)
0x030| 0a 2c | ., | part2_3_length: 651 0x36.2-0x37.5 (1.4) 0x030| 0a 2c | ., | part2_3_length: 651 0x36.2-0x37.5 (1.4)
0x030| 2c 43 | ,C | big_values: 33 0x37.6-0x38.6 (1.1) 0x030| 2c 43 | ,C | big_values: 33 0x37.6-0x38.6 (1.1)
@ -74,8 +73,7 @@ $ fq -d mp3 dv /header-zeros-frames.mp3
0x030| 01 | . | preflag: 0 0x3d.2-0x3d.2 (0.1) 0x030| 01 | . | preflag: 0 0x3d.2-0x3d.2 (0.1)
0x030| 01 | . | scalefac_scale: 0 0x3d.3-0x3d.3 (0.1) 0x030| 01 | . | scalefac_scale: 0 0x3d.3-0x3d.3 (0.1)
0x030| 01 | . | count1table_select: 0 0x3d.4-0x3d.4 (0.1) 0x030| 01 | . | count1table_select: 0 0x3d.4-0x3d.4 (0.1)
| | | [1]{}: granule 0x3d.5-0x44.7 (7.3) | | | [1][0:1]: granule 0x3d.5-0x44.7 (7.3)
| | | channels[0:1]: 0x3d.5-0x44.7 (7.3)
| | | [0]{}: channel 0x3d.5-0x44.7 (7.3) | | | [0]{}: channel 0x3d.5-0x44.7 (7.3)
0x030| 01 80 93| ...| part2_3_length: 769 0x3d.5-0x3f (1.4) 0x030| 01 80 93| ...| part2_3_length: 769 0x3d.5-0x3f (1.4)
0x030| 93| .| big_values: 77 0x3f.1-0x40.1 (1.1) 0x030| 93| .| big_values: 77 0x3f.1-0x40.1 (1.1)

View File

@ -73,8 +73,7 @@ $ fq -d mp3 dv /headerfooter.mp3
0x040| 00 | . | private_bits: 0 0x42.1-0x42.5 (0.5) 0x040| 00 | . | private_bits: 0 0x42.1-0x42.5 (0.5)
0x040| 00 09 | .. | share0: 0 0x42.6-0x43.1 (0.4) 0x040| 00 09 | .. | share0: 0 0x42.6-0x43.1 (0.4)
| | | granules[0:2]: 0x43.2-0x51.7 (14.6) | | | granules[0:2]: 0x43.2-0x51.7 (14.6)
| | | [0]{}: granule 0x43.2-0x4a.4 (7.3) | | | [0][0:1]: granule 0x43.2-0x4a.4 (7.3)
| | | channels[0:1]: 0x43.2-0x4a.4 (7.3)
| | | [0]{}: channel 0x43.2-0x4a.4 (7.3) | | | [0]{}: channel 0x43.2-0x4a.4 (7.3)
0x040| 09 bc | .. | part2_3_length: 623 0x43.2-0x44.5 (1.4) 0x040| 09 bc | .. | part2_3_length: 623 0x43.2-0x44.5 (1.4)
0x040| bc 33 | .3 | big_values: 25 0x44.6-0x45.6 (1.1) 0x040| bc 33 | .3 | big_values: 25 0x44.6-0x45.6 (1.1)
@ -89,8 +88,7 @@ $ fq -d mp3 dv /headerfooter.mp3
0x040| 01 | . | preflag: 0 0x4a.2-0x4a.2 (0.1) 0x040| 01 | . | preflag: 0 0x4a.2-0x4a.2 (0.1)
0x040| 01 | . | scalefac_scale: 0 0x4a.3-0x4a.3 (0.1) 0x040| 01 | . | scalefac_scale: 0 0x4a.3-0x4a.3 (0.1)
0x040| 01 | . | count1table_select: 0 0x4a.4-0x4a.4 (0.1) 0x040| 01 | . | count1table_select: 0 0x4a.4-0x4a.4 (0.1)
| | | [1]{}: granule 0x4a.5-0x51.7 (7.3) | | | [1][0:1]: granule 0x4a.5-0x51.7 (7.3)
| | | channels[0:1]: 0x4a.5-0x51.7 (7.3)
| | | [0]{}: channel 0x4a.5-0x51.7 (7.3) | | | [0]{}: channel 0x4a.5-0x51.7 (7.3)
0x040| 01 4a 86 | .J. | part2_3_length: 661 0x4a.5-0x4c (1.4) 0x040| 01 4a 86 | .J. | part2_3_length: 661 0x4a.5-0x4c (1.4)
0x040| 86 ab | .. | big_values: 26 0x4c.1-0x4d.1 (1.1) 0x040| 86 ab | .. | big_values: 26 0x4c.1-0x4d.1 (1.1)
@ -132,8 +130,7 @@ $ fq -d mp3 dv /headerfooter.mp3
0x110| 03 | . | private_bits: 0 0x112.1-0x112.5 (0.5) 0x110| 03 | . | private_bits: 0 0x112.1-0x112.5 (0.5)
0x110| 03 c0 | .. | share0: 15 0x112.6-0x113.1 (0.4) 0x110| 03 c0 | .. | share0: 15 0x112.6-0x113.1 (0.4)
| | | granules[0:2]: 0x113.2-0x121.7 (14.6) | | | granules[0:2]: 0x113.2-0x121.7 (14.6)
| | | [0]{}: granule 0x113.2-0x11a.4 (7.3) | | | [0][0:1]: granule 0x113.2-0x11a.4 (7.3)
| | | channels[0:1]: 0x113.2-0x11a.4 (7.3)
| | | [0]{}: channel 0x113.2-0x11a.4 (7.3) | | | [0]{}: channel 0x113.2-0x11a.4 (7.3)
0x110| c0 00 | .. | part2_3_length: 0 0x113.2-0x114.5 (1.4) 0x110| c0 00 | .. | part2_3_length: 0 0x113.2-0x114.5 (1.4)
0x110| 00 01 | .. | big_values: 0 0x114.6-0x115.6 (1.1) 0x110| 00 01 | .. | big_values: 0 0x114.6-0x115.6 (1.1)
@ -148,8 +145,7 @@ $ fq -d mp3 dv /headerfooter.mp3
0x110| 20 | | preflag: 1 0x11a.2-0x11a.2 (0.1) 0x110| 20 | | preflag: 1 0x11a.2-0x11a.2 (0.1)
0x110| 20 | | scalefac_scale: 0 0x11a.3-0x11a.3 (0.1) 0x110| 20 | | scalefac_scale: 0 0x11a.3-0x11a.3 (0.1)
0x110| 20 | | count1table_select: 0 0x11a.4-0x11a.4 (0.1) 0x110| 20 | | count1table_select: 0 0x11a.4-0x11a.4 (0.1)
| | | [1]{}: granule 0x11a.5-0x121.7 (7.3) | | | [1][0:1]: granule 0x11a.5-0x121.7 (7.3)
| | | channels[0:1]: 0x11a.5-0x121.7 (7.3)
| | | [0]{}: channel 0x11a.5-0x121.7 (7.3) | | | [0]{}: channel 0x11a.5-0x121.7 (7.3)
0x110| 20 00 00 | .. | part2_3_length: 0 0x11a.5-0x11c (1.4) 0x110| 20 00 00 | .. | part2_3_length: 0 0x11a.5-0x11c (1.4)
0x110| 00 34 | .4 | big_values: 0 0x11c.1-0x11d.1 (1.1) 0x110| 00 34 | .4 | big_values: 0 0x11c.1-0x11d.1 (1.1)

View File

@ -78,8 +78,7 @@ $ fq -d mp3 dv /test.mp3
0x040| 00 | . | share0: 0 0x42.4-0x42.7 (0.4) 0x040| 00 | . | share0: 0 0x42.4-0x42.7 (0.4)
0x040| 00 | . | share1: 0 0x43-0x43.3 (0.4) 0x040| 00 | . | share1: 0 0x43-0x43.3 (0.4)
| | | granules[0:2]: 0x43.4-0x60.7 (29.4) | | | granules[0:2]: 0x43.4-0x60.7 (29.4)
| | | [0]{}: granule 0x43.4-0x52.1 (14.6) | | | [0][0:2]: granule 0x43.4-0x52.1 (14.6)
| | | channels[0:2]: 0x43.4-0x52.1 (14.6)
| | | [0]{}: channel 0x43.4-0x4a.6 (7.3) | | | [0]{}: channel 0x43.4-0x4a.6 (7.3)
0x040| 00 00 | .. | part2_3_length: 0 0x43.4-0x44.7 (1.4) 0x040| 00 00 | .. | part2_3_length: 0 0x43.4-0x44.7 (1.4)
0x040| 00 00 | .. | big_values: 0 0x45-0x46 (1.1) 0x040| 00 00 | .. | big_values: 0 0x45-0x46 (1.1)
@ -109,8 +108,7 @@ $ fq -d mp3 dv /test.mp3
0x050| 00 | . | preflag: 0 0x51.7-0x51.7 (0.1) 0x050| 00 | . | preflag: 0 0x51.7-0x51.7 (0.1)
0x050| 00 | . | scalefac_scale: 0 0x52-0x52 (0.1) 0x050| 00 | . | scalefac_scale: 0 0x52-0x52 (0.1)
0x050| 00 | . | count1table_select: 0 0x52.1-0x52.1 (0.1) 0x050| 00 | . | count1table_select: 0 0x52.1-0x52.1 (0.1)
| | | [1]{}: granule 0x52.2-0x60.7 (14.6) | | | [1][0:2]: granule 0x52.2-0x60.7 (14.6)
| | | channels[0:2]: 0x52.2-0x60.7 (14.6)
| | | [0]{}: channel 0x52.2-0x59.4 (7.3) | | | [0]{}: channel 0x52.2-0x59.4 (7.3)
0x050| 00 00 | .. | part2_3_length: 0 0x52.2-0x53.5 (1.4) 0x050| 00 00 | .. | part2_3_length: 0 0x52.2-0x53.5 (1.4)
0x050| 00 00 | .. | big_values: 0 0x53.6-0x54.6 (1.1) 0x050| 00 00 | .. | big_values: 0 0x53.6-0x54.6 (1.1)
@ -299,8 +297,7 @@ $ fq -d mp3 dv /test.mp3
0x110| 00 | . | share0: 0 0x112.4-0x112.7 (0.4) 0x110| 00 | . | share0: 0 0x112.4-0x112.7 (0.4)
0x110| 02 | . | share1: 0 0x113-0x113.3 (0.4) 0x110| 02 | . | share1: 0 0x113-0x113.3 (0.4)
| | | granules[0:2]: 0x113.4-0x130.7 (29.4) | | | granules[0:2]: 0x113.4-0x130.7 (29.4)
| | | [0]{}: granule 0x113.4-0x122.1 (14.6) | | | [0][0:2]: granule 0x113.4-0x122.1 (14.6)
| | | channels[0:2]: 0x113.4-0x122.1 (14.6)
| | | [0]{}: channel 0x113.4-0x11a.6 (7.3) | | | [0]{}: channel 0x113.4-0x11a.6 (7.3)
0x110| 02 6b | .k | part2_3_length: 619 0x113.4-0x114.7 (1.4) 0x110| 02 6b | .k | part2_3_length: 619 0x113.4-0x114.7 (1.4)
0x110| 0b ce | .. | big_values: 23 0x115-0x116 (1.1) 0x110| 0b ce | .. | big_values: 23 0x115-0x116 (1.1)
@ -334,8 +331,7 @@ $ fq -d mp3 dv /test.mp3
0x120| 01 | . | preflag: 1 0x121.7-0x121.7 (0.1) 0x120| 01 | . | preflag: 1 0x121.7-0x121.7 (0.1)
0x120| 18 | . | scalefac_scale: 0 0x122-0x122 (0.1) 0x120| 18 | . | scalefac_scale: 0 0x122-0x122 (0.1)
0x120| 18 | . | count1table_select: 0 0x122.1-0x122.1 (0.1) 0x120| 18 | . | count1table_select: 0 0x122.1-0x122.1 (0.1)
| | | [1]{}: granule 0x122.2-0x130.7 (14.6) | | | [1][0:2]: granule 0x122.2-0x130.7 (14.6)
| | | channels[0:2]: 0x122.2-0x130.7 (14.6)
| | | [0]{}: channel 0x122.2-0x129.4 (7.3) | | | [0]{}: channel 0x122.2-0x129.4 (7.3)
0x120| 18 c9 | .. | part2_3_length: 1586 0x122.2-0x123.5 (1.4) 0x120| 18 c9 | .. | part2_3_length: 1586 0x122.2-0x123.5 (1.4)
0x120| c9 99 | .. | big_values: 204 0x123.6-0x124.6 (1.1) 0x120| c9 99 | .. | big_values: 204 0x123.6-0x124.6 (1.1)
@ -396,8 +392,7 @@ $ fq -d mp3 dv /test.mp3
0x2b0| 8f | . | share0: 15 0x2b3.4-0x2b3.7 (0.4) 0x2b0| 8f | . | share0: 15 0x2b3.4-0x2b3.7 (0.4)
0x2b0| f3 | . | share1: 15 0x2b4-0x2b4.3 (0.4) 0x2b0| f3 | . | share1: 15 0x2b4-0x2b4.3 (0.4)
| | | granules[0:2]: 0x2b4.4-0x2d1.7 (29.4) | | | granules[0:2]: 0x2b4.4-0x2d1.7 (29.4)
| | | [0]{}: granule 0x2b4.4-0x2c3.1 (14.6) | | | [0][0:2]: granule 0x2b4.4-0x2c3.1 (14.6)
| | | channels[0:2]: 0x2b4.4-0x2c3.1 (14.6)
| | | [0]{}: channel 0x2b4.4-0x2bb.6 (7.3) | | | [0]{}: channel 0x2b4.4-0x2bb.6 (7.3)
0x2b0| f3 19 | .. | part2_3_length: 793 0x2b4.4-0x2b5.7 (1.4) 0x2b0| f3 19 | .. | part2_3_length: 793 0x2b4.4-0x2b5.7 (1.4)
0x2b0| 1f c8 | .. | big_values: 63 0x2b6-0x2b7 (1.1) 0x2b0| 1f c8 | .. | big_values: 63 0x2b6-0x2b7 (1.1)
@ -430,8 +425,7 @@ $ fq -d mp3 dv /test.mp3
0x2c0| 01 | . | preflag: 1 0x2c2.7-0x2c2.7 (0.1) 0x2c0| 01 | . | preflag: 1 0x2c2.7-0x2c2.7 (0.1)
0x2c0| 00 | . | scalefac_scale: 0 0x2c3-0x2c3 (0.1) 0x2c0| 00 | . | scalefac_scale: 0 0x2c3-0x2c3 (0.1)
0x2c0| 00 | . | count1table_select: 0 0x2c3.1-0x2c3.1 (0.1) 0x2c0| 00 | . | count1table_select: 0 0x2c3.1-0x2c3.1 (0.1)
| | | [1]{}: granule 0x2c3.2-0x2d1.7 (14.6) | | | [1][0:2]: granule 0x2c3.2-0x2d1.7 (14.6)
| | | channels[0:2]: 0x2c3.2-0x2d1.7 (14.6)
| | | [0]{}: channel 0x2c3.2-0x2ca.4 (7.3) | | | [0]{}: channel 0x2c3.2-0x2ca.4 (7.3)
0x2c0| 00 00 | .. | part2_3_length: 0 0x2c3.2-0x2c4.5 (1.4) 0x2c0| 00 00 | .. | part2_3_length: 0 0x2c3.2-0x2c4.5 (1.4)
0x2c0| 00 01 | .. | big_values: 0 0x2c4.6-0x2c5.6 (1.1) 0x2c0| 00 01 | .. | big_values: 0 0x2c4.6-0x2c5.6 (1.1)

View File

@ -54,7 +54,7 @@ var iccProfileFormat decode.Group
func init() { func init() {
registry.MustRegister(decode.Format{ registry.MustRegister(decode.Format{
Name: format.MP4, Name: format.MP4,
Description: "MPEG-4 file and similar", Description: "ISOBMFF MPEG-4 part 12 and similar",
Groups: []string{ Groups: []string{
format.PROBE, format.PROBE,
format.IMAGE, // avif format.IMAGE, // avif

View File

@ -346,8 +346,7 @@ $ fq -d mp4 dv /mp3.mp4
0x030| 00 | . | private_bits: 0 0x31.1-0x31.5 (0.5) 0x030| 00 | . | private_bits: 0 0x31.1-0x31.5 (0.5)
0x030| 00 0a | .. | share0: 0 0x31.6-0x32.1 (0.4) 0x030| 00 0a | .. | share0: 0 0x31.6-0x32.1 (0.4)
| | | granules[0:2]: 0x32.2-0x40.7 (14.6) | | | granules[0:2]: 0x32.2-0x40.7 (14.6)
| | | [0]{}: granule 0x32.2-0x39.4 (7.3) | | | [0][0:1]: granule 0x32.2-0x39.4 (7.3)
| | | channels[0:1]: 0x32.2-0x39.4 (7.3)
| | | [0]{}: channel 0x32.2-0x39.4 (7.3) | | | [0]{}: channel 0x32.2-0x39.4 (7.3)
0x030| 0a 2c | ., | part2_3_length: 651 0x32.2-0x33.5 (1.4) 0x030| 0a 2c | ., | part2_3_length: 651 0x32.2-0x33.5 (1.4)
0x030| 2c 43 | ,C | big_values: 33 0x33.6-0x34.6 (1.1) 0x030| 2c 43 | ,C | big_values: 33 0x33.6-0x34.6 (1.1)
@ -364,8 +363,7 @@ $ fq -d mp4 dv /mp3.mp4
0x030| 01 | . | preflag: 0 0x39.2-0x39.2 (0.1) 0x030| 01 | . | preflag: 0 0x39.2-0x39.2 (0.1)
0x030| 01 | . | scalefac_scale: 0 0x39.3-0x39.3 (0.1) 0x030| 01 | . | scalefac_scale: 0 0x39.3-0x39.3 (0.1)
0x030| 01 | . | count1table_select: 0 0x39.4-0x39.4 (0.1) 0x030| 01 | . | count1table_select: 0 0x39.4-0x39.4 (0.1)
| | | [1]{}: granule 0x39.5-0x40.7 (7.3) | | | [1][0:1]: granule 0x39.5-0x40.7 (7.3)
| | | channels[0:1]: 0x39.5-0x40.7 (7.3)
| | | [0]{}: channel 0x39.5-0x40.7 (7.3) | | | [0]{}: channel 0x39.5-0x40.7 (7.3)
0x030| 01 81 15 | ... | part2_3_length: 770 0x39.5-0x3b (1.4) 0x030| 01 81 15 | ... | part2_3_length: 770 0x39.5-0x3b (1.4)
0x030| 15 66 | .f | big_values: 85 0x3b.1-0x3c.1 (1.1) 0x030| 15 66 | .f | big_values: 85 0x3b.1-0x3c.1 (1.1)
@ -409,8 +407,7 @@ $ fq -d mp4 dv /mp3.mp4
0x100| 82 | . | private_bits: 0 0x101.1-0x101.5 (0.5) 0x100| 82 | . | private_bits: 0 0x101.1-0x101.5 (0.5)
0x100| 82 0a | .. | share0: 8 0x101.6-0x102.1 (0.4) 0x100| 82 0a | .. | share0: 8 0x101.6-0x102.1 (0.4)
| | | granules[0:2]: 0x102.2-0x110.7 (14.6) | | | granules[0:2]: 0x102.2-0x110.7 (14.6)
| | | [0]{}: granule 0x102.2-0x109.4 (7.3) | | | [0][0:1]: granule 0x102.2-0x109.4 (7.3)
| | | channels[0:1]: 0x102.2-0x109.4 (7.3)
| | | [0]{}: channel 0x102.2-0x109.4 (7.3) | | | [0]{}: channel 0x102.2-0x109.4 (7.3)
0x100| 0a 60 | .` | part2_3_length: 664 0x102.2-0x103.5 (1.4) 0x100| 0a 60 | .` | part2_3_length: 664 0x102.2-0x103.5 (1.4)
0x100| 60 21 | `! | big_values: 16 0x103.6-0x104.6 (1.1) 0x100| 60 21 | `! | big_values: 16 0x103.6-0x104.6 (1.1)
@ -427,8 +424,7 @@ $ fq -d mp4 dv /mp3.mp4
0x100| 01 | . | preflag: 0 0x109.2-0x109.2 (0.1) 0x100| 01 | . | preflag: 0 0x109.2-0x109.2 (0.1)
0x100| 01 | . | scalefac_scale: 0 0x109.3-0x109.3 (0.1) 0x100| 01 | . | scalefac_scale: 0 0x109.3-0x109.3 (0.1)
0x100| 01 | . | count1table_select: 0 0x109.4-0x109.4 (0.1) 0x100| 01 | . | count1table_select: 0 0x109.4-0x109.4 (0.1)
| | | [1]{}: granule 0x109.5-0x110.7 (7.3) | | | [1][0:1]: granule 0x109.5-0x110.7 (7.3)
| | | channels[0:1]: 0x109.5-0x110.7 (7.3)
| | | [0]{}: channel 0x109.5-0x110.7 (7.3) | | | [0]{}: channel 0x109.5-0x110.7 (7.3)
0x100| 01 59 04 | .Y. | part2_3_length: 690 0x109.5-0x10b (1.4) 0x100| 01 59 04 | .Y. | part2_3_length: 690 0x109.5-0x10b (1.4)
0x100| 04 a1 | .. | big_values: 18 0x10b.1-0x10c.1 (1.1) 0x100| 04 a1 | .. | big_values: 18 0x10b.1-0x10c.1 (1.1)
@ -473,8 +469,7 @@ $ fq -d mp4 dv /mp3.mp4
0x1d0| 80 | . | private_bits: 0 0x1d2.1-0x1d2.5 (0.5) 0x1d0| 80 | . | private_bits: 0 0x1d2.1-0x1d2.5 (0.5)
0x1d0| 80 0d | .. | share0: 0 0x1d2.6-0x1d3.1 (0.4) 0x1d0| 80 0d | .. | share0: 0 0x1d2.6-0x1d3.1 (0.4)
| | | granules[0:2]: 0x1d3.2-0x1e1.7 (14.6) | | | granules[0:2]: 0x1d3.2-0x1e1.7 (14.6)
| | | [0]{}: granule 0x1d3.2-0x1da.4 (7.3) | | | [0][0:1]: granule 0x1d3.2-0x1da.4 (7.3)
| | | channels[0:1]: 0x1d3.2-0x1da.4 (7.3)
| | | [0]{}: channel 0x1d3.2-0x1da.4 (7.3) | | | [0]{}: channel 0x1d3.2-0x1da.4 (7.3)
0x1d0| 0d e4 | .. | part2_3_length: 889 0x1d3.2-0x1d4.5 (1.4) 0x1d0| 0d e4 | .. | part2_3_length: 889 0x1d3.2-0x1d4.5 (1.4)
0x1d0| e4 c9 | .. | big_values: 100 0x1d4.6-0x1d5.6 (1.1) 0x1d0| e4 c9 | .. | big_values: 100 0x1d4.6-0x1d5.6 (1.1)
@ -491,8 +486,7 @@ $ fq -d mp4 dv /mp3.mp4
0x1d0| 91 | . | preflag: 0 0x1da.2-0x1da.2 (0.1) 0x1d0| 91 | . | preflag: 0 0x1da.2-0x1da.2 (0.1)
0x1d0| 91 | . | scalefac_scale: 1 0x1da.3-0x1da.3 (0.1) 0x1d0| 91 | . | scalefac_scale: 1 0x1da.3-0x1da.3 (0.1)
0x1d0| 91 | . | count1table_select: 0 0x1da.4-0x1da.4 (0.1) 0x1d0| 91 | . | count1table_select: 0 0x1da.4-0x1da.4 (0.1)
| | | [1]{}: granule 0x1da.5-0x1e1.7 (7.3) | | | [1][0:1]: granule 0x1da.5-0x1e1.7 (7.3)
| | | channels[0:1]: 0x1da.5-0x1e1.7 (7.3)
| | | [0]{}: channel 0x1da.5-0x1e1.7 (7.3) | | | [0]{}: channel 0x1da.5-0x1e1.7 (7.3)
0x1d0| 91 30 8d | .0. | part2_3_length: 609 0x1da.5-0x1dc (1.4) 0x1d0| 91 30 8d | .0. | part2_3_length: 609 0x1da.5-0x1dc (1.4)
0x1d0| 8d a3 | .. | big_values: 54 0x1dc.1-0x1dd.1 (1.1) 0x1d0| 8d a3 | .. | big_values: 54 0x1dc.1-0x1dd.1 (1.1)

View File

@ -1,5 +1,5 @@
$ fq -d mp4 'mp4_path(".moov.trak[1]")' /fragmented.mp4 $ fq -d mp4 'mp4_path(".moov.trak[1]")' /fragmented.mp4
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.boxes[1].boxes[2]{}: |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.boxes[1].boxes[2]{}: box
0x280| 00 00 01 bf | .... | size: 447 0x280| 00 00 01 bf | .... | size: 447
0x280| 74 72 61 6b | trak | type: "trak" (Container for an individual track or stream) 0x280| 74 72 61 6b | trak | type: "trak" (Container for an individual track or stream)
0x280| 00 00 00 5c| ...\| boxes[0:2]: 0x280| 00 00 00 5c| ...\| boxes[0:2]:

View File

@ -2,7 +2,7 @@
# fq -d raw 'tobytes[0:100]' size64.mp4 > size64 # fq -d raw 'tobytes[0:100]' size64.mp4 > size64
# TODO: test that don't uses decode failure? # TODO: test that don't uses decode failure?
$ fq -d mp4 '.boxes[] | d' /size64 $ fq -d mp4 '.boxes[] | d' /size64
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.boxes[0]{}: |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.boxes[0]{}: box
0x00|00 00 00 1c |.... | size: 28 0x00|00 00 00 1c |.... | size: 28
0x00| 66 74 79 70 | ftyp | type: "ftyp" (File type and compatibility) 0x00| 66 74 79 70 | ftyp | type: "ftyp" (File type and compatibility)
0x00| 69 73 6f 6d | isom | major_brand: "isom" 0x00| 69 73 6f 6d | isom | major_brand: "isom"
@ -11,7 +11,7 @@ $ fq -d mp4 '.boxes[] | d' /size64
0x10|69 73 6f 6d |isom | [0]: "isom" (All files based on the ISO Base Media File Format) 0x10|69 73 6f 6d |isom | [0]: "isom" (All files based on the ISO Base Media File Format)
0x10| 69 73 6f 32 | iso2 | [1]: "iso2" (All files based on the 2004 edition of the ISO file format) 0x10| 69 73 6f 32 | iso2 | [1]: "iso2" (All files based on the 2004 edition of the ISO file format)
0x10| 6d 70 34 31 | mp41 | [2]: "mp41" (MP4 version 1) 0x10| 6d 70 34 31 | mp41 | [2]: "mp41" (MP4 version 1)
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.boxes[1]{}: |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.boxes[1]{}: box
0x10| 00 00 00 01| ....| size: 1 (Use 64 bit size) 0x10| 00 00 00 01| ....| size: 1 (Use 64 bit size)
0x20|6d 64 61 74 |mdat | type: "mdat" (Media data container) 0x20|6d 64 61 74 |mdat | type: "mdat" (Media data container)
0x20| 00 00 00 01 ad 85 9d aa | ........ | size64: 7206182314 0x20| 00 00 00 01 ad 85 9d aa | ........ | size64: 7206182314

View File

@ -303,8 +303,7 @@ $ fq -d mp4 'dv' stz2.mp4
0x280| 00 | . | private_bits: 0 0x289.1-0x289.5 (0.5) 0x280| 00 | . | private_bits: 0 0x289.1-0x289.5 (0.5)
0x280| 00 0a | .. | share0: 0 0x289.6-0x28a.1 (0.4) 0x280| 00 0a | .. | share0: 0 0x289.6-0x28a.1 (0.4)
| | | granules[0:2]: 0x28a.2-0x298.7 (14.6) | | | granules[0:2]: 0x28a.2-0x298.7 (14.6)
| | | [0]{}: granule 0x28a.2-0x291.4 (7.3) | | | [0][0:1]: granule 0x28a.2-0x291.4 (7.3)
| | | channels[0:1]: 0x28a.2-0x291.4 (7.3)
| | | [0]{}: channel 0x28a.2-0x291.4 (7.3) | | | [0]{}: channel 0x28a.2-0x291.4 (7.3)
0x280| 0a 2c | ., | part2_3_length: 651 0x28a.2-0x28b.5 (1.4) 0x280| 0a 2c | ., | part2_3_length: 651 0x28a.2-0x28b.5 (1.4)
0x280| 2c 43 | ,C | big_values: 33 0x28b.6-0x28c.6 (1.1) 0x280| 2c 43 | ,C | big_values: 33 0x28b.6-0x28c.6 (1.1)
@ -322,8 +321,7 @@ $ fq -d mp4 'dv' stz2.mp4
0x290| 01 | . | preflag: 0 0x291.2-0x291.2 (0.1) 0x290| 01 | . | preflag: 0 0x291.2-0x291.2 (0.1)
0x290| 01 | . | scalefac_scale: 0 0x291.3-0x291.3 (0.1) 0x290| 01 | . | scalefac_scale: 0 0x291.3-0x291.3 (0.1)
0x290| 01 | . | count1table_select: 0 0x291.4-0x291.4 (0.1) 0x290| 01 | . | count1table_select: 0 0x291.4-0x291.4 (0.1)
| | | [1]{}: granule 0x291.5-0x298.7 (7.3) | | | [1][0:1]: granule 0x291.5-0x298.7 (7.3)
| | | channels[0:1]: 0x291.5-0x298.7 (7.3)
| | | [0]{}: channel 0x291.5-0x298.7 (7.3) | | | [0]{}: channel 0x291.5-0x298.7 (7.3)
0x290| 01 81 15 | ... | part2_3_length: 770 0x291.5-0x293 (1.4) 0x290| 01 81 15 | ... | part2_3_length: 770 0x291.5-0x293 (1.4)
0x290| 15 66 | .f | big_values: 85 0x293.1-0x294.1 (1.1) 0x290| 15 66 | .f | big_values: 85 0x293.1-0x294.1 (1.1)
@ -366,8 +364,7 @@ $ fq -d mp4 'dv' stz2.mp4
0x350| 82 | . | private_bits: 0 0x359.1-0x359.5 (0.5) 0x350| 82 | . | private_bits: 0 0x359.1-0x359.5 (0.5)
0x350| 82 0a | .. | share0: 8 0x359.6-0x35a.1 (0.4) 0x350| 82 0a | .. | share0: 8 0x359.6-0x35a.1 (0.4)
| | | granules[0:2]: 0x35a.2-0x368.7 (14.6) | | | granules[0:2]: 0x35a.2-0x368.7 (14.6)
| | | [0]{}: granule 0x35a.2-0x361.4 (7.3) | | | [0][0:1]: granule 0x35a.2-0x361.4 (7.3)
| | | channels[0:1]: 0x35a.2-0x361.4 (7.3)
| | | [0]{}: channel 0x35a.2-0x361.4 (7.3) | | | [0]{}: channel 0x35a.2-0x361.4 (7.3)
0x350| 0a 60 | .` | part2_3_length: 664 0x35a.2-0x35b.5 (1.4) 0x350| 0a 60 | .` | part2_3_length: 664 0x35a.2-0x35b.5 (1.4)
0x350| 60 21 | `! | big_values: 16 0x35b.6-0x35c.6 (1.1) 0x350| 60 21 | `! | big_values: 16 0x35b.6-0x35c.6 (1.1)
@ -385,8 +382,7 @@ $ fq -d mp4 'dv' stz2.mp4
0x360| 01 | . | preflag: 0 0x361.2-0x361.2 (0.1) 0x360| 01 | . | preflag: 0 0x361.2-0x361.2 (0.1)
0x360| 01 | . | scalefac_scale: 0 0x361.3-0x361.3 (0.1) 0x360| 01 | . | scalefac_scale: 0 0x361.3-0x361.3 (0.1)
0x360| 01 | . | count1table_select: 0 0x361.4-0x361.4 (0.1) 0x360| 01 | . | count1table_select: 0 0x361.4-0x361.4 (0.1)
| | | [1]{}: granule 0x361.5-0x368.7 (7.3) | | | [1][0:1]: granule 0x361.5-0x368.7 (7.3)
| | | channels[0:1]: 0x361.5-0x368.7 (7.3)
| | | [0]{}: channel 0x361.5-0x368.7 (7.3) | | | [0]{}: channel 0x361.5-0x368.7 (7.3)
0x360| 01 59 04 | .Y. | part2_3_length: 690 0x361.5-0x363 (1.4) 0x360| 01 59 04 | .Y. | part2_3_length: 690 0x361.5-0x363 (1.4)
0x360| 04 a1 | .. | big_values: 18 0x363.1-0x364.1 (1.1) 0x360| 04 a1 | .. | big_values: 18 0x363.1-0x364.1 (1.1)
@ -431,8 +427,7 @@ $ fq -d mp4 'dv' stz2.mp4
0x420| 80 | . | private_bits: 0 0x42a.1-0x42a.5 (0.5) 0x420| 80 | . | private_bits: 0 0x42a.1-0x42a.5 (0.5)
0x420| 80 0d | .. | share0: 0 0x42a.6-0x42b.1 (0.4) 0x420| 80 0d | .. | share0: 0 0x42a.6-0x42b.1 (0.4)
| | | granules[0:2]: 0x42b.2-0x439.7 (14.6) | | | granules[0:2]: 0x42b.2-0x439.7 (14.6)
| | | [0]{}: granule 0x42b.2-0x432.4 (7.3) | | | [0][0:1]: granule 0x42b.2-0x432.4 (7.3)
| | | channels[0:1]: 0x42b.2-0x432.4 (7.3)
| | | [0]{}: channel 0x42b.2-0x432.4 (7.3) | | | [0]{}: channel 0x42b.2-0x432.4 (7.3)
0x420| 0d e4 | .. | part2_3_length: 889 0x42b.2-0x42c.5 (1.4) 0x420| 0d e4 | .. | part2_3_length: 889 0x42b.2-0x42c.5 (1.4)
0x420| e4 c9 | .. | big_values: 100 0x42c.6-0x42d.6 (1.1) 0x420| e4 c9 | .. | big_values: 100 0x42c.6-0x42d.6 (1.1)
@ -450,8 +445,7 @@ $ fq -d mp4 'dv' stz2.mp4
0x430| 91 | . | preflag: 0 0x432.2-0x432.2 (0.1) 0x430| 91 | . | preflag: 0 0x432.2-0x432.2 (0.1)
0x430| 91 | . | scalefac_scale: 1 0x432.3-0x432.3 (0.1) 0x430| 91 | . | scalefac_scale: 1 0x432.3-0x432.3 (0.1)
0x430| 91 | . | count1table_select: 0 0x432.4-0x432.4 (0.1) 0x430| 91 | . | count1table_select: 0 0x432.4-0x432.4 (0.1)
| | | [1]{}: granule 0x432.5-0x439.7 (7.3) | | | [1][0:1]: granule 0x432.5-0x439.7 (7.3)
| | | channels[0:1]: 0x432.5-0x439.7 (7.3)
| | | [0]{}: channel 0x432.5-0x439.7 (7.3) | | | [0]{}: channel 0x432.5-0x439.7 (7.3)
0x430| 91 30 8d | .0. | part2_3_length: 609 0x432.5-0x434 (1.4) 0x430| 91 30 8d | .0. | part2_3_length: 609 0x432.5-0x434 (1.4)
0x430| 8d a3 | .. | big_values: 54 0x434.1-0x435.1 (1.1) 0x430| 8d a3 | .. | big_values: 54 0x434.1-0x435.1 (1.1)

View File

@ -303,10 +303,11 @@ func frameDecode(d *decode.D, in interface{}) interface{} {
// TODO: mpeg_version 2 use 1, otherwise 2 // TODO: mpeg_version 2 use 1, otherwise 2
granuleCount := 2 granuleCount := 2
granuleNr := 0 d.FieldArray("granules", func(d *decode.D) {
d.FieldStructArrayLoop("granules", "granule", func() bool { return granuleNr < granuleCount }, func(d *decode.D) { for i := 0; i < granuleCount; i++ {
channelNr := 0 d.FieldArray("granule", func(d *decode.D) {
d.FieldStructArrayLoop("channels", "channel", func() bool { return channelNr < channelCount }, func(d *decode.D) { for j := 0; j < channelCount; j++ {
d.FieldStruct("channel", func(d *decode.D) {
// TODO: tables and interpret values a bit // TODO: tables and interpret values a bit
d.FieldU12("part2_3_length") d.FieldU12("part2_3_length")
d.FieldU9("big_values") d.FieldU9("big_values")
@ -333,11 +334,10 @@ func frameDecode(d *decode.D, in interface{}) interface{} {
d.FieldU1("preflag") d.FieldU1("preflag")
d.FieldU1("scalefac_scale") d.FieldU1("scalefac_scale")
d.FieldU1("count1table_select") d.FieldU1("count1table_select")
channelNr++
}) })
}
granuleNr++ })
}
}) })
}) })
} }

View File

@ -21,8 +21,7 @@ $ fq -d mp3_frame dv /mp3-frame-mono
0x00| 00 | . | private_bits: 0 0x5.1-0x5.5 (0.5) 0x00| 00 | . | private_bits: 0 0x5.1-0x5.5 (0.5)
0x00| 00 0a | .. | share0: 0 0x5.6-0x6.1 (0.4) 0x00| 00 0a | .. | share0: 0 0x5.6-0x6.1 (0.4)
| | | granules[0:2]: 0x6.2-0x14.7 (14.6) | | | granules[0:2]: 0x6.2-0x14.7 (14.6)
| | | [0]{}: granule 0x6.2-0xd.4 (7.3) | | | [0][0:1]: granule 0x6.2-0xd.4 (7.3)
| | | channels[0:1]: 0x6.2-0xd.4 (7.3)
| | | [0]{}: channel 0x6.2-0xd.4 (7.3) | | | [0]{}: channel 0x6.2-0xd.4 (7.3)
0x00| 0a 2c | ., | part2_3_length: 651 0x6.2-0x7.5 (1.4) 0x00| 0a 2c | ., | part2_3_length: 651 0x6.2-0x7.5 (1.4)
0x00| 2c 43 | ,C | big_values: 33 0x7.6-0x8.6 (1.1) 0x00| 2c 43 | ,C | big_values: 33 0x7.6-0x8.6 (1.1)
@ -39,8 +38,7 @@ $ fq -d mp3_frame dv /mp3-frame-mono
0x00| 01 | . | preflag: 0 0xd.2-0xd.2 (0.1) 0x00| 01 | . | preflag: 0 0xd.2-0xd.2 (0.1)
0x00| 01 | . | scalefac_scale: 0 0xd.3-0xd.3 (0.1) 0x00| 01 | . | scalefac_scale: 0 0xd.3-0xd.3 (0.1)
0x00| 01 | . | count1table_select: 0 0xd.4-0xd.4 (0.1) 0x00| 01 | . | count1table_select: 0 0xd.4-0xd.4 (0.1)
| | | [1]{}: granule 0xd.5-0x14.7 (7.3) | | | [1][0:1]: granule 0xd.5-0x14.7 (7.3)
| | | channels[0:1]: 0xd.5-0x14.7 (7.3)
| | | [0]{}: channel 0xd.5-0x14.7 (7.3) | | | [0]{}: channel 0xd.5-0x14.7 (7.3)
0x00| 01 80 93| ...| part2_3_length: 769 0xd.5-0xf (1.4) 0x00| 01 80 93| ...| part2_3_length: 769 0xd.5-0xf (1.4)
0x00| 93| .| big_values: 77 0xf.1-0x10.1 (1.1) 0x00| 93| .| big_values: 77 0xf.1-0x10.1 (1.1)

View File

@ -22,8 +22,7 @@ $ fq -d mp3_frame dv /mp3-frame-stereo
0x000| 00 | . | share0: 0 0x5.4-0x5.7 (0.4) 0x000| 00 | . | share0: 0 0x5.4-0x5.7 (0.4)
0x000| 02 | . | share1: 0 0x6-0x6.3 (0.4) 0x000| 02 | . | share1: 0 0x6-0x6.3 (0.4)
| | | granules[0:2]: 0x6.4-0x23.7 (29.4) | | | granules[0:2]: 0x6.4-0x23.7 (29.4)
| | | [0]{}: granule 0x6.4-0x15.1 (14.6) | | | [0][0:2]: granule 0x6.4-0x15.1 (14.6)
| | | channels[0:2]: 0x6.4-0x15.1 (14.6)
| | | [0]{}: channel 0x6.4-0xd.6 (7.3) | | | [0]{}: channel 0x6.4-0xd.6 (7.3)
0x000| 02 6b | .k | part2_3_length: 619 0x6.4-0x7.7 (1.4) 0x000| 02 6b | .k | part2_3_length: 619 0x6.4-0x7.7 (1.4)
0x000| 0b ce | .. | big_values: 23 0x8-0x9 (1.1) 0x000| 0b ce | .. | big_values: 23 0x8-0x9 (1.1)
@ -57,8 +56,7 @@ $ fq -d mp3_frame dv /mp3-frame-stereo
0x010| 01 | . | preflag: 1 0x14.7-0x14.7 (0.1) 0x010| 01 | . | preflag: 1 0x14.7-0x14.7 (0.1)
0x010| 18 | . | scalefac_scale: 0 0x15-0x15 (0.1) 0x010| 18 | . | scalefac_scale: 0 0x15-0x15 (0.1)
0x010| 18 | . | count1table_select: 0 0x15.1-0x15.1 (0.1) 0x010| 18 | . | count1table_select: 0 0x15.1-0x15.1 (0.1)
| | | [1]{}: granule 0x15.2-0x23.7 (14.6) | | | [1][0:2]: granule 0x15.2-0x23.7 (14.6)
| | | channels[0:2]: 0x15.2-0x23.7 (14.6)
| | | [0]{}: channel 0x15.2-0x1c.4 (7.3) | | | [0]{}: channel 0x15.2-0x1c.4 (7.3)
0x010| 18 c9 | .. | part2_3_length: 1586 0x15.2-0x16.5 (1.4) 0x010| 18 c9 | .. | part2_3_length: 1586 0x15.2-0x16.5 (1.4)
0x010| c9 99 | .. | big_values: 204 0x16.6-0x17.6 (1.1) 0x010| c9 99 | .. | big_values: 204 0x16.6-0x17.6 (1.1)

View File

@ -50,7 +50,7 @@ func fieldFlows(d *decode.D, fd *flowsdecoder.Decoder, tcpStreamFormat decode.Gr
d.FieldArray("tcp_connections", func(d *decode.D) { d.FieldArray("tcp_connections", func(d *decode.D) {
for _, s := range fd.TCPConnections { for _, s := range fd.TCPConnections {
d.FieldStruct("flow", func(d *decode.D) { d.FieldStruct("tcp_connection", func(d *decode.D) {
d.FieldValueStr("source_ip", s.ClientEndpoint.IP.String()) d.FieldValueStr("source_ip", s.ClientEndpoint.IP.String())
d.FieldValueU("source_port", uint64(s.ClientEndpoint.Port), format.TCPPortMap) d.FieldValueU("source_port", uint64(s.ClientEndpoint.Port), format.TCPPortMap)
d.FieldValueStr("destination_ip", s.ServerEndpoint.IP.String()) d.FieldValueStr("destination_ip", s.ServerEndpoint.IP.String())

View File

@ -1,7 +1,7 @@
# from https://wiki.wireshark.org/Development/PcapNg # from https://wiki.wireshark.org/Development/PcapNg
# TODO: move once we can have decode value tests somehow # TODO: move once we can have decode value tests somehow
$ fq '.[0].blocks[0]' /dhcp_little_endian.pcapng $ fq '.[0].blocks[0]' /dhcp_little_endian.pcapng
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.[0].blocks[0]{}: |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.[0].blocks[0]{}: block
0x00|0a 0d 0d 0a |.... | type: "section_header" (0xa0d0d0a) (Section Header Block) 0x00|0a 0d 0d 0a |.... | type: "section_header" (0xa0d0d0a) (Section Header Block)
0x00| 1c 00 00 00 | .... | length: 28 0x00| 1c 00 00 00 | .... | length: 28
0x00| 4d 3c 2b 1a | M<+. | byte_order_magic: "little_endian" (0x4d3c2b1a) 0x00| 4d 3c 2b 1a | M<+. | byte_order_magic: "little_endian" (0x4d3c2b1a)

View File

@ -608,7 +608,7 @@ $ fq -d pcap dv /http_gzip.cap
| | | payload: raw bits 0x6ab-NA (0) | | | payload: raw bits 0x6ab-NA (0)
| | | ipv4_reassembled[0:0]: 0x6ab-NA (0) | | | ipv4_reassembled[0:0]: 0x6ab-NA (0)
| | | tcp_connections[0:1]: 0x6ab-NA (0) | | | tcp_connections[0:1]: 0x6ab-NA (0)
| | | [0]{}: flow 0x6ab-NA (0) | | | [0]{}: tcp_connection 0x6ab-NA (0)
| | | source_ip: "192.168.69.2" 0x6ab-NA (0) | | | source_ip: "192.168.69.2" 0x6ab-NA (0)
| | | source_port: 34059 0x6ab-NA (0) | | | source_port: 34059 0x6ab-NA (0)
| | | destination_ip: "192.168.69.1" 0x6ab-NA (0) | | | destination_ip: "192.168.69.1" 0x6ab-NA (0)

View File

@ -3482,7 +3482,7 @@ $ fq -d pcap dv ipv6_http.pcap
| | | payload: raw bits 0x23c7-NA (0) | | | payload: raw bits 0x23c7-NA (0)
| | | ipv4_reassembled[0:0]: 0x23c7-NA (0) | | | ipv4_reassembled[0:0]: 0x23c7-NA (0)
| | | tcp_connections[0:1]: 0x23c7-NA (0) | | | tcp_connections[0:1]: 0x23c7-NA (0)
| | | [0]{}: flow 0x23c7-NA (0) | | | [0]{}: tcp_connection 0x23c7-NA (0)
| | | source_ip: "2001:6f8:102d:0:2d0:9ff:fee3:e8de" 0x23c7-NA (0) | | | source_ip: "2001:6f8:102d:0:2d0:9ff:fee3:e8de" 0x23c7-NA (0)
| | | source_port: 59201 0x23c7-NA (0) | | | source_port: 59201 0x23c7-NA (0)
| | | destination_ip: "2001:6f8:900:7c0::2" 0x23c7-NA (0) | | | destination_ip: "2001:6f8:900:7c0::2" 0x23c7-NA (0)

View File

@ -5486,7 +5486,7 @@ $ fq -d pcapng dv /many_interfaces.pcapng
0x51b0| 6c 00 00 00| | l...| | footer_length: 108 0x51b4-0x51b7.7 (4) 0x51b0| 6c 00 00 00| | l...| | footer_length: 108 0x51b4-0x51b7.7 (4)
| | | ipv4_reassembled[0:0]: 0x51b8-NA (0) | | | ipv4_reassembled[0:0]: 0x51b8-NA (0)
| | | tcp_connections[0:2]: 0x51b8-NA (0) | | | tcp_connections[0:2]: 0x51b8-NA (0)
| | | [0]{}: flow 0x51b8-NA (0) | | | [0]{}: tcp_connection 0x51b8-NA (0)
| | | source_ip: "192.168.1.139" 0x51b8-NA (0) | | | source_ip: "192.168.1.139" 0x51b8-NA (0)
| | | source_port: 50981 0x51b8-NA (0) | | | source_port: 50981 0x51b8-NA (0)
| | | destination_ip: "74.125.228.227" 0x51b8-NA (0) | | | destination_ip: "74.125.228.227" 0x51b8-NA (0)
@ -5497,7 +5497,7 @@ $ fq -d pcapng dv /many_interfaces.pcapng
* |until 0x7b0.7 (end) (1969) | | * |until 0x7b0.7 (end) (1969) | |
0x000|16 03 03 00 5a 02 00 00 56 03 03 55 d0 e5 ff ab|....Z...V..U....| server_stream: raw bits 0x0-0x35b.7 (860) 0x000|16 03 03 00 5a 02 00 00 56 03 03 55 d0 e5 ff ab|....Z...V..U....| server_stream: raw bits 0x0-0x35b.7 (860)
* |until 0x35b.7 (end) (860) | | * |until 0x35b.7 (end) (860) | |
| | | [1]{}: flow 0x51b8-NA (0) | | | [1]{}: tcp_connection 0x51b8-NA (0)
| | | source_ip: "192.168.1.139" 0x51b8-NA (0) | | | source_ip: "192.168.1.139" 0x51b8-NA (0)
| | | source_port: 50982 0x51b8-NA (0) | | | source_port: 50982 0x51b8-NA (0)
| | | destination_ip: "74.125.228.227" 0x51b8-NA (0) | | | destination_ip: "74.125.228.227" 0x51b8-NA (0)

View File

@ -334,7 +334,7 @@ $ fq -d pcap dv /sll2_tcp.pcap
| | | payload: raw bits 0x1e5-NA (0) | | | payload: raw bits 0x1e5-NA (0)
| | | ipv4_reassembled[0:0]: 0x1e5-NA (0) | | | ipv4_reassembled[0:0]: 0x1e5-NA (0)
| | | tcp_connections[0:1]: 0x1e5-NA (0) | | | tcp_connections[0:1]: 0x1e5-NA (0)
| | | [0]{}: flow 0x1e5-NA (0) | | | [0]{}: tcp_connection 0x1e5-NA (0)
| | | source_ip: "127.0.0.1" 0x1e5-NA (0) | | | source_ip: "127.0.0.1" 0x1e5-NA (0)
| | | source_port: 47174 0x1e5-NA (0) | | | source_port: 47174 0x1e5-NA (0)
| | | destination_ip: "127.0.0.1" 0x1e5-NA (0) | | | destination_ip: "127.0.0.1" 0x1e5-NA (0)

View File

@ -1,6 +1,6 @@
$ fq '.tcp_connections | dv' rtmp_sample.cap $ fq '.tcp_connections | dv' rtmp_sample.cap
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0:1]: 0x2268-NA (0) |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0:1]: 0x2268-NA (0)
| | | [0]{}: flow 0x2268-NA (0) | | | [0]{}: tcp_connection 0x2268-NA (0)
| | | source_ip: "192.168.43.1" 0x2268-NA (0) | | | source_ip: "192.168.43.1" 0x2268-NA (0)
| | | source_port: 1177 0x2268-NA (0) | | | source_port: 1177 0x2268-NA (0)
| | | destination_ip: "192.168.43.128" 0x2268-NA (0) | | | destination_ip: "192.168.43.128" 0x2268-NA (0)

View File

@ -137,7 +137,7 @@ func dumpEx(v *decode.Value, buf []byte, cw *columnwriter.Writer, depth int, roo
cfmt(colField, "%s", deco.Object.F("{}")) cfmt(colField, "%s", deco.Object.F("{}"))
} }
cprint(colField, ":") cprint(colField, ":")
if opts.Verbose && isInArray { if isInArray {
cfmt(colField, " %s", v.Name) cfmt(colField, " %s", v.Name)
} }
if vv.Description != "" { if vv.Description != "" {

View File

@ -151,7 +151,7 @@ macho Mach-O macOS executable
matroska Matroska file matroska Matroska file
mp3 MP3 file mp3 MP3 file
mp3_frame MPEG audio layer 3 frame mp3_frame MPEG audio layer 3 frame
mp4 MPEG-4 file and similar mp4 ISOBMFF MPEG-4 part 12 and similar
mpeg_asc MPEG-4 Audio Specific Config mpeg_asc MPEG-4 Audio Specific Config
mpeg_es MPEG Elementary Stream mpeg_es MPEG Elementary Stream
mpeg_pes MPEG Packetized elementary stream mpeg_pes MPEG Packetized elementary stream

View File

@ -76,7 +76,7 @@ $ fq -o force=true -d png d /test.mp3
| | | error: png: BitBufRange: failed at position 0 (read size 2315363 seek pos 0): outside buffer | | | error: png: BitBufRange: failed at position 0 (read size 2315363 seek pos 0): outside buffer
0x000|49 44 33 04 00 00 00 00 |ID3..... | signature: raw bits (invalid) 0x000|49 44 33 04 00 00 00 00 |ID3..... | signature: raw bits (invalid)
| | | chunks[0:1]: | | | chunks[0:1]:
| | | [0]{}: | | | [0]{}: chunk
0x000| 00 23 54 53 | .#TS | length: 2315347 0x000| 00 23 54 53 | .#TS | length: 2315347
0x000| 53 45 00 00| SE..| type: "SE\x00\x00" 0x000| 53 45 00 00| SE..| type: "SE\x00\x00"
0x000| 53 | S | ancillary: true 0x000| 53 | S | ancillary: true
@ -92,7 +92,7 @@ $ fq -d raw 'png({force: true}) | d' /test.mp3
| | | error: png: BitBufRange: failed at position 0 (read size 2315363 seek pos 0): outside buffer | | | error: png: BitBufRange: failed at position 0 (read size 2315363 seek pos 0): outside buffer
0x000|49 44 33 04 00 00 00 00 |ID3..... | signature: raw bits (invalid) 0x000|49 44 33 04 00 00 00 00 |ID3..... | signature: raw bits (invalid)
| | | chunks[0:1]: | | | chunks[0:1]:
| | | [0]{}: | | | [0]{}: chunk
0x000| 00 23 54 53 | .#TS | length: 2315347 0x000| 00 23 54 53 | .#TS | length: 2315347
0x000| 53 45 00 00| SE..| type: "SE\x00\x00" 0x000| 53 45 00 00| SE..| type: "SE\x00\x00"
0x000| 53 | S | ancillary: true 0x000| 53 | S | ancillary: true

View File

@ -11,16 +11,16 @@ mp3> display({depth: 1})
mp3> display({depth: 2}) mp3> display({depth: 2})
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: /test.mp3 (mp3) |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: /test.mp3 (mp3)
| | | headers[0:1]: | | | headers[0:1]:
0x000|49 44 33 04 00 00 00 00 00 23 54 53 53 45 00 00|ID3......#TSSE..| [0]{}: (id3v2) 0x000|49 44 33 04 00 00 00 00 00 23 54 53 53 45 00 00|ID3......#TSSE..| [0]{}: header (id3v2)
* |until 0x2c.7 (45) | | * |until 0x2c.7 (45) | |
| | | frames[0:3]: | | | frames[0:3]:
0x020| ff fb 40| ..@| [0]{}: (mp3_frame) 0x020| ff fb 40| ..@| [0]{}: frame (mp3_frame)
0x030|c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00|................| 0x030|c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00|................|
* |until 0xe2.7 (182) | | * |until 0xe2.7 (182) | |
0x0e0| ff fb 50 c4 00 00 0a 2c 43 2e 55 94 80| ..P....,C.U..| [1]{}: (mp3_frame) 0x0e0| ff fb 50 c4 00 00 0a 2c 43 2e 55 94 80| ..P....,C.U..| [1]{}: frame (mp3_frame)
0x0f0|01 80 93 6b 27 30 80 00 07 aa c3 8e 33 85 d3 64|...k'0......3..d| 0x0f0|01 80 93 6b 27 30 80 00 07 aa c3 8e 33 85 d3 64|...k'0......3..d|
* |until 0x1b2.7 (208) | | * |until 0x1b2.7 (208) | |
0x1b0| ff fb 52 c4 04 83 c9 14 39 29 3c c3 00| ..R.....9)<..| [2]{}: (mp3_frame) 0x1b0| ff fb 52 c4 04 83 c9 14 39 29 3c c3 00| ..R.....9)<..| [2]{}: frame (mp3_frame)
0x1c0|00 00 00 34 80 00 00 04 11 4b 36 4a 08 83 58 c9|...4.....K6J..X.| 0x1c0|00 00 00 34 80 00 00 04 11 4b 36 4a 08 83 58 c9|...4.....K6J..X.|
* |until 0x283.7 (end) (209) | | * |until 0x283.7 (end) (209) | |
| | | footers[0:0]: | | | footers[0:0]:

View File

@ -64,7 +64,7 @@ mp3> grep_by(. == 44100)
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x1b0| 52 | R |.frames[2].header.sample_rate: 44100 (0) 0x1b0| 52 | R |.frames[2].header.sample_rate: 44100 (0)
mp3> grep_by(format == "id3v2") mp3> grep_by(format == "id3v2")
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.headers[0]{}: (id3v2) |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.headers[0]{}: header (id3v2)
0x00|49 44 33 |ID3 | magic: "ID3" (valid) 0x00|49 44 33 |ID3 | magic: "ID3" (valid)
0x00| 04 | . | version: 4 0x00| 04 | . | version: 4
0x00| 00 | . | revision: 0 0x00| 00 | . | revision: 0

View File

@ -88,7 +88,7 @@ null> ^D
$ fq -d mp3 -i . /test.mp3 $ fq -d mp3 -i . /test.mp3
mp3> .frames[0] | slurp("f") mp3> .frames[0] | slurp("f")
mp3> $f[] mp3> $f[]
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.frames[0]{}: (mp3_frame) |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.frames[0]{}: frame (mp3_frame)
0x20| ff fb 40| ..@| header{}: 0x20| ff fb 40| ..@| header{}:
0x30|c0 |. | 0x30|c0 |. |
0x30| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00| ...............| side_info{}: 0x30| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00| ...............| side_info{}:

View File

@ -22,7 +22,7 @@ $ fq -d mp3 '.headers[0][]' /test.mp3
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x0| 00 00 00 23 | ...# |.headers[0].size: 35 0x0| 00 00 00 23 | ...# |.headers[0].size: 35
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.headers[0].frames[0:1]: |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.headers[0].frames[0:1]:
0x00| 54 53 53 45 00 00| TSSE..| [0]{}: 0x00| 54 53 53 45 00 00| TSSE..| [0]{}: frame
0x10|00 0f 00 00 03 4c 61 76 66 35 38 2e 34 35 2e 31|.....Lavf58.45.1| 0x10|00 0f 00 00 03 4c 61 76 66 35 38 2e 34 35 2e 31|.....Lavf58.45.1|
0x20|30 30 00 |00. | 0x20|30 30 00 |00. |
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|

View File

@ -1,7 +1,7 @@
$ fq -i -d mp3 . /test.mp3 $ fq -i -d mp3 . /test.mp3
mp3> .headers | ., tovalue, type, length? mp3> .headers | ., tovalue, type, length?
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.headers[0:1]: |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.headers[0:1]:
0x00|49 44 33 04 00 00 00 00 00 23 54 53 53 45 00 00|ID3......#TSSE..| [0]{}: (id3v2) 0x00|49 44 33 04 00 00 00 00 00 23 54 53 53 45 00 00|ID3......#TSSE..| [0]{}: header (id3v2)
* |until 0x2c.7 (45) | | * |until 0x2c.7 (45) | |
[ [
{ {
@ -42,7 +42,7 @@ mp3> .headers | ., tovalue, type, length?
"array" "array"
1 1
mp3> .headers[0] | ., type, length? mp3> .headers[0] | ., type, length?
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.headers[0]{}: (id3v2) |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.headers[0]{}: header (id3v2)
0x00|49 44 33 |ID3 | magic: "ID3" (valid) 0x00|49 44 33 |ID3 | magic: "ID3" (valid)
0x00| 04 | . | version: 4 0x00| 04 | . | version: 4
0x00| 00 | . | revision: 0 0x00| 00 | . | revision: 0
@ -210,8 +210,24 @@ mp3> .headers[0] = 1
"padding": "<5>AAAAAAA=", "padding": "<5>AAAAAAA=",
"side_info": { "side_info": {
"granules": [ "granules": [
[
{ {
"channels": [ "big_values": 0,
"blocksplit_flag": 0,
"count1table_select": 0,
"global_gain": 0,
"part2_3_length": 0,
"preflag": 0,
"region_address1": 0,
"region_address2": 0,
"scalefac_compress": 0,
"scalefac_scale": 0,
"table_select0": 0,
"table_select1": 0,
"table_select2": 0
}
],
[
{ {
"big_values": 0, "big_values": 0,
"blocksplit_flag": 0, "blocksplit_flag": 0,
@ -228,26 +244,6 @@ mp3> .headers[0] = 1
"table_select2": 0 "table_select2": 0
} }
] ]
},
{
"channels": [
{
"big_values": 0,
"blocksplit_flag": 0,
"count1table_select": 0,
"global_gain": 0,
"part2_3_length": 0,
"preflag": 0,
"region_address1": 0,
"region_address2": 0,
"scalefac_compress": 0,
"scalefac_scale": 0,
"table_select0": 0,
"table_select1": 0,
"table_select2": 0
}
]
}
], ],
"main_data_end": 0, "main_data_end": 0,
"private_bits": 0, "private_bits": 0,
@ -411,8 +407,7 @@ mp3> .headers[0] = 1
"other_data": "<0>", "other_data": "<0>",
"side_info": { "side_info": {
"granules": [ "granules": [
{ [
"channels": [
{ {
"big_values": 33, "big_values": 33,
"block_type": "start block", "block_type": "start block",
@ -430,10 +425,8 @@ mp3> .headers[0] = 1
"table_select0": 25, "table_select0": 25,
"table_select1": 9 "table_select1": 9
} }
] ],
}, [
{
"channels": [
{ {
"big_values": 77, "big_values": 77,
"block_type": "3 short windows", "block_type": "3 short windows",
@ -452,7 +445,6 @@ mp3> .headers[0] = 1
"table_select1": 8 "table_select1": 8
} }
] ]
}
], ],
"main_data_end": 0, "main_data_end": 0,
"private_bits": 0, "private_bits": 0,
@ -482,8 +474,7 @@ mp3> .headers[0] = 1
"padding_byte": "<1>qg==", "padding_byte": "<1>qg==",
"side_info": { "side_info": {
"granules": [ "granules": [
{ [
"channels": [
{ {
"big_values": 28, "big_values": 28,
"block_type": "end", "block_type": "end",
@ -501,10 +492,8 @@ mp3> .headers[0] = 1
"table_select0": 12, "table_select0": 12,
"table_select1": 6 "table_select1": 6
} }
] ],
}, [
{
"channels": [
{ {
"big_values": 0, "big_values": 0,
"blocksplit_flag": 0, "blocksplit_flag": 0,
@ -521,7 +510,6 @@ mp3> .headers[0] = 1
"table_select2": 0 "table_select2": 0
} }
] ]
}
], ],
"main_data_end": 9, "main_data_end": 9,
"private_bits": 0, "private_bits": 0,
@ -560,8 +548,24 @@ mp3> .headers[0] |= empty
"padding": "<5>AAAAAAA=", "padding": "<5>AAAAAAA=",
"side_info": { "side_info": {
"granules": [ "granules": [
[
{ {
"channels": [ "big_values": 0,
"blocksplit_flag": 0,
"count1table_select": 0,
"global_gain": 0,
"part2_3_length": 0,
"preflag": 0,
"region_address1": 0,
"region_address2": 0,
"scalefac_compress": 0,
"scalefac_scale": 0,
"table_select0": 0,
"table_select1": 0,
"table_select2": 0
}
],
[
{ {
"big_values": 0, "big_values": 0,
"blocksplit_flag": 0, "blocksplit_flag": 0,
@ -578,26 +582,6 @@ mp3> .headers[0] |= empty
"table_select2": 0 "table_select2": 0
} }
] ]
},
{
"channels": [
{
"big_values": 0,
"blocksplit_flag": 0,
"count1table_select": 0,
"global_gain": 0,
"part2_3_length": 0,
"preflag": 0,
"region_address1": 0,
"region_address2": 0,
"scalefac_compress": 0,
"scalefac_scale": 0,
"table_select0": 0,
"table_select1": 0,
"table_select2": 0
}
]
}
], ],
"main_data_end": 0, "main_data_end": 0,
"private_bits": 0, "private_bits": 0,
@ -761,8 +745,7 @@ mp3> .headers[0] |= empty
"other_data": "<0>", "other_data": "<0>",
"side_info": { "side_info": {
"granules": [ "granules": [
{ [
"channels": [
{ {
"big_values": 33, "big_values": 33,
"block_type": "start block", "block_type": "start block",
@ -780,10 +763,8 @@ mp3> .headers[0] |= empty
"table_select0": 25, "table_select0": 25,
"table_select1": 9 "table_select1": 9
} }
] ],
}, [
{
"channels": [
{ {
"big_values": 77, "big_values": 77,
"block_type": "3 short windows", "block_type": "3 short windows",
@ -802,7 +783,6 @@ mp3> .headers[0] |= empty
"table_select1": 8 "table_select1": 8
} }
] ]
}
], ],
"main_data_end": 0, "main_data_end": 0,
"private_bits": 0, "private_bits": 0,
@ -832,8 +812,7 @@ mp3> .headers[0] |= empty
"padding_byte": "<1>qg==", "padding_byte": "<1>qg==",
"side_info": { "side_info": {
"granules": [ "granules": [
{ [
"channels": [
{ {
"big_values": 28, "big_values": 28,
"block_type": "end", "block_type": "end",
@ -851,10 +830,8 @@ mp3> .headers[0] |= empty
"table_select0": 12, "table_select0": 12,
"table_select1": 6 "table_select1": 6
} }
] ],
}, [
{
"channels": [
{ {
"big_values": 0, "big_values": 0,
"blocksplit_flag": 0, "blocksplit_flag": 0,
@ -871,7 +848,6 @@ mp3> .headers[0] |= empty
"table_select2": 0 "table_select2": 0
} }
] ]
}
], ],
"main_data_end": 9, "main_data_end": 9,
"private_bits": 0, "private_bits": 0,

View File

@ -129,8 +129,24 @@ mp3> .headers[0].flags.a = 1
"padding": "<5>AAAAAAA=", "padding": "<5>AAAAAAA=",
"side_info": { "side_info": {
"granules": [ "granules": [
[
{ {
"channels": [ "big_values": 0,
"blocksplit_flag": 0,
"count1table_select": 0,
"global_gain": 0,
"part2_3_length": 0,
"preflag": 0,
"region_address1": 0,
"region_address2": 0,
"scalefac_compress": 0,
"scalefac_scale": 0,
"table_select0": 0,
"table_select1": 0,
"table_select2": 0
}
],
[
{ {
"big_values": 0, "big_values": 0,
"blocksplit_flag": 0, "blocksplit_flag": 0,
@ -147,26 +163,6 @@ mp3> .headers[0].flags.a = 1
"table_select2": 0 "table_select2": 0
} }
] ]
},
{
"channels": [
{
"big_values": 0,
"blocksplit_flag": 0,
"count1table_select": 0,
"global_gain": 0,
"part2_3_length": 0,
"preflag": 0,
"region_address1": 0,
"region_address2": 0,
"scalefac_compress": 0,
"scalefac_scale": 0,
"table_select0": 0,
"table_select1": 0,
"table_select2": 0
}
]
}
], ],
"main_data_end": 0, "main_data_end": 0,
"private_bits": 0, "private_bits": 0,
@ -330,8 +326,7 @@ mp3> .headers[0].flags.a = 1
"other_data": "<0>", "other_data": "<0>",
"side_info": { "side_info": {
"granules": [ "granules": [
{ [
"channels": [
{ {
"big_values": 33, "big_values": 33,
"block_type": "start block", "block_type": "start block",
@ -349,10 +344,8 @@ mp3> .headers[0].flags.a = 1
"table_select0": 25, "table_select0": 25,
"table_select1": 9 "table_select1": 9
} }
] ],
}, [
{
"channels": [
{ {
"big_values": 77, "big_values": 77,
"block_type": "3 short windows", "block_type": "3 short windows",
@ -371,7 +364,6 @@ mp3> .headers[0].flags.a = 1
"table_select1": 8 "table_select1": 8
} }
] ]
}
], ],
"main_data_end": 0, "main_data_end": 0,
"private_bits": 0, "private_bits": 0,
@ -401,8 +393,7 @@ mp3> .headers[0].flags.a = 1
"padding_byte": "<1>qg==", "padding_byte": "<1>qg==",
"side_info": { "side_info": {
"granules": [ "granules": [
{ [
"channels": [
{ {
"big_values": 28, "big_values": 28,
"block_type": "end", "block_type": "end",
@ -420,10 +411,8 @@ mp3> .headers[0].flags.a = 1
"table_select0": 12, "table_select0": 12,
"table_select1": 6 "table_select1": 6
} }
] ],
}, [
{
"channels": [
{ {
"big_values": 0, "big_values": 0,
"blocksplit_flag": 0, "blocksplit_flag": 0,
@ -440,7 +429,6 @@ mp3> .headers[0].flags.a = 1
"table_select2": 0 "table_select2": 0
} }
] ]
}
], ],
"main_data_end": 9, "main_data_end": 9,
"private_bits": 0, "private_bits": 0,
@ -513,8 +501,24 @@ mp3> .headers[0].flags.a |= empty
"padding": "<5>AAAAAAA=", "padding": "<5>AAAAAAA=",
"side_info": { "side_info": {
"granules": [ "granules": [
[
{ {
"channels": [ "big_values": 0,
"blocksplit_flag": 0,
"count1table_select": 0,
"global_gain": 0,
"part2_3_length": 0,
"preflag": 0,
"region_address1": 0,
"region_address2": 0,
"scalefac_compress": 0,
"scalefac_scale": 0,
"table_select0": 0,
"table_select1": 0,
"table_select2": 0
}
],
[
{ {
"big_values": 0, "big_values": 0,
"blocksplit_flag": 0, "blocksplit_flag": 0,
@ -531,26 +535,6 @@ mp3> .headers[0].flags.a |= empty
"table_select2": 0 "table_select2": 0
} }
] ]
},
{
"channels": [
{
"big_values": 0,
"blocksplit_flag": 0,
"count1table_select": 0,
"global_gain": 0,
"part2_3_length": 0,
"preflag": 0,
"region_address1": 0,
"region_address2": 0,
"scalefac_compress": 0,
"scalefac_scale": 0,
"table_select0": 0,
"table_select1": 0,
"table_select2": 0
}
]
}
], ],
"main_data_end": 0, "main_data_end": 0,
"private_bits": 0, "private_bits": 0,
@ -714,8 +698,7 @@ mp3> .headers[0].flags.a |= empty
"other_data": "<0>", "other_data": "<0>",
"side_info": { "side_info": {
"granules": [ "granules": [
{ [
"channels": [
{ {
"big_values": 33, "big_values": 33,
"block_type": "start block", "block_type": "start block",
@ -733,10 +716,8 @@ mp3> .headers[0].flags.a |= empty
"table_select0": 25, "table_select0": 25,
"table_select1": 9 "table_select1": 9
} }
] ],
}, [
{
"channels": [
{ {
"big_values": 77, "big_values": 77,
"block_type": "3 short windows", "block_type": "3 short windows",
@ -755,7 +736,6 @@ mp3> .headers[0].flags.a |= empty
"table_select1": 8 "table_select1": 8
} }
] ]
}
], ],
"main_data_end": 0, "main_data_end": 0,
"private_bits": 0, "private_bits": 0,
@ -785,8 +765,7 @@ mp3> .headers[0].flags.a |= empty
"padding_byte": "<1>qg==", "padding_byte": "<1>qg==",
"side_info": { "side_info": {
"granules": [ "granules": [
{ [
"channels": [
{ {
"big_values": 28, "big_values": 28,
"block_type": "end", "block_type": "end",
@ -804,10 +783,8 @@ mp3> .headers[0].flags.a |= empty
"table_select0": 12, "table_select0": 12,
"table_select1": 6 "table_select1": 6
} }
] ],
}, [
{
"channels": [
{ {
"big_values": 0, "big_values": 0,
"blocksplit_flag": 0, "blocksplit_flag": 0,
@ -824,7 +801,6 @@ mp3> .headers[0].flags.a |= empty
"table_select2": 0 "table_select2": 0
} }
] ]
}
], ],
"main_data_end": 9, "main_data_end": 9,
"private_bits": 0, "private_bits": 0,