Skip to content

Commit

Permalink
Merge bsp_diff patches of iasw and base
Browse files Browse the repository at this point in the history
Issue Detailed: Too many bsp_diff patches to enable camera hal of both
base_aaos and iasw.

Issue Fixed: Merge the diff patches in this repo. Other two related prs
are in Sepolicy and mixins.spec.

Tested-On: camera preview/capture/record in base_aaos and iasw images.

Tracked-On: OAM-125158
Signed-off-by: Neo Fang <[email protected]>
  • Loading branch information
neofang7 committed Oct 8, 2024
1 parent 4f6f1f0 commit 5abb7e2
Show file tree
Hide file tree
Showing 12 changed files with 275 additions and 0 deletions.
4 changes: 4 additions & 0 deletions groups/camera-ext/aaos_iasw/BoardConfig.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
BOARD_CAMERA_USB_STANDALONE = true

# SELinux support for USB camera
BOARD_SEPOLICY_DIRS += $(INTEL_PATH_SEPOLICY)/camera-ext/ivi
Empty file.
3 changes: 3 additions & 0 deletions groups/camera-ext/aaos_iasw/files.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[extrafiles]
external_camera_config.xml: "external camera parameters"
ivi_camera_config.xml: "ivihal camera parameters"
88 changes: 88 additions & 0 deletions groups/camera-ext/aaos_iasw/ivi_camera_config.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8" ?>
<IVICamera platform="ivi_config_1">
<Provider>
<CameraIdOffset>0</CameraIdOffset>
<CaptureManager>disable</CaptureManager>
<ignore> <!-- Internal video devices to be ignored by external camera HAL -->
<!--
<id>5</id>
<id>6</id>
<id>7</id>
-->
</ignore>
</Provider>
<!-- See ExternalCameraUtils.cpp for default values of Device configurations below
<Device>
<Path>/dev/video0</Path>
<Driver>intel-ipu6-isys</Driver>
<NumVideoBuffers count="2"/>
<NumStillBuffers count="2"/>
<Setting width="1920" height="1080" fps="30" format="UYVY"/>
<Bind>
<VirtId>10</VirtId>
</Bind>
</Device>
-->
<Device>
<Path>/dev/video1</Path>
<Driver>intel-ipu6-isys</Driver>
<NumVideoBuffers count="2"/>
<NumStillBuffers count="2"/>
<Setting width="1920" height="1080" fps="30" format="UYVY"/>
<Bind>
<VirtId>11</VirtId>
<VirtId>12</VirtId>
</Bind>
</Device>
<!--
<Device>
<Path>/dev/video5</Path>
<Driver>uvcvideo</Driver>
<NumVideoBuffers count="2"/>
<NumStillBuffers count="2"/>
<Setting width="1920" height="1080" fps="30" format="YUYV"/>
<Bind>
<VirtId>13</VirtId>
</Bind>
</Device>
-->

<Loopback>
<PairId>50</PairId>
<SrcCamera>/dev/video1</SrcCamera>
<Driver>v4l2 loopback</Driver>
<Setting width="1920" height="1080" fps="30" format="UYVY"/>
</Loopback>

<MediaCtlConfig id="1" platform="ivi_config_1">
<!-- IPU sensors -->
<format name="max9295a_dummy" pad="0" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>
<format name="max926717f_dummy" pad="0" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>

<format name="max96722" pad="0" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>
<format name="max96722" pad="1" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>
<format name="max96722" pad="4" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>

<format name="Intel IPU6 CSI-2 1" pad="0" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>
<format name="Intel IPU6 CSI-2 1" pad="1" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>

<format name="Intel IPU6 CSI2 BE SOC 0" pad="0" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>
<format name="Intel IPU6 CSI2 BE SOC 0" pad="1" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>
<format name="Intel IPU6 CSI2 BE SOC 0" pad="2" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>

<format name="Intel IPU6 BE SOC capture 0" pad="0" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>
<format name="Intel IPU6 BE SOC capture 1" pad="0" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>

<!-- DPIN -->

<link srcName="max96717f_dummy" srcPad="0" sinkName="max96722" sinkPad="0" enable="true"/>
<link srcName="max9295a_dummy" srcPad="0" sinkName="max96722" sinkPad="1" enable="true"/>
<link srcName="max96722" srcPad="4" sinkName="Intel IPU6 CSI-2 1" sinkPad="0" enable="true"/>

