Release JH7100 multimedia SDK v0.1.0.20211016

This release SDK is for JH7100 multimedia which is including ALSA for audio, V4L2 for video capture, GST-OMX for VPU decoding, framebuffer for display and GStreamer for multimedia framework.

Repository

Repo: GitHub - starfive-tech/freelight-u-sdk

Branch: GitHub - starfive-tech/freelight-u-sdk at JH7100_starlight_multimedia

Release tag: Release multimedia_v0.1.0.20211016 · starfive-tech/freelight-u-sdk · GitHub

How-to-Build

Please follow the below link’s instructions to fetch code, build and verify.

Readme: GitHub - starfive-tech/freelight-u-sdk at JH7100_starlight_multimedia

Test Equipment

  • StarLight SBC with TF card
  • Display (HDMI): Dell 2K&4K / Thinkvision 2K / Portable 1080p monitor
  • Image sensor (MIPI-CSI): IMX219
  • UVC camera: Logitech-C270
  • Audio Output Jack (StarLight SBC, pedal)
  • Expansion board: ReSpeaker 2-Mics Pi HAT (WM8960)
  • Expansion board: ReSpeaker 4-Mic Array (AC108)

Features

  • Audio: support asla driver framework for WM8960, AC108, pwmdac, spdif, vad, pdm
  • Video Capture:
    • Support V4L2 driver framework for DVP, MIPI-CSI, VIN, ISP;
    • Support DVP and MIPI-CSI sensor: imx219, ov4689, dvp ov5640, sc2235;
    • Support UVC camera;
  • Display: framebuffer
  • VPU: decoding H.264(baseline/main/high profile) & H.265(main/main10 profile), scaler
  • Multimedia framework: GStreamer
    • Support plugins list:
      • XXXSource:filesrc, v4l2src, alsasrc, …;
        XXXSink: filesink, fbdevsink, alsasink, …;
        demuxers: qtdemux, matroskademux, oggdemux, avidemux, …;
        muxers:qtmux, oggmux, mp4mux, …;
        parsers:oggparse, amrparse, aacparse, …;
        decoder: omxh264dec, omxh265dec, Vorbisdec, avdec_h265, videoscale, …;
        encoder: x264enc, avenc_aac, pngenc;
        others:audioconvert, videoconvert, videoscale, videorate, audiorate, capsfilter, playbin, decodebin, queue, …;
    • Add StarFive private packages:
      • v4l2_test: test v4l2 device;
      • pp_test: convert color format and resolution for framebuffer framework;
      • sf-gst-omx: derivate from gst-omx and compatible with the omx-il library;
      • sf-omx-il: StarFive openmax il library for VPU hardware decode;
      • stfisp_setfile: host build package and generate isp register setting binary for v4l2;
      • wave511: hardware decode code building;
    • Add the following gstreamer patch:
      • Support gstreamer plugin fbdevsink NV12 format;
      • Support gst-play take priority to decode h264/h265 with gst-omx plugin;

Test Tools

  • ALSA: aplay, arecord
  • V4L2: media-ctl, v4l2-compliance, v4l2-ctl, v4l2test
  • GStreamer: gst-play-1.0, gst-launch-1.0

Known Issues

  • Remote login fails by SSH in TF card rootfs image;
    • workaround: execute dropbear -R -E in serial terminal;
  • Error(Makefile 498 line) is reported during the first TF card burning operation;
    • workaround: execute the second time to burn it successfully;
  • The picture is faulted when using v4l2-ctl tool to test pattern 3 (color bar with grey);
  • When the serial port and SSH terminal capture video using video1 at the same time, the system will prompt the device BUSY, but the screen is black;
  • Report oops when PWMDAC plays dual-channel audio after playing mono-audio by aplay;
  • Error information is reported when capturing 4K or 2K pictures by gst-launch-1.0;
  • Background noise is generated during playing sound by aplay;
    • workaround: change power source to regulated power supply;
  • Lots of ‘broken’ line on the screen when playing video since display drive is based on fbdev;
  • It can play up to 1080p@18fps or 720p@30fps videos as performance limitation of memcpy;
  • It only supports NV12 format video for fbdevsink;
  • System will be halt when playing audio on expansion board (AC108 and WM8960);
2 Likes