Linux hardware video encoding on Amlogic A311D2 processor

amlogic a311d2 h265 hardware video encoding sample

I’ve spent a bit more time with Ubuntu 22.04 on Khadas VIM4 Amogic A311D2 SBC, and while the performance is generally good features like 3D graphics acceleration and hardware video decoding are missing. But I was pleased to see a Linux hardware video encoding section in the Wiki, as it’s not something we often see supported early on. So I’ve given it a try… First, we need to make a video in NV12 pixel format that’s commonly outputted from cameras. I downloaded a 45-second 1080p H.264 sample video from Linaro, and converted it with ffmpeg:

I did this on my laptop. As a raw video, it’s pretty big with 3.3GB of storage used for a 45-second video:

Now let’s try to encode the video to H.264 on Khadas VIM4 board using aml_enc_test hardware video encoding sample:

The output explains the parameters used. There are some error messages, […]

DirectFB2 project brings back DirectFB graphics library for Linux embedded systems

DirectFB2

DirectFB2 is a new open-source project that brings back DirectFB, a graphics library optimized for Linux-based embedded systems that was popular several years ago for 2D user interfaces but has since mostly faded away. DirectFB2 attempts to preserve the original DirectFB backend while adding new features such as modern 3D APIs like Vulkan and OpenGL ES. I personally used it in 2008-2009 while working with Sigma Designs media processors that relied on the DirectFB library to render the user interfaces for IPTV boxes, karaoke machines, and so on. I remember this forced me to switch from a MicroWindows + Framebuffer solution, but the DirectFB API was easy enough to use and allowed us to develop a nicer user interface. I found out about the new project while checking out the FOSDEM 2022 schedule and a talk entitled “Back to DirectFB! The revival of DirectFB with DirectFB2” which will be presented […]

Google Summer of Code 2020 Mentoring Organizations Announced

Google Summer of Code 2020

Every year Google organizes the Summer of Code inviting students to work on open-source projects and even get paid for it. The company first select mentoring organizations, before accepting applications from students. Google has now announced the 200 organizations/projects that have been selected for Summer of Code 2020. Many projects are higher-level software development such as web development or desktop programs development but there are also projects closer to the hardware-side of things with operating systems and multimedia projects. Some interesting organization and/or  projects part of the audio / graphics / video / multimedia category include: apertus Association developing AXIOM open-source hardware camera FFmpeg multimedia framework to decode, encode, transcode, de/mux, stream, filter & play audio and video stream found in many projects OpenCV Open Source Computer Vision Library for computer vision and deep learning applications. XOrg foundation for X Window System and related projects such as Mesa, DRI, Wayland, […]

ODROID-H2 Review – Part 2: Ubuntu 19.04

ODROID-H2 Review

After many months of delays due to Intel not mass-producing Gemini Lake processors, Hardkernel started selling ODROID-H2 again, more exactly ODROID-H2 Rev. B, and the end of last month, and the company sent me a full kit for evaluation. You can check out ODROID-H Rev. B with Type 3 case and the assembly instructions in the first part of the review. I’ve now had time to play with the board using the pre-installed Ubuntu 19.04 operating systems so I’ll report my experience in this second part. Note that ODROID-H2 does not rely on a custom version of Ubuntu, and instead you can download and flash Ubuntu 18.04 or 19.04 ISO directly from Ubuntu website. First Boot and System Information I had already connected two SATA drives inside the enclosure, one SSD and one HDD, but before booting the device I connected an HDMI cable, one Ethernet cable, USB keyboard & […]

Dav1d Open Source AV1 Decoder Aims to be Fast and Lightweight

Dav1d AV1 Decoder

Lots of efforts are being put into AV1 open source, royalty-free video codec with the AV1 specification published in March, and companies like YouTube and Netflix having recently uploaded AV1 video samples for testing and evaluation. We also reported FFmpeg 4.0 was released with AV1 supporting using libaom reference decoder. However, the library is not really optimized for code size and speed, but instead just to demonstrate AV1 decoding and encoding. So VideoLAN, VLC and FFmpeg communities have been working on another decoder called Dav1d – which stands for “Dav1d is an AV1 Decoder” – that aims to be lightweight, cross-platform, fast and open source. Some of the technical details about dAV1d include: written in C99 without VLAs (Variable Length Arrays) ASM in NASM/GAS syntax (no intrinsics), Meson/ninja buildsystem, Works on x86, x64, ARMv7, ARMv8 architectures for now Runs on Windows, Linux, macOS, Android, iOS operating systems Licensed under BSD […]

AIO-3399J Development Board Review with Ubuntu 16.04

AIO-3399J WiFi, Heatsink, USB Firmware Update

Regular readers will know that Firefly team sent  me several of their Rockchip boards for evaluation, and I started with a review of ROC-RK3328-CC development board powered by Rockchip RK3328 processor. This time, I went with the high-end AIO-3399J board comprised of a features-packed baseboard and a Rockchip RK3399 system-on-module. Just like with the previous review, I’ve decided to focus on Linux support, in this case Xunbuntu 16.04, and I’ll do an Android review on the company releases Android 8.1 for Firefly-RK3399 board. First Boot with AIO-3399J Board Before booting the board, I inserted the heatsink, and connected the provided WiFi antennas. I also connected some devices and cables, including a mouse,  the male to male USB cable to the top USB 3.0 (OTG) port for firmware update, a HDMI cable to my TV, and Ethernet cable, as well as the serial debug board. The final step was to connect […]

ROC-RK3328-CC Board Review, or the Case for Fast Storage and Adequate Power Supply

ROC-RK3328-CC Board Connection

Firefly team from T-chip company has send me some of their Rockchip development boards, and we’ve already checked the provided boards and accessories, so today I’ll report my experience with one of the board: ROC-RK3328-CC also known as Renegade. I won’t test it with Android, since I have already reviewed RK3328 Android TV boxes such as Zidoo X7, and I’ve been told the team is hard at work with Android 8.1 SDK, so an Oreo image should be released in a few weeks/months. So I had initially planned to report my experience with one of the Linux images,  then show how to install mainline Linux (currently 4.17) to the board, and reports what works. However, I encountered many issues, although likely not directly related to the board or its software support, so instead I’ll write about my experience getting started with the board, and list all the issues I had […]

Review of Ubuntu 18.04 on ODROID-XU4Q Development Board

ODROID-XU4Q

Hardkernel released their first Samsung Exynos 5422 octa-core board in July 2014 with ODROID-XU3, which at the time was really a powerful board, but also pricey at $179. Later that year, the company released a cheaper version ($99) called ODROID-XU3 Lite, which I had the chance to review with Ubuntu 14.04 and Android 4.4. The company’s adventure with Exynos 5422 processor did not stop there, as in 2015 they released the smaller and even cheaper ($74) ODROID-XU4 board, and last year launched a fanless version of the board with ODROID-XU4Q featuring a large heatsink. More recently, the company also introduced ODROID-HC1 and ODROID-MC1 solutions for respectively network storage and clusters applications. That’s the short history of Hardkernel Exynos 5422 boards as I remember it, and that means that since 2014, or nearly 4 years so far, the company has kept updating Ubuntu and Android firmware for their board, including the […]