<link srcName="Intel IPU6 CSI-2 1" srcPad="1" sinkName="Intel IPU6 CSI2 BE SOC 0" sinkPad="0" enable="true"/>

<link srcName="Intel IPU6 CSI2 BE SOC 0" srcPad="2" sinkName="Intel IPU6 BE SOC capture 1" sinkPad="0" enable="true"/>
<link srcName="Intel IPU6 CSI2 BE SOC 0" srcPad="1" sinkName="Intel IPU6 BE SOC capture 0" sinkPad="0" enable="true"/>

</MediaCtlConfig>
</IVICamera>
17 changes: 17 additions & 0 deletions groups/camera-ext/aaos_iasw/product.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Camera: Device-specific configuration files.
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.camera.autofocus.xml:vendor/etc/permissions/android.hardware.camera.autofocus.xml \
frameworks/native/data/etc/android.hardware.camera.xml:vendor/etc/permissions/android.hardware.camera.xml \
$(LOCAL_PATH)/{{_extra_dir}}/ivi_camera_config.xml:vendor/etc/ivi_camera_config.xml

# External camera service

PRODUCT_PACKAGES += [email protected] \
[email protected] \
[email protected]

PRODUCT_PACKAGES += android.ia.hardware.camera.provider-ivi \
android.iacamera.provider-ivi-service

PRODUCT_PACKAGES += Camera2
PRODUCT_PACKAGES += MultiCameraApp
2 changes: 2 additions & 0 deletions groups/camera-ext/aaos_iasw/ueventd.rc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Camera
/dev/video* 0660 system camera
4 changes: 4 additions & 0 deletions groups/camera-ext/base_aaos/BoardConfig.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
BOARD_CAMERA_USB_STANDALONE = true

# SELinux support for USB camera
BOARD_SEPOLICY_DIRS += $(INTEL_PATH_SEPOLICY)/camera-ext/ivi
50 changes: 50 additions & 0 deletions groups/camera-ext/base_aaos/external_camera_config.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright (C) 2017-2018 Intel Corporation.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

<ExternalCamera>
<Provider>
<CameraIdOffset>0</CameraIdOffset>
<ignore> <!-- Internal video devices to be ignored by external camera HAL -->
</ignore>
</Provider>
<!-- See ExternalCameraUtils.cpp for default values of Device configurations below
-->
<Device>
<!-- Max JPEG buffer size in bytes-->
<MaxJpegBufferSize bytes="3145728"/> <!-- 3MB (~= 1080p YUV420) -->
<!-- Size of v4l2 buffer queue when streaming >= 30fps -->
<!-- Larger value: more request can be cached pipeline (less janky) -->
<!-- Smaller value: use less memory -->
<NumVideoBuffers count="8"/>
<!-- Size of v4l2 buffer queue when streaming < 30fps -->
<NumStillBuffers count="2"/>

<!-- List of maximum fps for various output sizes -->
<!-- Any image size smaller than the size listed in Limit row will report
fps (as minimum frame duration) up to the fpsBound value. -->
<FpsList>
<!-- width/height must be increasing, fpsBound must be decreasing-->
<Limit width="640" height="480" fpsBound="60.0"/>
<Limit width="720" height="480" fpsBound="60.0"/>
<Limit width="960" height="560" fpsBound="60.0"/>
<Limit width="1280" height="720" fpsBound="60.0"/>
<Limit width="1920" height="1080" fpsBound="60.0"/>
<Limit width="3840" height="2160" fpsBound="30.0"/>
<Limit width="4096" height="2160" fpsBound="30.0"/>
<!-- image size larger than the last entry will not be supported-->
</FpsList>
</Device>
</ExternalCamera>
3 changes: 3 additions & 0 deletions groups/camera-ext/base_aaos/files.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[extrafiles]
external_camera_config.xml: "external camera parameters"
ivi_camera_config.xml: "ivihal camera parameters"
86 changes: 86 additions & 0 deletions groups/camera-ext/base_aaos/ivi_camera_config.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8" ?>
<IVICamera platform="ivi_config_1">
<Provider>
<CameraIdOffset>0</CameraIdOffset>
<CaptureManager>disable</CaptureManager>
<ignore> <!-- Internal video devices to be ignored by external camera HAL -->
<id>1</id>
<id>2</id>
<id>3</id>
</ignore>
</Provider>
<!-- See ExternalCameraUtils.cpp for default values of Device configurations below
<Device>
<Path>/dev/video0</Path>
<Driver>intel-ipu6-isys</Driver>
<NumVideoBuffers count="2"/>
<NumStillBuffers count="2"/>
<Setting width="1920" height="1080" fps="30" format="UYVY"/>
<Bind>
<VirtId>10</VirtId>
</Bind>
</Device>
-->
<Device>
<Path>/dev/video1</Path>
<Driver>intel-ipu6-isys</Driver>
<NumVideoBuffers count="2"/>
<NumStillBuffers count="2"/>
<Setting width="1920" height="1080" fps="30" format="UYVY"/>
<Bind>
<VirtId>11</VirtId>
<VirtId>12</VirtId>
</Bind>
</Device>
<!--
<Device>
<Path>/dev/video5</Path>
<Driver>uvcvideo</Driver>
<NumVideoBuffers count="2"/>
<NumStillBuffers count="2"/>
<Setting width="1920" height="1080" fps="30" format="YUYV"/>
<Bind>
<VirtId>13</VirtId>
</Bind>
</Device>
-->

