Skip to content

Commit

Permalink
board: add Eeasy SV82x (#89)
Browse files Browse the repository at this point in the history
* 3rdparty/CMake/source: support SV82x platform

Signed-off-by: zhouhuo <kael.chou@eeasytech.com>

* update SV82x platform

Signed-off-by: zhouhuo <kael.chou@eeasytech.com>

* fix some SV82x source issue

Signed-off-by: zhouhuo <kael.chou@eeasytech.com>

* rebase to aws main and code formatting

Signed-off-by: zhiqinli@amazon.com <zhiqinli@amazon.com>

* update sv82x.cmake to fix compile issue

Signed-off-by: zhouhuo <kael.chou@eeasytech.com>

* sv82x: add libm

* workflow: introduce sv82x

Signed-off-by: zhiqinli@amazon.com <zhiqinli@amazon.com>

* workflow: remove branch limitation of file/v4l2 trigger event

Signed-off-by: zhiqinli@amazon.com <zhiqinli@amazon.com>

Signed-off-by: zhouhuo <kael.chou@eeasytech.com>
Signed-off-by: zhiqinli@amazon.com <zhiqinli@amazon.com>
Co-authored-by: zhouhuo <kael.chou@eeasytech.com>
  • Loading branch information
codingspirit and KaelChou authored Nov 11, 2022
1 parent e220f0f commit 9066726
Show file tree
Hide file tree
Showing 12 changed files with 1,823 additions and 23 deletions.
69 changes: 69 additions & 0 deletions .github/workflows/eeasy-sv82x.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: eeasy-sv82x

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
branches: [ main ]

env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
BOARD: SV82x

jobs:
ecr-prepare:
runs-on: ubuntu-latest

steps:
- name: Configure AWS credentials
id: configure-aws-credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}

- name: Login to Amazon ECR
id: login-ecr
uses: codingspirit/amazon-ecr-login@master

- name: Set ECR credentials
id: set-ecr-credentials
run: |
gh auth login --with-token <<< ${{ secrets.PA_TOKEN }}
gh secret set --env ECR ECR_REGISTRY --body ${{ steps.login-ecr.outputs.registry }} --repo ${{ github.repository }}
gh secret set --env ECR ECR_USERNAME --body ${{ steps.login-ecr.outputs.docker_username }} --repo ${{ github.repository }}
gh secret set --env ECR ECR_PASSWORD --body ${{ steps.login-ecr.outputs.docker_password }} --repo ${{ github.repository }}
eeasy:
environment: ECR
needs: ecr-prepare
runs-on: ubuntu-latest
strategy:
matrix:
container: [ "482862934379.dkr.ecr.us-east-1.amazonaws.com/eeasy:7.5.0" ]
container:
image: ${{ matrix.container }}
credentials:
username: ${{ secrets.ECR_USERNAME }}
password: ${{ secrets.ECR_PASSWORD }}

steps:
- name: Git checkout
uses: actions/checkout@v2

