Commit 4e0152b
committed
Add built-in WebM movie player core (rwebm + rvp8/rvp9)
A dependency-free media player for WebM files, built entirely on
libretro-common: rwebm demuxes, rvp9 decodes VP9 and, when rvp8 is
present (HAVE_RWEBP), VP8. Gated behind HAVE_WEBMPLAYER (default
off; requires HAVE_RWEBM and HAVE_RVP9, enforced by qb), it slots
into the existing built-in media player plumbing as the fallback
when neither FFmpeg nor MPV is compiled in -- consoles and other
minimal builds where those dependencies are unavailable.
The core handles VP9 superframes (invisible alt-ref frames packed
with the shown frame) and skips presentation of invisible VP8
frames via the frame-tag show bit while still feeding them to the
decoder for reference updates. Output is XRGB8888 via BT.601
limited-range conversion; frame rate is derived from the shown
video packet count over the stream duration. Audio tracks are
ignored for now (silence is output for pacing) pending an Opus
decoder in libretro-common.
Verified end-to-end: a standalone libretro harness drives the core
over nine VP8/VP9 streams (odd dimensions, real motion, alt-ref,
two-pass superframes) under AddressSanitizer with pixel-exact
output against libvpx-converted reference frames, and a full
RetroArch build (HAVE_WEBMPLAYER + null drivers) routes .webm
content to the core, plays it at the derived frame rate and shuts
down cleanly at end of stream. A default build without the flag
is unaffected.1 parent f21273e commit 4e0152b
14 files changed
Lines changed: 664 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2320 | 2320 | | |
2321 | 2321 | | |
2322 | 2322 | | |
| 2323 | + | |
| 2324 | + | |
| 2325 | + | |
| 2326 | + | |
| 2327 | + | |
2323 | 2328 | | |
2324 | 2329 | | |
2325 | 2330 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1971 | 1971 | | |
1972 | 1972 | | |
1973 | 1973 | | |
1974 | | - | |
| 1974 | + | |
1975 | 1975 | | |
1976 | 1976 | | |
1977 | 1977 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
136 | 136 | | |
137 | 137 | | |
138 | 138 | | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
139 | 195 | | |
140 | 196 | | |
141 | 197 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
0 commit comments