<Loopback>
<PairId>50</PairId>
<SrcCamera>/dev/video1</SrcCamera>
<Driver>v4l2 loopback</Driver>
<Setting width="1920" height="1080" fps="30" format="UYVY"/>
</Loopback>

<MediaCtlConfig id="1" platform="ivi_config_1">
<!-- IPU sensors -->
<format name="max9295a_dummy" pad="0" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>
<format name="max926717f_dummy" pad="0" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>

<format name="max96722" pad="0" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>
<format name="max96722" pad="1" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>
<format name="max96722" pad="4" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>

<format name="Intel IPU6 CSI-2 1" pad="0" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>
<format name="Intel IPU6 CSI-2 1" pad="1" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>

<format name="Intel IPU6 CSI2 BE SOC 0" pad="0" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>
<format name="Intel IPU6 CSI2 BE SOC 0" pad="1" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>
<format name="Intel IPU6 CSI2 BE SOC 0" pad="2" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>

<format name="Intel IPU6 BE SOC capture 0" pad="0" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>
<format name="Intel IPU6 BE SOC capture 1" pad="0" width="1920" height="1080" format="V4L2_MBUS_FMT_UYVY8_1X16"/>

<!-- DPIN -->

<link srcName="max96717f_dummy" srcPad="0" sinkName="max96722" sinkPad="0" enable="true"/>
<link srcName="max9295a_dummy" srcPad="0" sinkName="max96722" sinkPad="1" enable="true"/>
<link srcName="max96722" srcPad="4" sinkName="Intel IPU6 CSI-2 1" sinkPad="0" enable="true"/>

<link srcName="Intel IPU6 CSI-2 1" srcPad="1" sinkName="Intel IPU6 CSI2 BE SOC 0" sinkPad="0" enable="true"/>

<link srcName="Intel IPU6 CSI2 BE SOC 0" srcPad="2" sinkName="Intel IPU6 BE SOC capture 1" sinkPad="0" enable="true"/>
<link srcName="Intel IPU6 CSI2 BE SOC 0" srcPad="1" sinkName="Intel IPU6 BE SOC capture 0" sinkPad="0" enable="true"/>

</MediaCtlConfig>
</IVICamera>
16 changes: 16 additions & 0 deletions groups/camera-ext/base_aaos/product.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Camera: Device-specific configuration files.
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.camera.xml:vendor/etc/permissions/android.hardware.camera.xml \
$(LOCAL_PATH)/{{_extra_dir}}/ivi_camera_config.xml:vendor/etc/ivi_camera_config.xml

# External camera service

PRODUCT_PACKAGES += [email protected] \
[email protected] \
[email protected]

PRODUCT_PACKAGES += android.ia.hardware.camera.provider-ivi \
android.iacamera.provider-ivi-service

PRODUCT_PACKAGES += Camera2
PRODUCT_PACKAGES += MultiCameraApp
2 changes: 2 additions & 0 deletions groups/camera-ext/base_aaos/ueventd.rc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Camera
/dev/video* 0660 system camera

0 comments on commit 5abb7e2

Please sign in to comment.