Add some explanatory video format diagrams
It would probably be helpful to have some graphical quick references for anyone looking to hack on the transmuxing code. Start off with a logical picture of mp2t segments and h264 "packets".
Showing
3 changed files
with
125 additions
and
0 deletions
docs/h264-nal.svg
0 → 100644
1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||
3 | |||
4 | <svg | ||
5 | xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
6 | xmlns:cc="http://creativecommons.org/ns#" | ||
7 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
8 | xmlns:svg="http://www.w3.org/2000/svg" | ||
9 | xmlns="http://www.w3.org/2000/svg" | ||
10 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
11 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
12 | width="744.09448819" | ||
13 | height="1052.3622047" | ||
14 | id="svg2" | ||
15 | version="1.1" | ||
16 | inkscape:version="0.48.2 r9819" | ||
17 | sodipodi:docname="New document 1"> | ||
18 | <defs | ||
19 | id="defs4" /> | ||
20 | <sodipodi:namedview | ||
21 | id="base" | ||
22 | pagecolor="#ffffff" | ||
23 | bordercolor="#666666" | ||
24 | borderopacity="1.0" | ||
25 | inkscape:pageopacity="0.0" | ||
26 | inkscape:pageshadow="2" | ||
27 | inkscape:zoom="0.74898074" | ||
28 | inkscape:cx="405.31989" | ||
29 | inkscape:cy="721.1724" | ||
30 | inkscape:document-units="px" | ||
31 | inkscape:current-layer="layer1" | ||
32 | showgrid="false" | ||
33 | inkscape:window-width="1165" | ||
34 | inkscape:window-height="652" | ||
35 | inkscape:window-x="0" | ||
36 | inkscape:window-y="0" | ||
37 | inkscape:window-maximized="0" /> | ||
38 | <metadata | ||
39 | id="metadata7"> | ||
40 | <rdf:RDF> | ||
41 | <cc:Work | ||
42 | rdf:about=""> | ||
43 | <dc:format>image/svg+xml</dc:format> | ||
44 | <dc:type | ||
45 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||
46 | <dc:title></dc:title> | ||
47 | </cc:Work> | ||
48 | </rdf:RDF> | ||
49 | </metadata> | ||
50 | <g | ||
51 | inkscape:label="Layer 1" | ||
52 | inkscape:groupmode="layer" | ||
53 | id="layer1"> | ||
54 | <g | ||
55 | id="g3832"> | ||
56 | <g | ||
57 | transform="translate(-80,0)" | ||
58 | id="g3796"> | ||
59 | <rect | ||
60 | style="fill:none;stroke:#000000;stroke-width:4.99253178;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" | ||
61 | id="rect3756" | ||
62 | width="195.00757" | ||
63 | height="75.007133" | ||
64 | x="57.496265" | ||
65 | y="302.08554" /> | ||
66 | <text | ||
67 | xml:space="preserve" | ||
68 | style="font-size:39.94025421px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
69 | x="80.563461" | ||
70 | y="353.93951" | ||
71 | id="text3758" | ||
72 | sodipodi:linespacing="125%" | ||
73 | transform="scale(0.99841144,1.0015911)"><tspan | ||
74 | sodipodi:role="line" | ||
75 | id="tspan3760" | ||
76 | x="80.563461" | ||
77 | y="353.93951">Header</tspan></text> | ||
78 | </g> | ||
79 | <g | ||
80 | transform="translate(-80,0)" | ||
81 | id="g3801"> | ||
82 | <text | ||
83 | xml:space="preserve" | ||
84 | style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
85 | x="278.44489" | ||
86 | y="354.50266" | ||
87 | id="text3762" | ||
88 | sodipodi:linespacing="125%"><tspan | ||
89 | sodipodi:role="line" | ||
90 | id="tspan3764" | ||
91 | x="278.44489" | ||
92 | y="354.50266">Raw Bitstream Payload (RBSP)</tspan></text> | ||
93 | <rect | ||
94 | style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" | ||
95 | id="rect3768" | ||
96 | width="660.63977" | ||
97 | height="75" | ||
98 | x="252.5" | ||
99 | y="302.09293" /> | ||
100 | </g> | ||
101 | </g> | ||
102 | <text | ||
103 | xml:space="preserve" | ||
104 | style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
105 | x="10.078175" | ||
106 | y="432.12851" | ||
107 | id="text3806" | ||
108 | sodipodi:linespacing="125%"><tspan | ||
109 | sodipodi:role="line" | ||
110 | id="tspan3808" | ||
111 | x="10.078175" | ||
112 | y="432.12851">1 byte</tspan></text> | ||
113 | <text | ||
114 | xml:space="preserve" | ||
115 | style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
116 | x="-31.193787" | ||
117 | y="252.32137" | ||
118 | id="text3810" | ||
119 | sodipodi:linespacing="125%"><tspan | ||
120 | sodipodi:role="line" | ||
121 | id="tspan3812" | ||
122 | x="-31.193787" | ||
123 | y="252.32137">H264 Network Abstraction Layer (NAL) Unit</tspan></text> | ||
124 | </g> | ||
125 | </svg> |
docs/mp2t-packet-types.graffle
0 → 100644
No preview for this file type
docs/mp2t-structure.graffle
0 → 100644
No preview for this file type
-
Please register or sign in to post a comment