- name: Prepare board SDK
run: |
cp -r /SV82x/* ${GITHUB_WORKSPACE}/3rdparty/SV82x/
- name: Configure CMake
run: cmake -B ${{ github.workspace }}/build -DBOARD=${{ env.BOARD }} -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DBUILD_WEBRTC_SAMPLES=ON -DBUILD_KVS_SAMPLES=ON -DBUILD_SAVE_FRAME_SAMPLES=ON

- name: Build
run: cmake --build ${{ github.workspace }}/build --config ${{ env.BUILD_TYPE }} --parallel 4

- name: Test
run: ctest -C ${{ env.BUILD_TYPE }}
8 changes: 1 addition & 7 deletions .github/workflows/file.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,6 @@
name: file

on:
push:
branches: [ develop, main ]
pull_request:
branches: [ develop, main ]
workflow_dispatch:
branches: [ develop, main ]
on: [push, pull_request, workflow_dispatch]

env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
Expand Down
8 changes: 1 addition & 7 deletions .github/workflows/v4l2.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,6 @@
name: v4l2

on:
push:
branches: [ develop, main ]
pull_request:
branches: [ develop, main ]
workflow_dispatch:
branches: [ develop, main ]
on: [push, pull_request, workflow_dispatch]

env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
Expand Down
13 changes: 13 additions & 0 deletions 3rdparty/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ This documents provides guidelines to install board SDK required by this library
- [FH8626V100](#fh8626v100)
- [AK3918](#ak3918)
- [C302](#c302)
- [SV82x](#sv82x)

## FILE

Expand Down Expand Up @@ -112,3 +113,15 @@ C302/
```

> Other related dependent libraries and header files need to obtain the cross-compiled toolchain of C302.
## SV82x

User need to put SV82x board SDK under [3rdparty/SV82x/](SV82x/):

```
SV82x/
├── common
├── include
├── lib
└── sample
```
Empty file added 3rdparty/SV82x/.gitkeep
Empty file.
177 changes: 177 additions & 0 deletions CMake/SV82x.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
if(BOARD STREQUAL "SV82x")
set(BOARD_SDK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/${BOARD})
set(BOARD_SRCS
${BOARD_SDK_DIR}/common/sample_comm_audio.c
${BOARD_SDK_DIR}/common/sample_comm_doss.c
${BOARD_SDK_DIR}/common/sample_comm_ippu.c
${BOARD_SDK_DIR}/common/sample_comm_isp.c
${BOARD_SDK_DIR}/common/sample_comm_sys.c
${BOARD_SDK_DIR}/common/sample_comm_vdec.c
${BOARD_SDK_DIR}/common/sample_comm_venc.c
${BOARD_SDK_DIR}/common/sample_comm_video.c
${BOARD_SDK_DIR}/common/sample_comm_viss.c
)
set(BOARD_INCS_DIR
${BOARD_SDK_DIR}/include/
${BOARD_SDK_DIR}/common/
)

if(USE_MUCLIBC)
set(BOARD_LIBS_DIR
${BOARD_SDK_DIR}/lib/uclibc
)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -muclibc")
set(BOARD_DESTINATION_PLATFORM arm-unknown-linux-uclibc)
else()
set(BOARD_LIBS_DIR
${BOARD_SDK_DIR}/lib/glibc
)
set(BOARD_DESTINATION_PLATFORM arm-unknown-linux-gnu)
endif()

set(BOARD_LIBS_SHARED
i2cops
cam_gc4653_mipi
ext_drv_ms41929
extops
audioin
cam_sc2335_mipi
ext_drv_a6208
ei_AGC
customer_af
audiocommon
cam_imx327_mipi
cam_ar0230_dvp
ax
cam_ov9732_mipi
ei_hpf
panel_spcs92048_prgb
cam_ov5640_mipi
ae
awb
audioout
cam_gc4663_mipi
threadpool
ei_eq
panel_wks43178_cpu
cam_tp9950_mipi
mbase
ei_drc
cam_sc4210_mipi
cam_cr286_dvp
panel_ili9488_mipi
cam_sc200ai_mipi
ctest
cam_tp2850_mipi
viss
af
panel_eos_default
cam_imx415_mipi
cam_tp2815_mipi
isp
mfake
cam_sc4238_mipi
doss
audioenc
vgss
audiodec
cam_imx307_mipi
cam_os05a20_mipi
cam_imx335_mipi
cam_gc2145_mipi
cam_tp9930_dvp
cam_ov2710_dvp
cam_ov5640_dvp
mlink
cam_tp9950_dvp
ext_drv_ap1511b
region
vc
dnvqe
vbuf
cam_ov2735_mipi
panel_wks70002_lvds
sam
ei_RES
cam_ov8858_mipi
ei_common
panel_otm1289a_mipi
upvqe
cam_clb
panel_lt8912b_mipi
m pthread dl
)
set(BOARD_LIBS_STATIC
cam_gc4653_mipi.a
ext_drv_ms41929.a
extops.a
audioin.a
cam_sc2335_mipi.a
ext_drv_a6208.a
ei_AGC
customer_af.a
audiocommon.a
cam_imx327_mipi.a
cam_ar0230_dvp.a
ax.a
cam_ov9732_mipi.a
ei_hpf
panel_spcs92048_prgb.a
cam_ov5640_mipi.a
ae.a
awb.a
audioout.a
cam_gc4663_mipi.a
threadpool.a
ei_eq
panel_wks43178_cpu.a
cam_tp9950_mipi.a
mbase.a
ei_drc
cam_sc4210_mipi.a
cam_cr286_dvp.a
panel_ili9488_mipi.a
cam_sc200ai_mipi.a
ctest.a
cam_tp2850_mipi.a
viss.a
af.a
panel_eos_default.a
cam_imx415_mipi.a
cam_tp2815_mipi.a
isp.a
mfake.a
cam_sc4238_mipi.a
doss.a
audioenc.a
vgss.a
audiodec.a
cam_imx307_mipi.a
cam_os05a20_mipi.a
cam_imx335_mipi.a
cam_gc2145_mipi.a
cam_tp9930_dvp.a
cam_ov2710_dvp.a
cam_ov5640_dvp.a
mlink.a
cam_tp9950_dvp.a
ext_drv_ap1511b.a
region.a
vc.a
dnvqe.a
vbuf.a
cam_ov2735_mipi.a
log.a
panel_wks70002_lvds.a
sam.a
ei_RES
cam_ov8858_mipi.a
ei_common
i2cops.a
panel_otm1289a_mipi.a
upvqe.a
cam_clb.a
panel_lt8912b_mipi.a
libm.a pthread dl
)
endif()
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ elseif(BOARD STREQUAL "AK3918")
message(STATUS "Selected board AK3918")
elseif(BOARD STREQUAL "C302")
message(STATUS "Selected board C302")
elseif(BOARD STREQUAL "SV82x")
message(STATUS "Selected board SV82x")
else()
message(FATAL_ERROR "${BOARD} is not implemented yet.")
endif()
Expand Down
20 changes: 11 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
[![fullhan-fh8626v100](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/fullhan-fh8626v100.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/fullhan-fh8626v100.yml)
[![anyka-ak3918](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/anyka-ak3918.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/anyka-ak3918.yml)
[![amlogic-c302](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/amlogic-c302.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/amlogic-c302.yml)
[![eeasy-sv82x](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/eeasy-sv82x.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/eeasy-sv82x.yml)

- [Amazon Kinesis Video Streams Media Interface](#amazon-kinesis-video-streams-media-interface)
- [Introduction](#introduction)
Expand All @@ -25,15 +26,16 @@

## Supported Boards

| Name | Description | CMake Parameter | Status |
| ------------------ | --------------------------------------------------------------------- | ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| FILE | Dummy boards that can capture from [sample frames](resources/frames/) | `-DBOARD=FILE` | [![file](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/file.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/file.yml) |
| x86/x64 | Capture from V4L2 device or capture from dummy frames | `-DBOARD=V4L2`<br> or `-DBOARD=FILE` | [![v4l2](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/v4l2.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/v4l2.yml)[![file](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/file.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/file.yml) |
| Raspberry Pi | Capture from V4L2 device or capture from dummy frames | `-DBOARD=V4L2`<br> or `-DBOARD=FILE` | [![v4l2](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/v4l2.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/v4l2.yml)[![file](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/file.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/file.yml) |
| Ingenic T31 | IPC SoC designed by Ingenic | `-DBOARD=T31` | [![ingenic-t31](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/ingenic-t31.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/ingenic-t31.yml) |
| Fullhan FH8626V100 | IPC SoC designed by Fullhan | `-DBOARD=FH8626V100` | [![fullhan-fh8626v100](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/fullhan-fh8626v100.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/fullhan-fh8626v100.yml) |
| Anyka AK3918 | IPC SoC designed by Anyka | `-DBOARD=AK3918` | [![anyka-ak3918](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/anyka-ak3918.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/anyka-ak3918.yml) |
| Amlogic C302 | IPC SoC designed by Amlogic | `-DBOARD=C302` | [![amlogic-c302](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/amlogic-c302.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/amlogic-c302.yml) |
| Name | Description | CMake Parameter | Status |
| ------------------ | --------------------------------------------------------------------------- | ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| FILE | Dummy boards that can capture from [sample frames](resources/frames/) | `-DBOARD=FILE` | [![file](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/file.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/file.yml) |
| x86/x64 | Capture from V4L2 device or capture from [sample frames](resources/frames/) | `-DBOARD=V4L2`<br> or `-DBOARD=FILE` | [![v4l2](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/v4l2.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/v4l2.yml)[![file](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/file.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/file.yml) |
| Raspberry Pi | Capture from V4L2 device or capture from [sample frames](resources/frames/) | `-DBOARD=V4L2`<br> or `-DBOARD=FILE` | [![v4l2](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/v4l2.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/v4l2.yml)[![file](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/file.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/file.yml) |
| Ingenic T31 | IPC SoC designed by Ingenic | `-DBOARD=T31` | [![ingenic-t31](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/ingenic-t31.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/ingenic-t31.yml) |
| Fullhan FH8626V100 | IPC SoC designed by Fullhan | `-DBOARD=FH8626V100` | [![fullhan-fh8626v100](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/fullhan-fh8626v100.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/fullhan-fh8626v100.yml) |
| Anyka AK3918 | IPC SoC designed by Anyka | `-DBOARD=AK3918` | [![anyka-ak3918](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/anyka-ak3918.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/anyka-ak3918.yml) |
| Amlogic C302 | IPC SoC designed by Amlogic | `-DBOARD=C302` | [![amlogic-c302](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/amlogic-c302.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/amlogic-c302.yml) |
| Eeasy SV82x | IPC SoC designed by Eeasy | `-DBOARD=SV82x` | [![eeasy-sv82x](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/eeasy-sv82x.yml/badge.svg)](https://github.com/aws-samples/amazon-kinesis-video-streams-media-interface/actions/workflows/eeasy-sv82x.yml) |


## Getting started with out-of-box KVS WebRTC sample
Expand Down
Loading

0 comments on commit 9066726

Please sign in to comment.