mirror of
https://github.com/wader/fq.git
synced 2024-10-26 20:06:29 +03:00
Merge pull request #396 from wader/prores
prores_frame: Add basic container and frame header decoder
This commit is contained in:
commit
a27fdfe746
@ -108,6 +108,7 @@ opus_packet,
|
||||
pcap,
|
||||
pcapng,
|
||||
png,
|
||||
prores_frame,
|
||||
[protobuf](doc/formats.md#protobuf),
|
||||
protobuf_widevine,
|
||||
pssh_playready,
|
||||
|
@ -70,7 +70,7 @@
|
||||
|[`matroska`](#matroska) |Matroska 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) |MP3 file |<sub>`id3v2` `id3v1` `id3v11` `apev2` `mp3_frame`</sub>|
|
||||
|`mp3_frame` |MPEG audio layer 3 frame |<sub>`xing`</sub>|
|
||||
|[`mp4`](#mp4) |ISOBMFF MPEG-4 part 12 and 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 MPEG-4 part 12 and similar |<sub>`aac_frame` `av1_ccr` `av1_frame` `avc_au` `avc_dcr` `flac_frame` `flac_metadatablocks` `hevc_au` `hevc_dcr` `icc_profile` `id3v2` `image` `jpeg` `mp3_frame` `mpeg_es` `mpeg_pes_packet` `opus_packet` `prores_frame` `protobuf_widevine` `pssh_playready` `vorbis_packet` `vp9_frame` `vpx_ccr`</sub>|
|
||||
|`mpeg_asc` |MPEG-4 Audio Specific Config |<sub></sub>|
|
||||
|`mpeg_es` |MPEG Elementary Stream |<sub>`mpeg_asc` `vorbis_packet`</sub>|
|
||||
|`mpeg_pes` |MPEG Packetized elementary stream |<sub>`mpeg_pes_packet` `mpeg_spu`</sub>|
|
||||
@ -84,6 +84,7 @@
|
||||
|`pcap` |PCAP packet capture |<sub>`link_frame` `tcp_stream` `ipv4_packet`</sub>|
|
||||
|`pcapng` |PCAPNG packet capture |<sub>`link_frame` `tcp_stream` `ipv4_packet`</sub>|
|
||||
|`png` |Portable Network Graphics file |<sub>`icc_profile` `exif`</sub>|
|
||||
|`prores_frame` |Apple ProRes frame |<sub></sub>|
|
||||
|[`protobuf`](#protobuf) |Protobuf |<sub></sub>|
|
||||
|`protobuf_widevine` |Widevine protobuf |<sub>`protobuf`</sub>|
|
||||
|`pssh_playready` |PlayReady PSSH |<sub></sub>|
|
||||
|
1904
doc/formats.svg
1904
doc/formats.svg
File diff suppressed because it is too large
Load Diff
Before Width: | Height: | Size: 133 KiB After Width: | Height: | Size: 134 KiB |
@ -38,6 +38,7 @@ import (
|
||||
_ "github.com/wader/fq/format/opus"
|
||||
_ "github.com/wader/fq/format/pcap"
|
||||
_ "github.com/wader/fq/format/png"
|
||||
_ "github.com/wader/fq/format/prores"
|
||||
_ "github.com/wader/fq/format/protobuf"
|
||||
_ "github.com/wader/fq/format/raw"
|
||||
_ "github.com/wader/fq/format/rtmp"
|
||||
|
@ -690,6 +690,13 @@ out # Decode file as png
|
||||
out $ fq -d png . file
|
||||
out # Decode value as png
|
||||
out ... | png
|
||||
"help(prores_frame)"
|
||||
out prores_frame: Apple ProRes frame decoder
|
||||
out Examples:
|
||||
out # Decode file as prores_frame
|
||||
out $ fq -d prores_frame . file
|
||||
out # Decode value as prores_frame
|
||||
out ... | prores_frame
|
||||
"help(protobuf)"
|
||||
out protobuf: Protobuf decoder
|
||||
out Examples:
|
||||
|
@ -103,6 +103,7 @@ const (
|
||||
PCAP = "pcap"
|
||||
PCAPNG = "pcapng"
|
||||
PNG = "png"
|
||||
PRORES_FRAME = "prores_frame"
|
||||
PROTOBUF = "protobuf"
|
||||
PROTOBUF_WIDEVINE = "protobuf_widevine"
|
||||
PSSH_PLAYREADY = "pssh_playready"
|
||||
|
@ -61,6 +61,24 @@ var subTypeNames = scalar.StrToDescription{
|
||||
"vide": "Video Track",
|
||||
}
|
||||
|
||||
var dataFormatNames = scalar.StrToDescription{
|
||||
"apch": "Apple ProRes 422 High Quality",
|
||||
"apcn": "Apple ProRes 422 Standard Definition",
|
||||
"apcs": "Apple ProRes 422 LT",
|
||||
"apco": "Apple ProRes 422 Proxy",
|
||||
"ap4h": "Apple ProRes 4444",
|
||||
"fLaC": "Fres Lossless Audio Codec",
|
||||
"Opus": "Xiph Opus",
|
||||
"vp09": "VP9",
|
||||
"avc1": "Advanced Video Coding / H.264 / MPEG-4 Part 10",
|
||||
"hev1": "High Efficiency Video Coding / H.265 / MPEG-H Part 2",
|
||||
"hvc1": "High Efficiency Video Coding / H.265 / MPEG-H Part 2",
|
||||
"av01": "AV1",
|
||||
"mp4a": "MPEG Audio",
|
||||
"mp4v": "MPEG Video",
|
||||
"jpeg": "JPEG Image",
|
||||
}
|
||||
|
||||
var (
|
||||
uuidIsmlManifestBytes = [16]byte{0xa5, 0xd4, 0x0b, 0x30, 0xe8, 0x14, 0x11, 0xdd, 0xba, 0x2f, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66}
|
||||
uuidXmpBytes = [16]byte{0xbe, 0x7a, 0xcf, 0xcb, 0x97, 0xa9, 0x42, 0xe8, 0x9c, 0x71, 0x99, 0x94, 0x91, 0xe3, 0xaf, 0xac}
|
||||
@ -403,7 +421,7 @@ func init() {
|
||||
d.FieldArrayLoop("boxes", func() bool { return i < entryCount }, func(d *decode.D) {
|
||||
d.FieldStruct("box", func(d *decode.D) {
|
||||
size := d.FieldU32("size")
|
||||
dataFormat := d.FieldUTF8("type", 4)
|
||||
dataFormat := d.FieldUTF8("type", 4, dataFormatNames)
|
||||
subType := ""
|
||||
if t := ctx.currentTrack(); t != nil {
|
||||
t.sampleDescriptions = append(t.sampleDescriptions, sampleDescription{
|
||||
|
@ -33,6 +33,7 @@ var av1CCRFormat decode.Group
|
||||
var av1FrameFormat decode.Group
|
||||
var flacFrameFormat decode.Group
|
||||
var flacMetadatablocksFormat decode.Group
|
||||
var iccProfileFormat decode.Group
|
||||
var id3v2Format decode.Group
|
||||
var imageFormat decode.Group
|
||||
var jpegFormat decode.Group
|
||||
@ -44,12 +45,12 @@ var mpegHEVCDCRFrameFormat decode.Group
|
||||
var mpegHEVCSampleFormat decode.Group
|
||||
var mpegPESPacketSampleFormat decode.Group
|
||||
var opusPacketFrameFormat decode.Group
|
||||
var proResFrameFormat decode.Group
|
||||
var protoBufWidevineFormat decode.Group
|
||||
var psshPlayreadyFormat decode.Group
|
||||
var vorbisPacketFormat decode.Group
|
||||
var vp9FrameFormat decode.Group
|
||||
var vpxCCRFormat decode.Group
|
||||
var iccProfileFormat decode.Group
|
||||
|
||||
func init() {
|
||||
interp.RegisterFormat(decode.Format{
|
||||
@ -68,25 +69,26 @@ func init() {
|
||||
{Names: []string{format.AAC_FRAME}, Group: &aacFrameFormat},
|
||||
{Names: []string{format.AV1_CCR}, Group: &av1CCRFormat},
|
||||
{Names: []string{format.AV1_FRAME}, Group: &av1FrameFormat},
|
||||
{Names: []string{format.AVC_AU}, Group: &mpegAVCAUFormat},
|
||||
{Names: []string{format.AVC_DCR}, Group: &mpegAVCDCRFormat},
|
||||
{Names: []string{format.FLAC_FRAME}, Group: &flacFrameFormat},
|
||||
{Names: []string{format.FLAC_METADATABLOCKS}, Group: &flacMetadatablocksFormat},
|
||||
{Names: []string{format.HEVC_AU}, Group: &mpegHEVCSampleFormat},
|
||||
{Names: []string{format.HEVC_DCR}, Group: &mpegHEVCDCRFrameFormat},
|
||||
{Names: []string{format.ICC_PROFILE}, Group: &iccProfileFormat},
|
||||
{Names: []string{format.ID3V2}, Group: &id3v2Format},
|
||||
{Names: []string{format.IMAGE}, Group: &imageFormat},
|
||||
{Names: []string{format.JPEG}, Group: &jpegFormat},
|
||||
{Names: []string{format.MP3_FRAME}, Group: &mp3FrameFormat},
|
||||
{Names: []string{format.AVC_AU}, Group: &mpegAVCAUFormat},
|
||||
{Names: []string{format.AVC_DCR}, Group: &mpegAVCDCRFormat},
|
||||
{Names: []string{format.MPEG_ES}, Group: &mpegESFormat},
|
||||
{Names: []string{format.HEVC_AU}, Group: &mpegHEVCSampleFormat},
|
||||
{Names: []string{format.HEVC_DCR}, Group: &mpegHEVCDCRFrameFormat},
|
||||
{Names: []string{format.MPEG_PES_PACKET}, Group: &mpegPESPacketSampleFormat},
|
||||
{Names: []string{format.OPUS_PACKET}, Group: &opusPacketFrameFormat},
|
||||
{Names: []string{format.PRORES_FRAME}, Group: &proResFrameFormat},
|
||||
{Names: []string{format.PROTOBUF_WIDEVINE}, Group: &protoBufWidevineFormat},
|
||||
{Names: []string{format.PSSH_PLAYREADY}, Group: &psshPlayreadyFormat},
|
||||
{Names: []string{format.VORBIS_PACKET}, Group: &vorbisPacketFormat},
|
||||
{Names: []string{format.VP9_FRAME}, Group: &vp9FrameFormat},
|
||||
{Names: []string{format.VPX_CCR}, Group: &vpxCCRFormat},
|
||||
{Names: []string{format.ICC_PROFILE}, Group: &iccProfileFormat},
|
||||
},
|
||||
Functions: []string{"_help"},
|
||||
})
|
||||
@ -245,6 +247,12 @@ func mp4Tracks(d *decode.D, ctx *decodeContext) {
|
||||
d.FieldFormatLen(name, nBits, jpegFormat, inArg)
|
||||
case dataFormat == "jpeg":
|
||||
d.FieldFormatLen(name, nBits, jpegFormat, inArg)
|
||||
case dataFormat == "apch",
|
||||
dataFormat == "apcn",
|
||||
dataFormat == "scpa",
|
||||
dataFormat == "apco",
|
||||
dataFormat == "ap4h":
|
||||
d.FieldFormatLen(name, nBits, proResFrameFormat, inArg)
|
||||
default:
|
||||
d.FieldRawLen(name, d.BitsLeft())
|
||||
}
|
||||
@ -263,7 +271,7 @@ func mp4Tracks(d *decode.D, ctx *decodeContext) {
|
||||
}
|
||||
}
|
||||
|
||||
d.FieldValueStr("data_foramt", trackSDDataFormat)
|
||||
d.FieldValueStr("data_foramt", trackSDDataFormat, dataFormatNames)
|
||||
|
||||
switch trackSDDataFormat {
|
||||
case "lpcm",
|
||||
|
4
format/mp4/testdata/aac.fqtest
vendored
4
format/mp4/testdata/aac.fqtest
vendored
@ -192,7 +192,7 @@ $ fq -d mp4 dv aac.mp4
|
||||
| | | boxes[0:1]: 0x437-0x490.7 (90)
|
||||
| | | [0]{}: box 0x437-0x490.7 (90)
|
||||
0x430| 00 00 00 5a | ...Z | size: 90 0x437-0x43a.7 (4)
|
||||
0x430| 6d 70 34 61 | mp4a | type: "mp4a" 0x43b-0x43e.7 (4)
|
||||
0x430| 6d 70 34 61 | mp4a | type: "mp4a" (MPEG Audio) 0x43b-0x43e.7 (4)
|
||||
0x430| 00| .| reserved: raw bits 0x43f-0x444.7 (6)
|
||||
0x440|00 00 00 00 00 |..... |
|
||||
0x440| 00 01 | .. | data_reference_index: 1 0x445-0x446.7 (2)
|
||||
@ -429,4 +429,4 @@ $ fq -d mp4 dv aac.mp4
|
||||
0x290|b4 |. | [1]: raw bits byte_align 0x290.6-0x290.7 (0.2)
|
||||
0x290| 70 | p | [2]: raw bits data 0x291-0x291.7 (1)
|
||||
| | | id: 1 0x59d-NA (0)
|
||||
| | | data_foramt: "mp4a" 0x59d-NA (0)
|
||||
| | | data_foramt: "mp4a" (MPEG Audio) 0x59d-NA (0)
|
||||
|
4
format/mp4/testdata/av1.fqtest
vendored
4
format/mp4/testdata/av1.fqtest
vendored
@ -178,7 +178,7 @@ $ fq -d mp4 dv av1.mp4
|
||||
| | | boxes[0:1]: 0x1369-0x13f3.7 (139)
|
||||
| | | [0]{}: box 0x1369-0x13f3.7 (139)
|
||||
0x1360| 00 00 00 8b | .... | size: 139 0x1369-0x136c.7 (4)
|
||||
0x1360| 61 76 30| av0| type: "av01" 0x136d-0x1370.7 (4)
|
||||
0x1360| 61 76 30| av0| type: "av01" (AV1) 0x136d-0x1370.7 (4)
|
||||
0x1370|31 |1 |
|
||||
0x1370| 00 00 00 00 00 00 | ...... | reserved: raw bits 0x1371-0x1376.7 (6)
|
||||
0x1370| 00 01 | .. | data_reference_index: 1 0x1377-0x1378.7 (2)
|
||||
@ -341,4 +341,4 @@ $ fq -d mp4 dv av1.mp4
|
||||
0x0050|f6 0a 4f ae f3 fe ec e7 30 4f 3f 13 9c 75 c9 6a|..O.....0O?..u.j| data: raw bits 0x50-0x11bf.7 (4464)
|
||||
* |until 0x11bf.7 (4464) | |
|
||||
| | | id: 1 0x14b2-NA (0)
|
||||
| | | data_foramt: "av01" 0x14b2-NA (0)
|
||||
| | | data_foramt: "av01" (AV1) 0x14b2-NA (0)
|
||||
|
4
format/mp4/testdata/avc.fqtest
vendored
4
format/mp4/testdata/avc.fqtest
vendored
@ -196,7 +196,7 @@ $ fq -d mp4 dv avc.mp4
|
||||
| | | boxes[0:1]: 0xf2a-0xfd9.7 (176)
|
||||
| | | [0]{}: box 0xf2a-0xfd9.7 (176)
|
||||
0x00f20| 00 00 00 b0 | .... | size: 176 0xf2a-0xf2d.7 (4)
|
||||
0x00f20| 61 76| av| type: "avc1" 0xf2e-0xf31.7 (4)
|
||||
0x00f20| 61 76| av| type: "avc1" (Advanced Video Coding / H.264 / MPEG-4 Part 10) 0xf2e-0xf31.7 (4)
|
||||
0x00f30|63 31 |c1 |
|
||||
0x00f30| 00 00 00 00 00 00 | ...... | reserved: raw bits 0xf32-0xf37.7 (6)
|
||||
0x00f30| 00 01 | .. | data_reference_index: 1 0xf38-0xf39.7 (2)
|
||||
@ -514,4 +514,4 @@ $ fq -d mp4 dv avc.mp4
|
||||
0x00d50|79 0a ff 01 f9 2d 04 d3 29 fe 4d 76 42 26 f6 cd|y....-..).MvB&..|
|
||||
* |until 0xd80.7 (51) | |
|
||||
| | | id: 1 0x10e0-NA (0)
|
||||
| | | data_foramt: "avc1" 0x10e0-NA (0)
|
||||
| | | data_foramt: "avc1" (Advanced Video Coding / H.264 / MPEG-4 Part 10) 0x10e0-NA (0)
|
||||
|
8
format/mp4/testdata/dash.fqtest
vendored
8
format/mp4/testdata/dash.fqtest
vendored
@ -204,7 +204,7 @@ $ fq -d mp4 dv dash_audio_init.mp4
|
||||
| | | boxes[0:1]: 0x218-0x265.7 (78)
|
||||
| | | [0]{}: box 0x218-0x265.7 (78)
|
||||
0x210| 00 00 00 4e | ...N | size: 78 0x218-0x21b.7 (4)
|
||||
0x210| 6d 70 34 61| mp4a| type: "mp4a" 0x21c-0x21f.7 (4)
|
||||
0x210| 6d 70 34 61| mp4a| type: "mp4a" (MPEG Audio) 0x21c-0x21f.7 (4)
|
||||
0x220|00 00 00 00 00 00 |...... | reserved: raw bits 0x220-0x225.7 (6)
|
||||
0x220| 00 01 | .. | data_reference_index: 1 0x226-0x227.7 (2)
|
||||
0x220| 00 00 | .. | version: 0 0x228-0x229.7 (2)
|
||||
@ -348,7 +348,7 @@ $ fq -d mp4 dv dash_audio_init.mp4
|
||||
| | | tracks[0:1]: 0x330-NA (0)
|
||||
| | | [0]{}: track 0x330-NA (0)
|
||||
| | | id: 1 0x330-NA (0)
|
||||
| | | data_foramt: "mp4a" 0x330-NA (0)
|
||||
| | | data_foramt: "mp4a" (MPEG Audio) 0x330-NA (0)
|
||||
| | | samples[0:0]: 0x330-NA (0)
|
||||
$ fq -d mp4 dv dash_audio_1.m4s
|
||||
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: dash_audio_1.m4s (mp4) 0x0-0x4eb.7 (1260)
|
||||
@ -696,7 +696,7 @@ $ fq -d mp4 dv dash_video_init.mp4
|
||||
| | | boxes[0:1]: 0x21c-0x2a2.7 (135)
|
||||
| | | [0]{}: box 0x21c-0x2a2.7 (135)
|
||||
0x0210| 00 00 00 87| ....| size: 135 0x21c-0x21f.7 (4)
|
||||
0x0220|61 76 63 31 |avc1 | type: "avc1" 0x220-0x223.7 (4)
|
||||
0x0220|61 76 63 31 |avc1 | type: "avc1" (Advanced Video Coding / H.264 / MPEG-4 Part 10) 0x220-0x223.7 (4)
|
||||
0x0220| 00 00 00 00 00 00 | ...... | reserved: raw bits 0x224-0x229.7 (6)
|
||||
0x0220| 00 01 | .. | data_reference_index: 1 0x22a-0x22b.7 (2)
|
||||
0x0220| 00 00 | .. | version: 0 0x22c-0x22d.7 (2)
|
||||
@ -886,7 +886,7 @@ $ fq -d mp4 dv dash_video_init.mp4
|
||||
| | | tracks[0:1]: 0x333-NA (0)
|
||||
| | | [0]{}: track 0x333-NA (0)
|
||||
| | | id: 1 0x333-NA (0)
|
||||
| | | data_foramt: "avc1" 0x333-NA (0)
|
||||
| | | data_foramt: "avc1" (Advanced Video Coding / H.264 / MPEG-4 Part 10) 0x333-NA (0)
|
||||
| | | samples[0:0]: 0x333-NA (0)
|
||||
$ fq -d mp4 dv dash_video_1.m4s
|
||||
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: dash_video_1.m4s (mp4) 0x0-0x1fd0.7 (8145)
|
||||
|
2
format/mp4/testdata/decode_samples.fqtest
vendored
2
format/mp4/testdata/decode_samples.fqtest
vendored
@ -14,4 +14,4 @@ $ fq -o decode_samples=false -d mp4 '.tracks | dv' aac.mp4
|
||||
0x280| 01 18 81| ...| [3]: raw bits sample 0x28d-0x291.7 (5)
|
||||
0x290|b4 70 |.p |
|
||||
| | | id: 1 0x59d-NA (0)
|
||||
| | | data_foramt: "mp4a" 0x59d-NA (0)
|
||||
| | | data_foramt: "mp4a" (MPEG Audio) 0x59d-NA (0)
|
||||
|
4
format/mp4/testdata/flac.fqtest
vendored
4
format/mp4/testdata/flac.fqtest
vendored
@ -193,7 +193,7 @@ $ fq -d mp4 dv flac.mp4
|
||||
| | | [0]{}: box 0x42f-0x484.7 (86)
|
||||
0x420| 00| .| size: 86 0x42f-0x432.7 (4)
|
||||
0x430|00 00 56 |..V |
|
||||
0x430| 66 4c 61 43 | fLaC | type: "fLaC" 0x433-0x436.7 (4)
|
||||
0x430| 66 4c 61 43 | fLaC | type: "fLaC" (Fres Lossless Audio Codec) 0x433-0x436.7 (4)
|
||||
0x430| 00 00 00 00 00 00 | ...... | reserved: raw bits 0x437-0x43c.7 (6)
|
||||
0x430| 00 01 | .. | data_reference_index: 1 0x43d-0x43e.7 (2)
|
||||
0x430| 00| .| version: 0 0x43f-0x440.7 (2)
|
||||
@ -372,4 +372,4 @@ $ fq -d mp4 dv flac.mp4
|
||||
0x280| 00 | . | byte_align: 0 (valid) 0x287.2-0x287.7 (0.6)
|
||||
0x280| 82 cb | .. | footer_crc: "82cb" (raw bits) (valid) 0x288-0x289.7 (2)
|
||||
| | | id: 1 0x543-NA (0)
|
||||
| | | data_foramt: "fLaC" 0x543-NA (0)
|
||||
| | | data_foramt: "fLaC" (Fres Lossless Audio Codec) 0x543-NA (0)
|
||||
|
8
format/mp4/testdata/fragmented.fqtest
vendored
8
format/mp4/testdata/fragmented.fqtest
vendored
@ -154,7 +154,7 @@ $ fq -d mp4 dv fragmented.mp4
|
||||
| | | boxes[0:1]: 0x1a9-0x23f.7 (151)
|
||||
| | | [0]{}: box 0x1a9-0x23f.7 (151)
|
||||
0x001a0| 00 00 00 97 | .... | size: 151 0x1a9-0x1ac.7 (4)
|
||||
0x001a0| 61 76 63| avc| type: "avc1" 0x1ad-0x1b0.7 (4)
|
||||
0x001a0| 61 76 63| avc| type: "avc1" (Advanced Video Coding / H.264 / MPEG-4 Part 10) 0x1ad-0x1b0.7 (4)
|
||||
0x001b0|31 |1 |
|
||||
0x001b0| 00 00 00 00 00 00 | ...... | reserved: raw bits 0x1b1-0x1b6.7 (6)
|
||||
0x001b0| 00 01 | .. | data_reference_index: 1 0x1b7-0x1b8.7 (2)
|
||||
@ -411,7 +411,7 @@ $ fq -d mp4 dv fragmented.mp4
|
||||
| | | boxes[0:1]: 0x391-0x3fe.7 (110)
|
||||
| | | [0]{}: box 0x391-0x3fe.7 (110)
|
||||
0x00390| 00 00 00 6e | ...n | size: 110 0x391-0x394.7 (4)
|
||||
0x00390| 6d 70 34 61 | mp4a | type: "mp4a" 0x395-0x398.7 (4)
|
||||
0x00390| 6d 70 34 61 | mp4a | type: "mp4a" (MPEG Audio) 0x395-0x398.7 (4)
|
||||
0x00390| 00 00 00 00 00 00 | ...... | reserved: raw bits 0x399-0x39e.7 (6)
|
||||
0x00390| 00| .| data_reference_index: 1 0x39f-0x3a0.7 (2)
|
||||
0x003a0|01 |. |
|
||||
@ -1167,7 +1167,7 @@ $ fq -d mp4 dv fragmented.mp4
|
||||
0x02240|86 f8 14 d8 53 23 af ff f2 50 06 7f 30 02 17 55|....S#...P..0..U|
|
||||
* |until 0x2af4.7 (2234) | |
|
||||
| | | id: 1 0x2bb4-NA (0)
|
||||
| | | data_foramt: "avc1" 0x2bb4-NA (0)
|
||||
| | | data_foramt: "avc1" (Advanced Video Coding / H.264 / MPEG-4 Part 10) 0x2bb4-NA (0)
|
||||
| | | [1]{}: track 0x13e0-0x2bb3.7 (6100)
|
||||
| | | samples[0:6]: 0x13e0-0x2af9.7 (5914)
|
||||
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| [0][0:4]: sample (aac_frame) 0x13e0-0x14ad.7 (206)
|
||||
@ -1270,4 +1270,4 @@ $ fq -d mp4 dv fragmented.mp4
|
||||
0x02af0| b4 | . | [1]: raw bits byte_align 0x2af8.6-0x2af8.7 (0.2)
|
||||
0x02af0| 70 | p | [2]: raw bits data 0x2af9-0x2af9.7 (1)
|
||||
| | | id: 2 0x2bb4-NA (0)
|
||||
| | | data_foramt: "mp4a" 0x2bb4-NA (0)
|
||||
| | | data_foramt: "mp4a" (MPEG Audio) 0x2bb4-NA (0)
|
||||
|
4
format/mp4/testdata/hevc.fqtest
vendored
4
format/mp4/testdata/hevc.fqtest
vendored
@ -196,7 +196,7 @@ $ fq -d mp4 dv hevc.mp4
|
||||
| | | boxes[0:1]: 0xa2a-0x13dc.7 (2483)
|
||||
| | | [0]{}: box 0xa2a-0x13dc.7 (2483)
|
||||
0x0a20| 00 00 09 b3 | .... | size: 2483 0xa2a-0xa2d.7 (4)
|
||||
0x0a20| 68 65| he| type: "hev1" 0xa2e-0xa31.7 (4)
|
||||
0x0a20| 68 65| he| type: "hev1" (High Efficiency Video Coding / H.265 / MPEG-H Part 2) 0xa2e-0xa31.7 (4)
|
||||
0x0a30|76 31 |v1 |
|
||||
0x0a30| 00 00 00 00 00 00 | ...... | reserved: raw bits 0xa32-0xa37.7 (6)
|
||||
0x0a30| 00 01 | .. | data_reference_index: 1 0xa38-0xa39.7 (2)
|
||||
@ -636,4 +636,4 @@ $ fq -d mp4 dv hevc.mp4
|
||||
0x0040|fd a9 78 83 ff fb 75 6c 0b 3f ff 94 ce 7f aa fe|..x...ul.?......|
|
||||
* |until 0x880.7 (2127) | |
|
||||
| | | id: 1 0x149b-NA (0)
|
||||
| | | data_foramt: "hev1" 0x149b-NA (0)
|
||||
| | | data_foramt: "hev1" (High Efficiency Video Coding / H.265 / MPEG-H Part 2) 0x149b-NA (0)
|
||||
|
4
format/mp4/testdata/mp3.fqtest
vendored
4
format/mp4/testdata/mp3.fqtest
vendored
@ -192,7 +192,7 @@ $ fq -d mp4 dv mp3.mp4
|
||||
| | | boxes[0:1]: 0x443-0x492.7 (80)
|
||||
| | | [0]{}: box 0x443-0x492.7 (80)
|
||||
0x440| 00 00 00 50 | ...P | size: 80 0x443-0x446.7 (4)
|
||||
0x440| 6d 70 34 61 | mp4a | type: "mp4a" 0x447-0x44a.7 (4)
|
||||
0x440| 6d 70 34 61 | mp4a | type: "mp4a" (MPEG Audio) 0x447-0x44a.7 (4)
|
||||
0x440| 00 00 00 00 00| .....| reserved: raw bits 0x44b-0x450.7 (6)
|
||||
0x450|00 |. |
|
||||
0x450| 00 01 | .. | data_reference_index: 1 0x451-0x452.7 (2)
|
||||
@ -506,4 +506,4 @@ $ fq -d mp4 dv mp3.mp4
|
||||
* |until 0x29d.7 (188) | |
|
||||
| | | crc_calculated: "c36b" (raw bits) 0x29e-NA (0)
|
||||
| | | id: 1 0x565-NA (0)
|
||||
| | | data_foramt: "mp4a" 0x565-NA (0)
|
||||
| | | data_foramt: "mp4a" (MPEG Audio) 0x565-NA (0)
|
||||
|
4
format/mp4/testdata/mpeg2.fqtest
vendored
4
format/mp4/testdata/mpeg2.fqtest
vendored
@ -195,7 +195,7 @@ $ fq -d mp4 dv mpeg2.mp4
|
||||
| | | [0]{}: box 0x214f-0x21ea.7 (156)
|
||||
0x2140| 00| .| size: 156 0x214f-0x2152.7 (4)
|
||||
0x2150|00 00 9c |... |
|
||||
0x2150| 6d 70 34 76 | mp4v | type: "mp4v" 0x2153-0x2156.7 (4)
|
||||
0x2150| 6d 70 34 76 | mp4v | type: "mp4v" (MPEG Video) 0x2153-0x2156.7 (4)
|
||||
0x2150| 00 00 00 00 00 00 | ...... | reserved: raw bits 0x2157-0x215c.7 (6)
|
||||
0x2150| 00 01 | .. | data_reference_index: 1 0x215d-0x215e.7 (2)
|
||||
0x2150| 00| .| version: 0 0x215f-0x2160.7 (2)
|
||||
@ -356,4 +356,4 @@ $ fq -d mp4 dv mpeg2.mp4
|
||||
0x0040|00 00 00 00 01 b8 00 08 00 40 00 00 01 00 00 0f|.........@......|
|
||||
* |until 0x1fa5.7 (8046) | |
|
||||
| | | id: 1 0x22a9-NA (0)
|
||||
| | | data_foramt: "mp4v" 0x22a9-NA (0)
|
||||
| | | data_foramt: "mp4v" (MPEG Video) 0x22a9-NA (0)
|
||||
|
4
format/mp4/testdata/opus.fqtest
vendored
4
format/mp4/testdata/opus.fqtest
vendored
@ -187,7 +187,7 @@ $ fq -d mp4 dv opus.mp4
|
||||
| | | boxes[0:1]: 0x33c-0x372.7 (55)
|
||||
| | | [0]{}: box 0x33c-0x372.7 (55)
|
||||
0x330| 00 00 00 37| ...7| size: 55 0x33c-0x33f.7 (4)
|
||||
0x340|4f 70 75 73 |Opus | type: "Opus" 0x340-0x343.7 (4)
|
||||
0x340|4f 70 75 73 |Opus | type: "Opus" (Xiph Opus) 0x340-0x343.7 (4)
|
||||
0x340| 00 00 00 00 00 00 | ...... | reserved: raw bits 0x344-0x349.7 (6)
|
||||
0x340| 00 01 | .. | data_reference_index: 1 0x34a-0x34b.7 (2)
|
||||
0x340| 00 00 | .. | version: 0 0x34c-0x34d.7 (2)
|
||||
@ -353,4 +353,4 @@ $ fq -d mp4 dv opus.mp4
|
||||
0x120|02 cc 49 57 27 d4 a3 83 e9 53 33 fe 45 62 33 33|..IW'....S3.Eb33|
|
||||
* |until 0x196.7 (120) | |
|
||||
| | | id: 1 0x439-NA (0)
|
||||
| | | data_foramt: "Opus" 0x439-NA (0)
|
||||
| | | data_foramt: "Opus" (Xiph Opus) 0x439-NA (0)
|
||||
|
4
format/mp4/testdata/stz2.fqtest
vendored
4
format/mp4/testdata/stz2.fqtest
vendored
@ -179,7 +179,7 @@ $ fq -d mp4 'dv' stz2.mp4
|
||||
| | | [0]{}: box 0x1ce-0x214.7 (71)
|
||||
0x1c0| 00 00| ..| size: 71 0x1ce-0x1d1.7 (4)
|
||||
0x1d0|00 47 |.G |
|
||||
0x1d0| 6d 70 34 61 | mp4a | type: "mp4a" 0x1d2-0x1d5.7 (4)
|
||||
0x1d0| 6d 70 34 61 | mp4a | type: "mp4a" (MPEG Audio) 0x1d2-0x1d5.7 (4)
|
||||
0x1d0| 00 00 00 00 00 00 | ...... | reserved: raw bits 0x1d6-0x1db.7 (6)
|
||||
0x1d0| 00 01 | .. | data_reference_index: 1 0x1dc-0x1dd.7 (2)
|
||||
0x1d0| 00 00| ..| version: 0 0x1de-0x1df.7 (2)
|
||||
@ -463,4 +463,4 @@ $ fq -d mp4 'dv' stz2.mp4
|
||||
* |until 0x4f5.7 (188) | |
|
||||
| | | crc_calculated: "c36b" (raw bits) 0x4f6-NA (0)
|
||||
| | | id: 1 0x530-NA (0)
|
||||
| | | data_foramt: "mp4a" 0x530-NA (0)
|
||||
| | | data_foramt: "mp4a" (MPEG Audio) 0x530-NA (0)
|
||||
|
4
format/mp4/testdata/vorbis.fqtest
vendored
4
format/mp4/testdata/vorbis.fqtest
vendored
@ -194,7 +194,7 @@ $ fq -d mp4 dv vorbis.mp4
|
||||
| | | boxes[0:1]: 0x382-0x10b6.7 (3381)
|
||||
| | | [0]{}: box 0x382-0x10b6.7 (3381)
|
||||
0x0380| 00 00 0d 35 | ...5 | size: 3381 0x382-0x385.7 (4)
|
||||
0x0380| 6d 70 34 61 | mp4a | type: "mp4a" 0x386-0x389.7 (4)
|
||||
0x0380| 6d 70 34 61 | mp4a | type: "mp4a" (MPEG Audio) 0x386-0x389.7 (4)
|
||||
0x0380| 00 00 00 00 00 00| ......| reserved: raw bits 0x38a-0x38f.7 (6)
|
||||
0x0390|00 01 |.. | data_reference_index: 1 0x390-0x391.7 (2)
|
||||
0x0390| 00 00 | .. | version: 0 0x392-0x393.7 (2)
|
||||
@ -383,4 +383,4 @@ $ fq -d mp4 dv vorbis.mp4
|
||||
0x0130|f2 81 46 bb c2 48 52 08 27 b8 83 10 ca 08 b1 a7|..F..HR.'.......|
|
||||
* |until 0x1dc.7 (174) | |
|
||||
| | | id: 1 0x1189-NA (0)
|
||||
| | | data_foramt: "mp4a" 0x1189-NA (0)
|
||||
| | | data_foramt: "mp4a" (MPEG Audio) 0x1189-NA (0)
|
||||
|
4
format/mp4/testdata/vp9.fqtest
vendored
4
format/mp4/testdata/vp9.fqtest
vendored
@ -178,7 +178,7 @@ $ fq -d mp4 dv vp9.mp4
|
||||
| | | [0]{}: box 0x170d-0x1790.7 (132)
|
||||
0x1700| 00 00 00| ...| size: 132 0x170d-0x1710.7 (4)
|
||||
0x1710|84 |. |
|
||||
0x1710| 76 70 30 39 | vp09 | type: "vp09" 0x1711-0x1714.7 (4)
|
||||
0x1710| 76 70 30 39 | vp09 | type: "vp09" (VP9) 0x1711-0x1714.7 (4)
|
||||
0x1710| 00 00 00 00 00 00 | ...... | reserved: raw bits 0x1715-0x171a.7 (6)
|
||||
0x1710| 00 01 | .. | data_reference_index: 1 0x171b-0x171c.7 (2)
|
||||
0x1710| 00 00 | .. | version: 0 0x171d-0x171e.7 (2)
|
||||
@ -336,4 +336,4 @@ $ fq -d mp4 dv vp9.mp4
|
||||
0x0040|f9 be 8f e7 71 ff 5f 97 ef c3 f9 7e 37 b0 7e ad|....q._....~7.~.|
|
||||
* |until 0x1563.7 (5424) | |
|
||||
| | | id: 1 0x184f-NA (0)
|
||||
| | | data_foramt: "vp09" 0x184f-NA (0)
|
||||
| | | data_foramt: "vp09" (VP9) 0x184f-NA (0)
|
||||
|
61
format/prores/prores_frame.go
Normal file
61
format/prores/prores_frame.go
Normal file
@ -0,0 +1,61 @@
|
||||
package prores
|
||||
|
||||
// https://wiki.multimedia.cx/index.php/Apple_ProRes
|
||||
|
||||
import (
|
||||
"github.com/wader/fq/format"
|
||||
"github.com/wader/fq/pkg/decode"
|
||||
"github.com/wader/fq/pkg/interp"
|
||||
"github.com/wader/fq/pkg/scalar"
|
||||
)
|
||||
|
||||
func init() {
|
||||
interp.RegisterFormat(decode.Format{
|
||||
Name: format.PRORES_FRAME,
|
||||
Description: "Apple ProRes frame",
|
||||
DecodeFn: decodeProResFrame,
|
||||
})
|
||||
}
|
||||
|
||||
func decodeProResFrame(d *decode.D, _ any) any {
|
||||
var size int64
|
||||
d.FieldStruct("container", func(d *decode.D) {
|
||||
size = int64(d.FieldU32("size"))
|
||||
d.FieldUTF8("type", 4, d.AssertStr("icpf"))
|
||||
})
|
||||
d.FramedFn((size-8)*8, func(d *decode.D) {
|
||||
d.FieldStruct("header", func(d *decode.D) {
|
||||
d.FieldU16("hdr_size")
|
||||
d.FieldU16("version")
|
||||
d.FieldUTF8("creator_id", 4)
|
||||
d.FieldU16("width")
|
||||
d.FieldU16("height")
|
||||
d.FieldStruct("frame_flags", func(d *decode.D) {
|
||||
d.FieldU2("chrominance_factor", scalar.UToSymStr{
|
||||
2: "422",
|
||||
3: "444",
|
||||
})
|
||||
d.FieldU2("unused0")
|
||||
d.FieldU2("frame_type", scalar.UToSymStr{
|
||||
0: "progressive",
|
||||
1: "interlaced_top_first",
|
||||
2: "interlaced_bottom_first",
|
||||
})
|
||||
d.FieldU2("unused1")
|
||||
})
|
||||
// TODO: more mappings
|
||||
d.FieldU8("reserved1")
|
||||
d.FieldU8("primaries")
|
||||
d.FieldU8("transf_func")
|
||||
d.FieldU8("color_matrix")
|
||||
d.FieldU4("src_pix_fmt")
|
||||
d.FieldU4("alpha_info")
|
||||
d.FieldU8("reserved2")
|
||||
d.FieldU8("q_mat_flags")
|
||||
d.FieldRawLen("q_mat_luma", 64*8)
|
||||
d.FieldRawLen("q_mat_chroma", 64*8)
|
||||
})
|
||||
d.FieldRawLen("picture_data", d.BitsLeft())
|
||||
})
|
||||
return nil
|
||||
}
|
328
format/prores/testdata/prores_frame.fqtest
vendored
Normal file
328
format/prores/testdata/prores_frame.fqtest
vendored
Normal file
@ -0,0 +1,328 @@
|
||||
# ffmpeg -y -f lavfi -i testsrc -c:v prores -t 50ms prores_frame.mov
|
||||
$ fq -d mp4 dv prores_frame.mov
|
||||
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: prores_frame.mov (mp4) 0x0-0x6efe.7 (28415)
|
||||
| | | boxes[0:4]: 0x0-0x6efe.7 (28415)
|
||||
| | | [0]{}: box 0x0-0x13.7 (20)
|
||||
0x0000|00 00 00 14 |.... | size: 20 0x0-0x3.7 (4)
|
||||
0x0000| 66 74 79 70 | ftyp | type: "ftyp" (File type and compatibility) 0x4-0x7.7 (4)
|
||||
0x0000| 71 74 20 20 | qt | major_brand: "qt " 0x8-0xb.7 (4)
|
||||
0x0000| 00 00 02 00| ....| minor_version: 512 0xc-0xf.7 (4)
|
||||
| | | brands[0:1]: 0x10-0x13.7 (4)
|
||||
0x0010|71 74 20 20 |qt | [0]: "qt" brand 0x10-0x13.7 (4)
|
||||
| | | [1]{}: box 0x14-0x1b.7 (8)
|
||||
0x0010| 00 00 00 08 | .... | size: 8 0x14-0x17.7 (4)
|
||||
0x0010| 77 69 64 65 | wide | type: "wide" (Expansion space reservation) 0x18-0x1b.7 (4)
|
||||
| | | data: raw bits 0x1c-NA (0)
|
||||
| | | [2]{}: box 0x1c-0x6c3c.7 (27681)
|
||||
0x0010| 00 00 6c 21| ..l!| size: 27681 0x1c-0x1f.7 (4)
|
||||
0x0020|6d 64 61 74 |mdat | type: "mdat" (Media data container) 0x20-0x23.7 (4)
|
||||
0x0020| 00 00 6c 19 69 63 70 66 00 94 00 00| ..l.icpf....| data: raw bits 0x24-0x6c3c.7 (27673)
|
||||
0x0030|66 6d 70 67 01 40 00 f0 c2 00 02 02 02 a0 00 03|fmpg.@..........|
|
||||
* |until 0x6c3c.7 (27673) | |
|
||||
| | | [3]{}: box 0x6c3d-0x6efe.7 (706)
|
||||
0x6c30| 00 00 02| ...| size: 706 0x6c3d-0x6c40.7 (4)
|
||||
0x6c40|c2 |. |
|
||||
0x6c40| 6d 6f 6f 76 | moov | type: "moov" (Container for all the meta-data) 0x6c41-0x6c44.7 (4)
|
||||
| | | boxes[0:3]: 0x6c45-0x6efe.7 (698)
|
||||
| | | [0]{}: box 0x6c45-0x6cb0.7 (108)
|
||||
0x6c40| 00 00 00 6c | ...l | size: 108 0x6c45-0x6c48.7 (4)
|
||||
0x6c40| 6d 76 68 64 | mvhd | type: "mvhd" (Movie header, overall declarations) 0x6c49-0x6c4c.7 (4)
|
||||
0x6c40| 00 | . | version: 0 0x6c4d-0x6c4d.7 (1)
|
||||
0x6c40| 00 00| ..| flags: 0 0x6c4e-0x6c50.7 (3)
|
||||
0x6c50|00 |. |
|
||||
0x6c50| 00 00 00 00 | .... | creation_time: 0 (1904-01-04T00:00:00Z) 0x6c51-0x6c54.7 (4)
|
||||
0x6c50| 00 00 00 00 | .... | modification_time: 0 (1904-01-04T00:00:00Z) 0x6c55-0x6c58.7 (4)
|
||||
0x6c50| 00 00 03 e8 | .... | time_scale: 1000 0x6c59-0x6c5c.7 (4)
|
||||
0x6c50| 00 00 00| ...| duration: 40 0x6c5d-0x6c60.7 (4)
|
||||
0x6c60|28 |( |
|
||||
0x6c60| 00 01 00 00 | .... | preferred_rate: 1 0x6c61-0x6c64.7 (4)
|
||||
0x6c60| 01 00 | .. | preferred_volume: 1 0x6c65-0x6c66.7 (2)
|
||||
0x6c60| 00 00 00 00 00 00 00 00 00| .........| reserved: "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" 0x6c67-0x6c70.7 (10)
|
||||
0x6c70|00 |. |
|
||||
| | | matrix_structure{}: 0x6c71-0x6c94.7 (36)
|
||||
0x6c70| 00 01 00 00 | .... | a: 1 0x6c71-0x6c74.7 (4)
|
||||
0x6c70| 00 00 00 00 | .... | b: 0 0x6c75-0x6c78.7 (4)
|
||||
0x6c70| 00 00 00 00 | .... | u: 0 0x6c79-0x6c7c.7 (4)
|
||||
0x6c70| 00 00 00| ...| c: 0 0x6c7d-0x6c80.7 (4)
|
||||
0x6c80|00 |. |
|
||||
0x6c80| 00 01 00 00 | .... | d: 1 0x6c81-0x6c84.7 (4)
|
||||
0x6c80| 00 00 00 00 | .... | v: 0 0x6c85-0x6c88.7 (4)
|
||||
0x6c80| 00 00 00 00 | .... | x: 0 0x6c89-0x6c8c.7 (4)
|
||||
0x6c80| 00 00 00| ...| y: 0 0x6c8d-0x6c90.7 (4)
|
||||
0x6c90|00 |. |
|
||||
0x6c90| 40 00 00 00 | @... | w: 1 0x6c91-0x6c94.7 (4)
|
||||
0x6c90| 00 00 00 00 | .... | preview_time: 0 0x6c95-0x6c98.7 (4)
|
||||
0x6c90| 00 00 00 00 | .... | preview_duration: 0 0x6c99-0x6c9c.7 (4)
|
||||
0x6c90| 00 00 00| ...| poster_time: 0 0x6c9d-0x6ca0.7 (4)
|
||||
0x6ca0|00 |. |
|
||||
0x6ca0| 00 00 00 00 | .... | selection_time: 0 0x6ca1-0x6ca4.7 (4)
|
||||
0x6ca0| 00 00 00 00 | .... | selection_duration: 0 0x6ca5-0x6ca8.7 (4)
|
||||
0x6ca0| 00 00 00 00 | .... | current_time: 0 0x6ca9-0x6cac.7 (4)
|
||||
0x6ca0| 00 00 00| ...| next_track_id: 2 0x6cad-0x6cb0.7 (4)
|
||||
0x6cb0|02 |. |
|
||||
| | | [1]{}: box 0x6cb1-0x6edd.7 (557)
|
||||
0x6cb0| 00 00 02 2d | ...- | size: 557 0x6cb1-0x6cb4.7 (4)
|
||||
0x6cb0| 74 72 61 6b | trak | type: "trak" (Container for an individual track or stream) 0x6cb5-0x6cb8.7 (4)
|
||||
| | | boxes[0:3]: 0x6cb9-0x6edd.7 (549)
|
||||
| | | [0]{}: box 0x6cb9-0x6d14.7 (92)
|
||||
0x6cb0| 00 00 00 5c | ...\ | size: 92 0x6cb9-0x6cbc.7 (4)
|
||||
0x6cb0| 74 6b 68| tkh| type: "tkhd" (Track header, overall information about the track) 0x6cbd-0x6cc0.7 (4)
|
||||
0x6cc0|64 |d |
|
||||
0x6cc0| 00 | . | version: 0 0x6cc1-0x6cc1.7 (1)
|
||||
0x6cc0| 00 00 03 | ... | flags: 3 0x6cc2-0x6cc4.7 (3)
|
||||
0x6cc0| 00 00 00 00 | .... | creation_time: 0 (1904-01-04T00:00:00Z) 0x6cc5-0x6cc8.7 (4)
|
||||
0x6cc0| 00 00 00 00 | .... | modification_time: 0 (1904-01-04T00:00:00Z) 0x6cc9-0x6ccc.7 (4)
|
||||
0x6cc0| 00 00 00| ...| track_id: 1 0x6ccd-0x6cd0.7 (4)
|
||||
0x6cd0|01 |. |
|
||||
0x6cd0| 00 00 00 00 | .... | reserved1: 0 0x6cd1-0x6cd4.7 (4)
|
||||
0x6cd0| 00 00 00 28 | ...( | duration: 40 0x6cd5-0x6cd8.7 (4)
|
||||
0x6cd0| 00 00 00 00 00 00 00| .......| reserved2: raw bits 0x6cd9-0x6ce0.7 (8)
|
||||
0x6ce0|00 |. |
|
||||
0x6ce0| 00 00 | .. | layer: 0 0x6ce1-0x6ce2.7 (2)
|
||||
0x6ce0| 00 00 | .. | alternate_group: 0 0x6ce3-0x6ce4.7 (2)
|
||||
0x6ce0| 00 00 | .. | volume: 0 0x6ce5-0x6ce6.7 (2)
|
||||
0x6ce0| 00 00 | .. | reserved3: 0 0x6ce7-0x6ce8.7 (2)
|
||||
| | | matrix_structure{}: 0x6ce9-0x6d0c.7 (36)
|
||||
0x6ce0| 00 01 00 00 | .... | a: 1 0x6ce9-0x6cec.7 (4)
|
||||
0x6ce0| 00 00 00| ...| b: 0 0x6ced-0x6cf0.7 (4)
|
||||
0x6cf0|00 |. |
|
||||
0x6cf0| 00 00 00 00 | .... | u: 0 0x6cf1-0x6cf4.7 (4)
|
||||
0x6cf0| 00 00 00 00 | .... | c: 0 0x6cf5-0x6cf8.7 (4)
|
||||
0x6cf0| 00 01 00 00 | .... | d: 1 0x6cf9-0x6cfc.7 (4)
|
||||
0x6cf0| 00 00 00| ...| v: 0 0x6cfd-0x6d00.7 (4)
|
||||
0x6d00|00 |. |
|
||||
0x6d00| 00 00 00 00 | .... | x: 0 0x6d01-0x6d04.7 (4)
|
||||
0x6d00| 00 00 00 00 | .... | y: 0 0x6d05-0x6d08.7 (4)
|
||||
0x6d00| 40 00 00 00 | @... | w: 1 0x6d09-0x6d0c.7 (4)
|
||||
0x6d00| 01 40 00| .@.| track_width: 320 0x6d0d-0x6d10.7 (4)
|
||||
0x6d10|00 |. |
|
||||
0x6d10| 00 f0 00 00 | .... | track_height: 240 0x6d11-0x6d14.7 (4)
|
||||
| | | [1]{}: box 0x6d15-0x6d38.7 (36)
|
||||
0x6d10| 00 00 00 24 | ...$ | size: 36 0x6d15-0x6d18.7 (4)
|
||||
0x6d10| 65 64 74 73 | edts | type: "edts" (Edit list container) 0x6d19-0x6d1c.7 (4)
|
||||
| | | boxes[0:1]: 0x6d1d-0x6d38.7 (28)
|
||||
| | | [0]{}: box 0x6d1d-0x6d38.7 (28)
|
||||
0x6d10| 00 00 00| ...| size: 28 0x6d1d-0x6d20.7 (4)
|
||||
0x6d20|1c |. |
|
||||
0x6d20| 65 6c 73 74 | elst | type: "elst" (An edit list) 0x6d21-0x6d24.7 (4)
|
||||
0x6d20| 00 | . | version: 0 0x6d25-0x6d25.7 (1)
|
||||
0x6d20| 00 00 00 | ... | flags: 0 0x6d26-0x6d28.7 (3)
|
||||
0x6d20| 00 00 00 01 | .... | entry_count: 1 0x6d29-0x6d2c.7 (4)
|
||||
| | | entries[0:1]: 0x6d2d-0x6d38.7 (12)
|
||||
| | | [0]{}: entry 0x6d2d-0x6d38.7 (12)
|
||||
0x6d20| 00 00 00| ...| segment_duration: 40 0x6d2d-0x6d30.7 (4)
|
||||
0x6d30|28 |( |
|
||||
0x6d30| 00 00 00 00 | .... | media_time: 0 0x6d31-0x6d34.7 (4)
|
||||
0x6d30| 00 01 00 00 | .... | media_rate: 1 0x6d35-0x6d38.7 (4)
|
||||
| | | [2]{}: box 0x6d39-0x6edd.7 (421)
|
||||
0x6d30| 00 00 01 a5 | .... | size: 421 0x6d39-0x6d3c.7 (4)
|
||||
0x6d30| 6d 64 69| mdi| type: "mdia" (Container for the media information in a track) 0x6d3d-0x6d40.7 (4)
|
||||
0x6d40|61 |a |
|
||||
| | | boxes[0:3]: 0x6d41-0x6edd.7 (413)
|
||||
| | | [0]{}: box 0x6d41-0x6d60.7 (32)
|
||||
0x6d40| 00 00 00 20 | ... | size: 32 0x6d41-0x6d44.7 (4)
|
||||
0x6d40| 6d 64 68 64 | mdhd | type: "mdhd" (Media header, overall information about the media) 0x6d45-0x6d48.7 (4)
|
||||
0x6d40| 00 | . | version: 0 0x6d49-0x6d49.7 (1)
|
||||
0x6d40| 00 00 00 | ... | flags: 0 0x6d4a-0x6d4c.7 (3)
|
||||
0x6d40| 00 00 00| ...| creation_time: 0 (1904-01-04T00:00:00Z) 0x6d4d-0x6d50.7 (4)
|
||||
0x6d50|00 |. |
|
||||
0x6d50| 00 00 00 00 | .... | modification_time: 0 (1904-01-04T00:00:00Z) 0x6d51-0x6d54.7 (4)
|
||||
0x6d50| 00 00 32 00 | ..2. | time_scale: 12800 0x6d55-0x6d58.7 (4)
|
||||
0x6d50| 00 00 02 00 | .... | duration: 512 0x6d59-0x6d5c.7 (4)
|
||||
0x6d50| 7f ff | .. | language: "\x7f\x7f\x7f" 0x6d5d-0x6d5e.7 (2)
|
||||
0x6d50| 00| .| quality: 0 0x6d5f-0x6d60.7 (2)
|
||||
0x6d60|00 |. |
|
||||
| | | [1]{}: box 0x6d61-0x6d8d.7 (45)
|
||||
0x6d60| 00 00 00 2d | ...- | size: 45 0x6d61-0x6d64.7 (4)
|
||||
0x6d60| 68 64 6c 72 | hdlr | type: "hdlr" (Handler, declares the media (handler) type) 0x6d65-0x6d68.7 (4)
|
||||
0x6d60| 00 | . | version: 0 0x6d69-0x6d69.7 (1)
|
||||
0x6d60| 00 00 00 | ... | flags: 0 0x6d6a-0x6d6c.7 (3)
|
||||
0x6d60| 6d 68 6c| mhl| component_type: "mhlr" 0x6d6d-0x6d70.7 (4)
|
||||
0x6d70|72 |r |
|
||||
0x6d70| 76 69 64 65 | vide | component_subtype: "vide" (Video Track) 0x6d71-0x6d74.7 (4)
|
||||
0x6d70| 00 00 00 00 | .... | component_manufacturer: "" 0x6d75-0x6d78.7 (4)
|
||||
0x6d70| 00 00 00 00 | .... | component_flags: 0 0x6d79-0x6d7c.7 (4)
|
||||
0x6d70| 00 00 00| ...| component_flags_mask: 0 0x6d7d-0x6d80.7 (4)
|
||||
0x6d80|00 |. |
|
||||
0x6d80| 0c 56 69 64 65 6f 48 61 6e 64 6c 65 72 | .VideoHandler | component_name: "\fVideoHandler" 0x6d81-0x6d8d.7 (13)
|
||||
| | | [2]{}: box 0x6d8e-0x6edd.7 (336)
|
||||
0x6d80| 00 00| ..| size: 336 0x6d8e-0x6d91.7 (4)
|
||||
0x6d90|01 50 |.P |
|
||||
0x6d90| 6d 69 6e 66 | minf | type: "minf" (Media information container) 0x6d92-0x6d95.7 (4)
|
||||
| | | boxes[0:4]: 0x6d96-0x6edd.7 (328)
|
||||
| | | [0]{}: box 0x6d96-0x6da9.7 (20)
|
||||
0x6d90| 00 00 00 14 | .... | size: 20 0x6d96-0x6d99.7 (4)
|
||||
0x6d90| 76 6d 68 64 | vmhd | type: "vmhd" (Video media header, overall information (video track only)) 0x6d9a-0x6d9d.7 (4)
|
||||
0x6d90| 00 | . | version: 0 0x6d9e-0x6d9e.7 (1)
|
||||
0x6d90| 00| .| flags: 1 0x6d9f-0x6da1.7 (3)
|
||||
0x6da0|00 01 |.. |
|
||||
0x6da0| 00 00 | .. | graphicsmode: 0 0x6da2-0x6da3.7 (2)
|
||||
| | | opcolor[0:3]: 0x6da4-0x6da9.7 (6)
|
||||
0x6da0| 00 00 | .. | [0]: 0 value 0x6da4-0x6da5.7 (2)
|
||||
0x6da0| 00 00 | .. | [1]: 0 value 0x6da6-0x6da7.7 (2)
|
||||
0x6da0| 00 00 | .. | [2]: 0 value 0x6da8-0x6da9.7 (2)
|
||||
| | | [1]{}: box 0x6daa-0x6dd5.7 (44)
|
||||
0x6da0| 00 00 00 2c | ..., | size: 44 0x6daa-0x6dad.7 (4)
|
||||
0x6da0| 68 64| hd| type: "hdlr" (Handler, declares the media (handler) type) 0x6dae-0x6db1.7 (4)
|
||||
0x6db0|6c 72 |lr |
|
||||
0x6db0| 00 | . | version: 0 0x6db2-0x6db2.7 (1)
|
||||
0x6db0| 00 00 00 | ... | flags: 0 0x6db3-0x6db5.7 (3)
|
||||
0x6db0| 64 68 6c 72 | dhlr | component_type: "dhlr" 0x6db6-0x6db9.7 (4)
|
||||
0x6db0| 75 72 6c 20 | url | component_subtype: "url" (URL) 0x6dba-0x6dbd.7 (4)
|
||||
0x6db0| 00 00| ..| component_manufacturer: "" 0x6dbe-0x6dc1.7 (4)
|
||||
0x6dc0|00 00 |.. |
|
||||
0x6dc0| 00 00 00 00 | .... | component_flags: 0 0x6dc2-0x6dc5.7 (4)
|
||||
0x6dc0| 00 00 00 00 | .... | component_flags_mask: 0 0x6dc6-0x6dc9.7 (4)
|
||||
0x6dc0| 0b 44 61 74 61 48| .DataH| component_name: "\vDataHandler" 0x6dca-0x6dd5.7 (12)
|
||||
0x6dd0|61 6e 64 6c 65 72 |andler |
|
||||
| | | [2]{}: box 0x6dd6-0x6df9.7 (36)
|
||||
0x6dd0| 00 00 00 24 | ...$ | size: 36 0x6dd6-0x6dd9.7 (4)
|
||||
0x6dd0| 64 69 6e 66 | dinf | type: "dinf" (Data information box, container) 0x6dda-0x6ddd.7 (4)
|
||||
| | | boxes[0:1]: 0x6dde-0x6df9.7 (28)
|
||||
| | | [0]{}: box 0x6dde-0x6df9.7 (28)
|
||||
0x6dd0| 00 00| ..| size: 28 0x6dde-0x6de1.7 (4)
|
||||
0x6de0|00 1c |.. |
|
||||
0x6de0| 64 72 65 66 | dref | type: "dref" (Data reference box, declares source(s) of media data in track) 0x6de2-0x6de5.7 (4)
|
||||
0x6de0| 00 | . | version: 0 0x6de6-0x6de6.7 (1)
|
||||
0x6de0| 00 00 00 | ... | flags: 0 0x6de7-0x6de9.7 (3)
|
||||
0x6de0| 00 00 00 01 | .... | entry_count: 1 0x6dea-0x6ded.7 (4)
|
||||
| | | boxes[0:1]: 0x6dee-0x6df9.7 (12)
|
||||
| | | [0]{}: box 0x6dee-0x6df9.7 (12)
|
||||
0x6de0| 00 00| ..| size: 12 0x6dee-0x6df1.7 (4)
|
||||
0x6df0|00 0c |.. |
|
||||
0x6df0| 75 72 6c 20 | url | type: "url " 0x6df2-0x6df5.7 (4)
|
||||
0x6df0| 00 | . | version: 0 0x6df6-0x6df6.7 (1)
|
||||
0x6df0| 00 00 01 | ... | flags: 1 0x6df7-0x6df9.7 (3)
|
||||
| | | data: raw bits 0x6dfa-NA (0)
|
||||
| | | [3]{}: box 0x6dfa-0x6edd.7 (228)
|
||||
0x6df0| 00 00 00 e4 | .... | size: 228 0x6dfa-0x6dfd.7 (4)
|
||||
0x6df0| 73 74| st| type: "stbl" (Sample table box, container for the time/space map) 0x6dfe-0x6e01.7 (4)
|
||||
0x6e00|62 6c |bl |
|
||||
| | | boxes[0:5]: 0x6e02-0x6edd.7 (220)
|
||||
| | | [0]{}: box 0x6e02-0x6e81.7 (128)
|
||||
0x6e00| 00 00 00 80 | .... | size: 128 0x6e02-0x6e05.7 (4)
|
||||
0x6e00| 73 74 73 64 | stsd | type: "stsd" (Sample descriptions (codec types, initialization etc.)) 0x6e06-0x6e09.7 (4)
|
||||
0x6e00| 00 | . | version: 0 0x6e0a-0x6e0a.7 (1)
|
||||
0x6e00| 00 00 00 | ... | flags: 0 0x6e0b-0x6e0d.7 (3)
|
||||
0x6e00| 00 00| ..| entry_count: 1 0x6e0e-0x6e11.7 (4)
|
||||
0x6e10|00 01 |.. |
|
||||
| | | boxes[0:1]: 0x6e12-0x6e81.7 (112)
|
||||
| | | [0]{}: box 0x6e12-0x6e81.7 (112)
|
||||
0x6e10| 00 00 00 70 | ...p | size: 112 0x6e12-0x6e15.7 (4)
|
||||
0x6e10| 61 70 34 68 | ap4h | type: "ap4h" (Apple ProRes 4444) 0x6e16-0x6e19.7 (4)
|
||||
0x6e10| 00 00 00 00 00 00| ......| reserved: raw bits 0x6e1a-0x6e1f.7 (6)
|
||||
0x6e20|00 01 |.. | data_reference_index: 1 0x6e20-0x6e21.7 (2)
|
||||
0x6e20| 00 00 | .. | version: 0 0x6e22-0x6e23.7 (2)
|
||||
0x6e20| 00 00 | .. | revision_level: 0 0x6e24-0x6e25.7 (2)
|
||||
0x6e20| 46 46 4d 50 | FFMP | max_packet_size: 1179012432 0x6e26-0x6e29.7 (4)
|
||||
0x6e20| 00 00 02 00 | .... | temporal_quality: 512 0x6e2a-0x6e2d.7 (4)
|
||||
0x6e20| 00 00| ..| spatial_quality: 512 0x6e2e-0x6e31.7 (4)
|
||||
0x6e30|02 00 |.. |
|
||||
0x6e30| 01 40 | .@ | width: 320 0x6e32-0x6e33.7 (2)
|
||||
0x6e30| 00 f0 | .. | height: 240 0x6e34-0x6e35.7 (2)
|
||||
0x6e30| 00 48 00 00 | .H.. | horizontal_resolution: 72 0x6e36-0x6e39.7 (4)
|
||||
0x6e30| 00 48 00 00 | .H.. | vertical_resolution: 72 0x6e3a-0x6e3d.7 (4)
|
||||
0x6e30| 00 00| ..| data_size: 0 0x6e3e-0x6e41.7 (4)
|
||||
0x6e40|00 00 |.. |
|
||||
0x6e40| 00 01 | .. | frame_count: 1 0x6e42-0x6e43.7 (2)
|
||||
0x6e40| 14 4c 61 76 63 35 39 2e 31 38 2e 31| .Lavc59.18.1| compressor_name: "Lavc59.18.100 prores" 0x6e44-0x6e63.7 (32)
|
||||
0x6e50|30 30 20 70 72 6f 72 65 73 00 00 00 00 00 00 00|00 prores.......|
|
||||
0x6e60|00 00 00 00 |.... |
|
||||
0x6e60| 00 18 | .. | depth: 24 0x6e64-0x6e65.7 (2)
|
||||
0x6e60| ff ff | .. | color_table_id: -1 0x6e66-0x6e67.7 (2)
|
||||
| | | boxes[0:2]: 0x6e68-0x6e81.7 (26)
|
||||
| | | [0]{}: box 0x6e68-0x6e71.7 (10)
|
||||
0x6e60| 00 00 00 0a | .... | size: 10 0x6e68-0x6e6b.7 (4)
|
||||
0x6e60| 66 69 65 6c| fiel| type: "fiel" (Video field order) 0x6e6c-0x6e6f.7 (4)
|
||||
0x6e70|01 00 |.. | data: raw bits 0x6e70-0x6e71.7 (2)
|
||||
| | | [1]{}: box 0x6e72-0x6e81.7 (16)
|
||||
0x6e70| 00 00 00 10 | .... | size: 16 0x6e72-0x6e75.7 (4)
|
||||
0x6e70| 70 61 73 70 | pasp | type: "pasp" (Pixel aspect ratio) 0x6e76-0x6e79.7 (4)
|
||||
0x6e70| 00 00 00 01 | .... | h_spacing: 1 0x6e7a-0x6e7d.7 (4)
|
||||
0x6e70| 00 00| ..| v_spacing: 1 0x6e7e-0x6e81.7 (4)
|
||||
0x6e80|00 01 |.. |
|
||||
| | | [1]{}: box 0x6e82-0x6e99.7 (24)
|
||||
0x6e80| 00 00 00 18 | .... | size: 24 0x6e82-0x6e85.7 (4)
|
||||
0x6e80| 73 74 74 73 | stts | type: "stts" (Sample time-to-sample) 0x6e86-0x6e89.7 (4)
|
||||
0x6e80| 00 | . | version: 0 0x6e8a-0x6e8a.7 (1)
|
||||
0x6e80| 00 00 00 | ... | flags: 0 0x6e8b-0x6e8d.7 (3)
|
||||
0x6e80| 00 00| ..| entry_count: 1 0x6e8e-0x6e91.7 (4)
|
||||
0x6e90|00 01 |.. |
|
||||
| | | entries[0:1]: 0x6e92-0x6e99.7 (8)
|
||||
| | | [0]{}: entry 0x6e92-0x6e99.7 (8)
|
||||
0x6e90| 00 00 00 01 | .... | count: 1 0x6e92-0x6e95.7 (4)
|
||||
0x6e90| 00 00 02 00 | .... | delta: 512 0x6e96-0x6e99.7 (4)
|
||||
| | | [2]{}: box 0x6e9a-0x6eb5.7 (28)
|
||||
0x6e90| 00 00 00 1c | .... | size: 28 0x6e9a-0x6e9d.7 (4)
|
||||
0x6e90| 73 74| st| type: "stsc" (Sample-to-chunk, partial data-offset information) 0x6e9e-0x6ea1.7 (4)
|
||||
0x6ea0|73 63 |sc |
|
||||
0x6ea0| 00 | . | version: 0 0x6ea2-0x6ea2.7 (1)
|
||||
0x6ea0| 00 00 00 | ... | flags: 0 0x6ea3-0x6ea5.7 (3)
|
||||
0x6ea0| 00 00 00 01 | .... | entry_count: 1 0x6ea6-0x6ea9.7 (4)
|
||||
| | | entries[0:1]: 0x6eaa-0x6eb5.7 (12)
|
||||
| | | [0]{}: entry 0x6eaa-0x6eb5.7 (12)
|
||||
0x6ea0| 00 00 00 01 | .... | first_chunk: 1 0x6eaa-0x6ead.7 (4)
|
||||
0x6ea0| 00 00| ..| samples_per_chunk: 1 0x6eae-0x6eb1.7 (4)
|
||||
0x6eb0|00 01 |.. |
|
||||
0x6eb0| 00 00 00 01 | .... | sample_description_id: 1 0x6eb2-0x6eb5.7 (4)
|
||||
| | | [3]{}: box 0x6eb6-0x6ec9.7 (20)
|
||||
0x6eb0| 00 00 00 14 | .... | size: 20 0x6eb6-0x6eb9.7 (4)
|
||||
0x6eb0| 73 74 73 7a | stsz | type: "stsz" (Sample sizes (framing)) 0x6eba-0x6ebd.7 (4)
|
||||
0x6eb0| 00 | . | version: 0 0x6ebe-0x6ebe.7 (1)
|
||||
0x6eb0| 00| .| flags: 0 0x6ebf-0x6ec1.7 (3)
|
||||
0x6ec0|00 00 |.. |
|
||||
0x6ec0| 00 00 6c 19 | ..l. | sample_size: 27673 0x6ec2-0x6ec5.7 (4)
|
||||
0x6ec0| 00 00 00 01 | .... | entry_count: 1 0x6ec6-0x6ec9.7 (4)
|
||||
| | | [4]{}: box 0x6eca-0x6edd.7 (20)
|
||||
0x6ec0| 00 00 00 14 | .... | size: 20 0x6eca-0x6ecd.7 (4)
|
||||
0x6ec0| 73 74| st| type: "stco" (Chunk offset, partial data-offset information) 0x6ece-0x6ed1.7 (4)
|
||||
0x6ed0|63 6f |co |
|
||||
0x6ed0| 00 | . | version: 0 0x6ed2-0x6ed2.7 (1)
|
||||
0x6ed0| 00 00 00 | ... | flags: 0 0x6ed3-0x6ed5.7 (3)
|
||||
0x6ed0| 00 00 00 01 | .... | entry_count: 1 0x6ed6-0x6ed9.7 (4)
|
||||
| | | entries[0:1]: 0x6eda-0x6edd.7 (4)
|
||||
0x6ed0| 00 00 00 24 | ...$ | [0]: 36 chunk_offset 0x6eda-0x6edd.7 (4)
|
||||
| | | [2]{}: box 0x6ede-0x6efe.7 (33)
|
||||
0x6ed0| 00 00| ..| size: 33 0x6ede-0x6ee1.7 (4)
|
||||
0x6ee0|00 21 |.! |
|
||||
0x6ee0| 75 64 74 61 | udta | type: "udta" (User-data) 0x6ee2-0x6ee5.7 (4)
|
||||
| | | boxes[0:1]: 0x6ee6-0x6efe.7 (25)
|
||||
| | | [0]{}: box 0x6ee6-0x6efe.7 (25)
|
||||
0x6ee0| 00 00 00 19 | .... | size: 25 0x6ee6-0x6ee9.7 (4)
|
||||
0x6ee0| a9 73 77 72 | .swr | type: "<22>swr" 0x6eea-0x6eed.7 (4)
|
||||
0x6ee0| 00 0d| ..| data: raw bits 0x6eee-0x6efe.7 (17)
|
||||
0x6ef0|55 c4 4c 61 76 66 35 39 2e 31 36 2e 31 30 30| |U.Lavf59.16.100||
|
||||
| | | tracks[0:1]: 0x24-0x6efe.7 (28379)
|
||||
| | | [0]{}: track 0x24-0x6efe.7 (28379)
|
||||
| | | samples[0:1]: 0x24-0x6c3c.7 (27673)
|
||||
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| [0]{}: sample (prores_frame) 0x24-0x6c3c.7 (27673)
|
||||
| | | container{}: 0x24-0x2b.7 (8)
|
||||
0x0020| 00 00 6c 19 | ..l. | size: 27673 0x24-0x27.7 (4)
|
||||
0x0020| 69 63 70 66 | icpf | type: "icpf" (valid) 0x28-0x2b.7 (4)
|
||||
| | | header{}: 0x2c-0xbf.7 (148)
|
||||
0x0020| 00 94 | .. | hdr_size: 148 0x2c-0x2d.7 (2)
|
||||
0x0020| 00 00| ..| version: 0 0x2e-0x2f.7 (2)
|
||||
0x0030|66 6d 70 67 |fmpg | creator_id: "fmpg" 0x30-0x33.7 (4)
|
||||
0x0030| 01 40 | .@ | width: 320 0x34-0x35.7 (2)
|
||||
0x0030| 00 f0 | .. | height: 240 0x36-0x37.7 (2)
|
||||
| | | frame_flags{}: 0x38-0x38.7 (1)
|
||||
0x0030| c2 | . | chrominance_factor: "444" (3) 0x38-0x38.1 (0.2)
|
||||
0x0030| c2 | . | unused0: 0 0x38.2-0x38.3 (0.2)
|
||||
0x0030| c2 | . | frame_type: "progressive" (0) 0x38.4-0x38.5 (0.2)
|
||||
0x0030| c2 | . | unused1: 2 0x38.6-0x38.7 (0.2)
|
||||
0x0030| 00 | . | reserved1: 0 0x39-0x39.7 (1)
|
||||
0x0030| 02 | . | primaries: 2 0x3a-0x3a.7 (1)
|
||||
0x0030| 02 | . | transf_func: 2 0x3b-0x3b.7 (1)
|
||||
0x0030| 02 | . | color_matrix: 2 0x3c-0x3c.7 (1)
|
||||
0x0030| a0 | . | src_pix_fmt: 10 0x3d-0x3d.3 (0.4)
|
||||
0x0030| a0 | . | alpha_info: 0 0x3d.4-0x3d.7 (0.4)
|
||||
0x0030| 00 | . | reserved2: 0 0x3e-0x3e.7 (1)
|
||||
0x0030| 03| .| q_mat_flags: 3 0x3f-0x3f.7 (1)
|
||||
0x0040|04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04|................| q_mat_luma: raw bits 0x40-0x7f.7 (64)
|
||||
* |until 0x7f.7 (64) | |
|
||||
0x0080|04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04|................| q_mat_chroma: raw bits 0x80-0xbf.7 (64)
|
||||
* |until 0xbf.7 (64) | |
|
||||
0x00c0|40 00 00 6b 7d 00 2d 30 05 a7 05 df 00 25 05 6c|@..k}.-0.....%.l| picture_data: raw bits 0xc0-0x6c3c.7 (27517)
|
||||
* |until 0x6c3c.7 (27517) | |
|
||||
| | | id: 1 0x6eff-NA (0)
|
||||
| | | data_foramt: "ap4h" (Apple ProRes 4444) 0x6eff-NA (0)
|
BIN
format/prores/testdata/prores_frame.mov
vendored
Normal file
BIN
format/prores/testdata/prores_frame.mov
vendored
Normal file
Binary file not shown.
1
pkg/interp/testdata/args.fqtest
vendored
1
pkg/interp/testdata/args.fqtest
vendored
@ -179,6 +179,7 @@ opus_packet Opus packet
|
||||
pcap PCAP packet capture
|
||||
pcapng PCAPNG packet capture
|
||||
png Portable Network Graphics file
|
||||
prores_frame Apple ProRes frame
|
||||
protobuf Protobuf
|
||||
protobuf_widevine Widevine protobuf
|
||||
pssh_playready PlayReady PSSH
|
||||
|
Loading…
Reference in New Issue
Block a user