You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
MJPEG: hardware decoding through MediaCodec (video/jpeg) where the device has it #132
Follow-up to #119 / #131. The first step decodes MJPEG with BitmapFactory on the decode thread and draws it with lockCanvas() — works on every device, fine for 1280×720 at 5 fps (.133 /stream=2).
For higher resolutions / frame rates and for multi-view, use the hardware JPEG decoder when the device has one:
Probe MediaCodecList for a decoder of video/jpeg (the AG-216 lists OMX.allwinner.video.decoder.mjpeg; other vendors use video/mjpeg or none).
Feed whole JPEG frames from JpegAssembler as input buffers, output to the surface like H.264/H.265 (no lockCanvas(), so no surface swap when the codec changes).
Fall back to the bitmap path when no decoder exists or configuration fails.
Single view done in #135 (hardware video/jpeg decoder where the platform exposes one, software otherwise). On the AG-216 the platform does not expose its JPEG decoder (declared in the vendor XML, creating it by name fails with 0xfffffffe), so it uses the software path. Left here: MJPEG cells in multi-view.
Done: hardware MJPEG through MediaCodec where the device exposes a JPEG decoder (#135), and MJPEG cells in multi-view (#139, ea5c093) with the same hardware-then-software choice per stream. On the AG-216 the vendor JPEG decoder cannot be created (0xfffffffe), so it runs on the software path there.
Activity
fix: look for the JPEG decoder in ALL_CODECS and log the video decode…
fix: try the AG-216's JPEG decoder by name when the codec list leaves…
Merge pull request #135 from OpenIPC/feat/mjpeg-hw
compot-dev commentedon Oct 13, 2026
Single view done in #135 (hardware
video/jpegdecoder where the platform exposes one, software otherwise). On the AG-216 the platform does not expose its JPEG decoder (declared in the vendor XML, creating it by name fails with0xfffffffe), so it uses the software path. Left here: MJPEG cells in multi-view.Merge pull request #139 from OpenIPC/feat/mjpeg-multiview
compot-dev commentedon Oct 13, 2026
Done: hardware MJPEG through MediaCodec where the device exposes a JPEG decoder (#135), and MJPEG cells in multi-view (#139, ea5c093) with the same hardware-then-software choice per stream. On the AG-216 the vendor JPEG decoder cannot be created (
0xfffffffe), so it runs on the software path there.feat: MJPEG through the device's hardware JPEG decoder (MediaCodec vi…
fix: look for the JPEG decoder in ALL_CODECS and log the video decode…
fix: try the AG-216's JPEG decoder by name when the codec list leaves…
Merge pull request #135 from OpenIPC/feat/mjpeg-hw
feat: MJPEG cells in multi-view, one frame per second in the cheap mo…
Merge pull request #139 from OpenIPC/feat/mjpeg-multiview