1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
Which file to include:
> The <stdint.h> header is a subset of the <inttypes.h> header
|------------------------------------------|-----------------------------------|--------------------------------|
| C INTS | | |
| `{CHAR,SHRT,INT,LONG,LLONG}_{MIN,MAX}` | `<limits.h>` | |
| `U{CHAR,SHRT,INT,LONG,LLONG}_MAX` | `<limits.h>` | |
|------------------------------------------|-----------------------------------|--------------------------------|
| C SIZED INTS | | |
| `(C u)int{n}_t` (and `_{MIN,MAX,C}`) | `<stdint.h>` | exact |
| `(u)int_least{n}_t` (and `_{MIN,MAX,C}`) | `<stdint.h>` | type may be more than `n` bits |
| `(u)int_fast{n}_t` (and `_{MIN,MAX,C}`) | `<stdint.h>` | type may be more than `n` bits |
| `(u)intptr_t` (and `_{MIN,MAX,C}`) | `<stdint.h>` | |
| `(u)intmax_t` (and `_{MIN,MAX,C}`) | `<stdint.h>` | |
| `PRI*` | `<inttypes.h>` | |
| `SCN*` | `<inttypes.h>` | |
|------------------------------------------|-----------------------------------|--------------------------------|
| C ADDRESS INTS | | |
| `ptrdiff_t` | `<stddef.h>` | |
| `PTRDIFF_{MIN,MAX}` | `<stdint.h>` | |
| `size_t` | `<stddef.h>` (or `<sys/types.h>`) | |
| `SIZE_MAX` | `<stdint.h>` | |
|------------------------------------------|-----------------------------------|--------------------------------|
| C WCHAR INTS | | |
| `wchar_t` | `<stddef.h>` | |
| `WCHAR_{MIN,MAX}` | `<stdint.h>` | |
| `wint_t` | `<wchar.h>` | |
| `WINT_{MIN,MAX}` | `<stdint.h>` | |
|------------------------------------------|-----------------------------------|--------------------------------|
| POSIX INTS | | |
| `sig_atomic_t` | `<signal.h>` | |
| `SIG_ATOMIC_{MIN,MAX}` | `<stdint.h>` | |
| `mode_t` | `<sys/types.h>` | unsigned |
| `dev_t` | `<sys/types.h>` | unsigned |
| `nlink_t` | `<sys/types.h>` | unsigned |
| `{u,g,}id_t` | `<sys/types.h>` | unsigned |
| `blkcnt_t` | `<sys/types.h>` | signed |
| `off_t` | `<sys/types.h>` | signed |
| `fsblkcnt_t` | `<sys/types.h>` | unsigned |
| `fsfilecnt_t` | `<sys/types.h>` | unsigned |
| `ino_t` | `<sys/types.h>` | unsigned |
| `blksize_t` | `<sys/types.h>` | signed |
| `pid_t` | `<sys/types.h>` | signed |
| `ssize_t` | `<sys/types.h>` | signed |
| `SSIZE_MAX` | `<limits.h>` | |
| `suseconds_t` | `<sys/types.h>` | signed |
| `clock_t` | `<sys/types.h>` | could be float |
| `time_t` | `<sys/types.h>` | signed |
Here's my reading of the lowest-bitrate possible for our HDMI sink:
HDMI v1.4 (2009/06/05) § 6.2.1 "Format Support Requirements"
> - An HDMI Source shall support at least one of the following video
> format timings:
> + 640x480p @ 59.94/60Hz
> + 720x480p @ 59.94/60Hz
> + 720x576p @ 50Hz
> …
>
> - An HDMI Sink that accepts 60Hz video formats shall support the
> 640x480p @ 59.94/60Hz and 720x480p @ 59.94/60Hz video format
> timings
>
> - An HDMI Sink that accepts 50Hz video formats shall support the
> 640x480p @ 59.94/60Hz and 720x576p @ 50Hz video format timings.
These latter 2 requirements match what is in CEI-861-D §3.1 "General
Video Format requirements" Table 1.
I'm a little confused about the 50Hz systems requirement; if it
needs to support 640x480@60Hz, does that mean that it's *also* a 60Hz
system and must therefore also support 720x480@60Hz?
Anyway, I need to support at least 640x480p@60Hz and 720x480@60Hz, and
it would be nice to support 720x576p@50Hz. Note that PicoDVI supports
these first two, but not the @50Hz one.
| format | bitrate |
|---------------|-----------------------|
| 640x480p@60Hz | 18,432,000 pixels/sec |
| 720x480p@60Hz | 20,736,000 pixels/sec |
| 720x576p@50Hz | 20,736,000 pixels/sec |
https://forums.parallax.com/discussion/download/128730/Hdmi-1.4-1000008562-6364143185282736974850538.pdf
https://ia803002.us.archive.org/1/items/CEA-861-D/CEA-861-D.pdf
|