Commit 003eb958 authored by luo's avatar luo

[UPDATE]SDK 2.5.0.7.1.2

parent e7645da1
...@@ -41,6 +41,9 @@ rtt-nano-emmc: prepare ...@@ -41,6 +41,9 @@ rtt-nano-emmc: prepare
scons --useconfig='star_asic_defconfig_emmc'; \ scons --useconfig='star_asic_defconfig_emmc'; \
scons -j128 || exit; \ scons -j128 || exit; \
cp rtthread.bin ${ACME_IMG_PF_DIR}/star_app_emmc.bin; \ cp rtthread.bin ${ACME_IMG_PF_DIR}/star_app_emmc.bin; \
scons --useconfig='star_asic_defconfig_evb_v24'; \
scons -j16 || exit; \
cp rtthread.bin ${ACME_IMG_PF_DIR}/star_app_evb_v24.bin; \
rtt-nano: rtt-nano-outdoor_ipc rtt-nano-glasses rtt-nano-emmc rtt-nano: rtt-nano-outdoor_ipc rtt-nano-glasses rtt-nano-emmc
@pushd rt-thread-nano/bsp/sa692x/star; \ @pushd rt-thread-nano/bsp/sa692x/star; \
...@@ -62,9 +65,6 @@ rtt-nano: rtt-nano-outdoor_ipc rtt-nano-glasses rtt-nano-emmc ...@@ -62,9 +65,6 @@ rtt-nano: rtt-nano-outdoor_ipc rtt-nano-glasses rtt-nano-emmc
scons --useconfig='star_asic_defconfig_bc22e'; \ scons --useconfig='star_asic_defconfig_bc22e'; \
scons -j16 || exit; \ scons -j16 || exit; \
cp rtthread.bin ${ACME_IMG_PF_DIR}/star_app_bc22e.bin; \ cp rtthread.bin ${ACME_IMG_PF_DIR}/star_app_bc22e.bin; \
scons --useconfig='star_asic_defconfig_evb_v24'; \
scons -j16 || exit; \
cp rtthread.bin ${ACME_IMG_PF_DIR}/star_app_evb_v24.bin; \
popd popd
linux: linux:
...@@ -188,6 +188,11 @@ pack-emmc: ...@@ -188,6 +188,11 @@ pack-emmc:
dd if=${ACME_IMG_PF_DIR}/bootimg-emmc-linux.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55-emmc-linux.bin seek=2048 bs=1K conv=notrunc; \ dd if=${ACME_IMG_PF_DIR}/bootimg-emmc-linux.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55-emmc-linux.bin seek=2048 bs=1K conv=notrunc; \
dd if=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-emmc-linux.bin bs=1K conv=notrunc; \ dd if=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-emmc-linux.bin bs=1K conv=notrunc; \
dd if=${ACME_IMG_PF_DIR}/bootimg-emmc-linux.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-emmc-linux.bin seek=2048 bs=1K conv=notrunc; \ dd if=${ACME_IMG_PF_DIR}/bootimg-emmc-linux.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-emmc-linux.bin seek=2048 bs=1K conv=notrunc; \
python3 pack_tool.py --type burn --mode 0 --ini burn_pack_ini/linux/burn_pack_evb-v24-linux$${arch_suffix}.ini --image_dir ${ACME_IMG_PF_DIR} --out ${ACME_IMG_PF_DIR}/bootimg-evb-linux.bin --real_size; \
dd if=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55-evb-v24-linux.bin bs=1K conv=notrunc; \
dd if=${ACME_IMG_PF_DIR}/bootimg-evb-linux.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P55-evb-v24-linux.bin seek=2048 bs=1K conv=notrunc; \
dd if=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-evb-v24-linux.bin bs=1K conv=notrunc; \
dd if=${ACME_IMG_PF_DIR}/bootimg-evb-linux.bin of=${ACME_IMG_PF_DIR}/bootimg-BL2-6920E-0P5-evb-v24-linux.bin seek=2048 bs=1K conv=notrunc; \
popd popd
clean: clean:
......
...@@ -331,6 +331,9 @@ static u32 dw_spi_prepare_cr0(struct dw_spi *dws, struct spi_device *spi) ...@@ -331,6 +331,9 @@ static u32 dw_spi_prepare_cr0(struct dw_spi *dws, struct spi_device *spi)
cr0 |= DWC_SSI_CTRLR0_KEEMBAY_MST; cr0 |= DWC_SSI_CTRLR0_KEEMBAY_MST;
} }
spi_enable_chip(dws, 0);
dw_writel(dws, DW_SPI_CTRLR0, cr0);
spi_enable_chip(dws, 1);
return cr0; return cr0;
} }
......
# 2.5.0.7.1版本0.2
## 发布日期:2025年03月20日
### 更新内容
1. capture和record新增缩略图功能,缩略图支持jpeg和heic格式
# 2.5.0.7.1版本0.1 # 2.5.0.7.1版本0.1
## 发布日期:2025年03月14日 ## 发布日期:2025年03月14日
......
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
"RcMode 0:constQP,1:cbr,2:vbr,3:low latency,4:capped vbr,5:adaptive vbr,7:min br,63:bypass,64:jpeg fxiQP", "RcMode 0:constQP,1:cbr,2:vbr,3:low latency,4:capped vbr,5:adaptive vbr,7:min br,63:bypass,64:jpeg fxiQP",
"SmartEncoder 0:none,1:roi,2:QP" "SmartEncoder 0:none,1:roi,2:QP"
], ],
"CodeType": 1, "Qp": 10, "RcMode": 4, "CodeType": 1, "Qp": 26, "RcMode": 0,
"Width": 1920, "Height": 1080, "Bitrate": 4096000, "SmartEncoder": 0, "SmartSEI": 0, "Width": 1920, "Height": 1080, "Bitrate": 4096000, "SmartEncoder": 0, "SmartSEI": 0,
"#note-record region": [ "#note-record region": [
"Type 0:image,1:time,2:time and debug info" "Type 0:image,1:time,2:time and debug info"
...@@ -94,11 +94,13 @@ ...@@ -94,11 +94,13 @@
"capture": "capture":
{ {
"#note": [ "#note": [
"SaveFormat 0:jpeg,1:heif" "CaptureFormat 0:jpeg,1:heif",
"ThumbFormat 0:jpeg,1:heif"
], ],
"BokehEnable": 0, "MFNREnable": 0, "HDREnable": 0, "ZSLEnable": 0, "BokehEnable": 0, "MFNREnable": 0, "HDREnable": 0, "ZSLEnable": 0,
"BeautyEnable": 0, "Strength": 50, "BeautyEnable": 0, "Strength": 50,
"SaveEnable": 1, "SaveFormat": 1, "SaveFilePath": "/mnt/sdcard" "CaptureEnable": 1, "CaptureFormat": 1, "CaptureFilePath": "/mnt/sdcard",
"ThumbEnable": 1, "ThumbWidth": 384, "ThumbHeight": 216, "ThumbFormat": 1, "ThumbFilePath": "/mnt/sdcard"
}, },
"record": "record":
{ {
...@@ -117,9 +119,11 @@ ...@@ -117,9 +119,11 @@
"VqeEnable": 0,"VqeParamFile": "/acme/bin/vqe.bin" "VqeEnable": 0,"VqeParamFile": "/acme/bin/vqe.bin"
}, },
"#note": [ "#note": [
"SaveFormat 0:mp4,1:h265,2:h264,3:jpg" "RecordFormat 0:mp4,1:h265,2:h264,3:jpg",
"ThumbFormat 0:jpeg,1:heif"
], ],
"SaveEnable": 1, "SaveFormat": 1, "SaveFilePath": "/mnt/sdcard" "RecordEnable": 1, "RecordFormat": 1, "RecordFilePath": "/mnt/sdcard",
"ThumbEnable": 0, "ThumbWidth": 384, "ThumbHeight": 216, "ThumbFormat": 0, "ThumbFilePath": "/mnt/sdcard"
}, },
"svp": "svp":
{ {
......
...@@ -28,23 +28,23 @@ ...@@ -28,23 +28,23 @@
"Qp jpeg:0-100;heif:0-51", "Qp jpeg:0-100;heif:0-51",
"SmartEncoder 0:none,1:roi,2:qp" "SmartEncoder 0:none,1:roi,2:qp"
], ],
"Qp": 10, "Qp": 26,
"Width": 4032, "Height": 3024, "Bitrate": 2048000, "SmartEncoder": 0, "SmartSEI": 0, "Width": 4032, "Height": 3024, "Bitrate": 8192000, "SmartEncoder": 0, "SmartSEI": 0,
"#note-record region": [
"Type 0:image,1:time,2:time and debug info"
],
"region": [ "region": [
{ {
"#note": [
"Type 0:image,1:timestamp,2:timestamp+mode,3:timestamp+week,4:timestamp+week(EN)"
],
"Enable": 0, "Type": 0, "Enable": 0, "Type": 0,
"X": 32, "Y": 32, "Width": 256, "Height": 128, "X": 32, "Y": 32, "Width": 256, "Height": 128,
"Color0": 16777215, "Color1": 6171602, "Color2": 16745541, "Color0": 16777215, "Color1": 6171602, "Color2": 16745541,
"ImageFile": "/acme/bin/logo256x128.2bpp" "ImageFile": "/acme/bin/logo256x128.bgra"
}, },
{ {
"Enable": 0, "Type": 0, "Enable": 1, "Type": 2,
"X": 32, "Y": 32, "Width": 256, "Height": 128, "X":32, "Y": 2896, "Width": 1888, "Height": 48,
"Color0": 16777215, "Color1": 6171602, "Color2": 16745541, "Color0": 16777215, "Color1": 6171602, "Color2": 16745541,
"ImageFile": "/acme/bin/logo256x128.2bpp" "ImageFile": ""
} }
] ]
}, },
...@@ -94,11 +94,13 @@ ...@@ -94,11 +94,13 @@
"capture": "capture":
{ {
"#note": [ "#note": [
"SaveFormat 0:jpeg,1:heif" "CaptureFormat 0:jpeg,1:heif",
"ThumbFormat 0:jpeg,1:heif"
], ],
"BokehEnable": 0, "MFNREnable": 0, "HDREnable": 0, "ZSLEnable": 0, "BokehEnable": 0, "MFNREnable": 0, "HDREnable": 0, "ZSLEnable": 0,
"BeautyEnable": 0, "Strength": 50, "BeautyEnable": 0, "Strength": 50,
"SaveEnable": 1, "SaveFormat": 1, "SaveFilePath": "/mnt/sdcard" "CaptureEnable": 1, "CaptureFormat": 1, "CaptureFilePath": "/mnt/sdcard",
"ThumbEnable": 1, "ThumbWidth": 384, "ThumbHeight": 216, "ThumbFormat": 1, "ThumbFilePath": "/mnt/sdcard"
}, },
"record": "record":
{ {
...@@ -117,9 +119,11 @@ ...@@ -117,9 +119,11 @@
"VqeEnable": 0,"VqeParamFile": "/acme/bin/vqe.bin" "VqeEnable": 0,"VqeParamFile": "/acme/bin/vqe.bin"
}, },
"#note": [ "#note": [
"SaveFormat 0:mp4,1:h265,2:h264,3:jpg" "RecordFormat 0:mp4,1:h265,2:h264,3:jpg",
"ThumbFormat 0:jpeg,1:heif"
], ],
"SaveEnable": 1, "SaveFormat": 1, "SaveFilePath": "/mnt/sdcard" "RecordEnable": 1, "RecordFormat": 1, "RecordFilePath": "/mnt/sdcard",
"ThumbEnable": 1, "ThumbWidth": 384, "ThumbHeight": 216, "ThumbFormat": 0, "ThumbFilePath": "/mnt/sdcard"
}, },
"svp": "svp":
{ {
......
...@@ -94,11 +94,13 @@ ...@@ -94,11 +94,13 @@
"capture": "capture":
{ {
"#note": [ "#note": [
"SaveFormat 0:jpeg,1:heif" "CaptureFormat 0:jpeg,1:heif",
"ThumbFormat 0:jpeg,1:heif"
], ],
"BokehEnable": 0, "MFNREnable": 0, "HDREnable": 0, "ZSLEnable": 0, "BokehEnable": 0, "MFNREnable": 0, "HDREnable": 0, "ZSLEnable": 0,
"BeautyEnable": 0, "Strength": 50, "BeautyEnable": 0, "Strength": 50,
"SaveEnable": 1, "SaveFormat": 1, "SaveFilePath": "/mnt/sdcard" "CaptureEnable": 1, "CaptureFormat": 1, "CaptureFilePath": "/mnt/sdcard",
"ThumbEnable": 1, "ThumbWidth": 384, "ThumbHeight": 216, "ThumbFormat": 1, "ThumbFilePath": "/mnt/sdcard"
}, },
"record": "record":
{ {
...@@ -117,9 +119,11 @@ ...@@ -117,9 +119,11 @@
"VqeEnable": 0,"VqeParamFile": "/acme/bin/vqe.bin" "VqeEnable": 0,"VqeParamFile": "/acme/bin/vqe.bin"
}, },
"#note": [ "#note": [
"SaveFormat 0:mp4,1:h265,2:h264,3:jpg" "RecordFormat 0:mp4,1:h265,2:h264,3:jpg",
"ThumbFormat 0:jpeg,1:heif"
], ],
"SaveEnable": 1, "SaveFormat": 1, "SaveFilePath": "/mnt/sdcard" "RecordEnable": 1, "RecordFormat": 1, "RecordFilePath": "/mnt/sdcard",
"ThumbEnable": 1, "ThumbWidth": 384, "ThumbHeight": 216, "ThumbFormat": 1, "ThumbFilePath": "/mnt/sdcard"
}, },
"svp": "svp":
{ {
......
...@@ -94,11 +94,13 @@ ...@@ -94,11 +94,13 @@
"capture": "capture":
{ {
"#note": [ "#note": [
"SaveFormat 0:jpeg,1:heif" "CaptureFormat 0:jpeg,1:heif",
"ThumbFormat 0:jpeg,1:heif"
], ],
"BokehEnable": 0, "MFNREnable": 0, "HDREnable": 0, "ZSLEnable": 0, "BokehEnable": 0, "MFNREnable": 0, "HDREnable": 0, "ZSLEnable": 0,
"BeautyEnable": 0, "Strength": 50, "BeautyEnable": 0, "Strength": 50,
"SaveEnable": 1, "SaveFormat": 1, "SaveFilePath": "/mnt/sdcard" "CaptureEnable": 1, "CaptureFormat": 1, "CaptureFilePath": "/mnt/sdcard",
"ThumbEnable": 1, "ThumbWidth": 384, "ThumbHeight": 216, "ThumbFormat": 1, "ThumbFilePath": "/mnt/sdcard"
}, },
"record": "record":
{ {
...@@ -117,9 +119,11 @@ ...@@ -117,9 +119,11 @@
"VqeEnable": 0,"VqeParamFile": "/acme/bin/vqe.bin" "VqeEnable": 0,"VqeParamFile": "/acme/bin/vqe.bin"
}, },
"#note": [ "#note": [
"SaveFormat 0:mp4,1:h265,2:h264,3:jpg" "RecordFormat 0:mp4,1:h265,2:h264,3:jpg",
"ThumbFormat 0:jpeg,1:heif"
], ],
"SaveEnable": 1, "SaveFormat": 1, "SaveFilePath": "/mnt/sdcard" "RecordEnable": 1, "RecordFormat": 1, "RecordFilePath": "/mnt/sdcard",
"ThumbEnable": 1, "ThumbWidth": 384, "ThumbHeight": 216, "ThumbFormat": 1, "ThumbFilePath": "/mnt/sdcard"
}, },
"svp": "svp":
{ {
......
{
"doc": "media",
"version": "1.0.0.1",
"#note": [
"scene: capture,record,captureaddrecord,visual"
],
"scene": "captureaddrecord",
"video": {
"#note0": [
"SensorType 0:4d10,1:4a10,2:2n10,3:imx681,4:5l10,5:sc535,6:4j10,7:4l10",
"SensorMode 0:linear,1:hdr"
],
"SensorType": 0, "SensorMode": 0,
"#note1": [
"Rotation 0:0,1:90,2:180,3:270",
"FilterColor 0:off,1:pink,2:blue,3:cowboy,4:cyantone,5:prettypure,6:moody"
],
"ViDev": 0, "MaxFps": 15.0, "MinFps": 15.0, "Mirror": 0, "Flip": 0, "Rotation": 0, "PyrOff": 1, "TnrOff": 0, "AinrOff": 0,
"Gdc": 0, "FilterColor": 0, "ViDumpDepth": 1,
"IspFile": [ "/acme/conf/4d10/os04d10_base_Color.bin",
"/acme/conf/4d10/os04d10_4M_Color_Outdoor_diff.bin",
"/acme/conf/4d10/os04d10_4M_Color_Indoor_diff.bin",
"/acme/conf/4d10/os04d10_4M_Color_Aisp_diff.bin",
"/acme/conf/4d10/os04d10_4M_Black_diff.bin",
"/acme/conf/4d10/os04d10_4M_Color_Aisp_diff_Light.bin"],
"AinrFile": "/acme/conf/4d10/aisp_4M.bin",
"ProEnable": 0, "ISO": 100, "AWBCt": 5000, "SportEnable": 0, "MaxIntTime": 30000,
"venc": [
{
"#note-capture channel": [
"Qp jpeg:0-100;heif:0-51",
"SmartEncoder 0:none,1:roi,2:qp"
],
"Qp": 26,
"Width": 2560, "Height": 1440, "Bitrate": 4096000, "SmartEncoder": 0, "SmartSEI": 0,
"#note-record region": [
"Type 0:image,1:time,2:time and debug info"
],
"region": [
{
"Enable": 0, "Type": 0,
"X": 32, "Y": 32, "Width": 256, "Height": 128,
"Color0": 16777215, "Color1": 6171602, "Color2": 16745541,
"ImageFile": "/acme/bin/logo256x128.bgra"
},
{
"Enable": 1, "Type": 2,
"X":32, "Y": 1280, "Width": 1880, "Height": 48,
"Color0": 16777215, "Color1": 6171602, "Color2": 16745541,
"ImageFile": ""
}
]
},
{
"#note-record channel": [
"CodeType 0:h264,1:h265,2:jpeg",
"Qp jpeg:0-100;heif:0-51",
"RcMode 0:constQP,1:cbr,2:vbr,3:low latency,4:capped vbr,5:adaptive vbr,7:min br,63:bypass,64:jpeg fxiQP",
"SmartEncoder 0:none,1:roi,2:QP"
],
"CodeType": 1, "Qp": 26, "RcMode": 2,
"Width": 960, "Height": 720, "Bitrate": 1024000, "SmartEncoder": 0, "SmartSEI": 0,
"#note-record region": [
"Type 0:image,1:time,2:time and debug info"
],
"region": [
{
"Enable": 0, "Type": 0,
"X": 32, "Y": 32, "Width": 256, "Height": 128,
"Color0": 16777215, "Color1": 6171602, "Color2": 16745541,
"ImageFile": "/acme/bin/logo256x128.bgra"
},
{
"Enable": 1, "Type": 2,
"X":32, "Y": 656, "Width": 880, "Height": 48,
"Color0": 16777215, "Color1": 6171602, "Color2": 16745541,
"ImageFile": ""
}
]
}
],
"sd":
{
"#note": [
"SdMode 0:auto,1:manual",
"SceneType 0:outdoor,1:indoor,2:ainr,8:backlight",
"WdrMode 0:linear,1:hdr,2:auto",
"StrategyMode 0:normal,1:blc,2:hs"
],
"SdMode": 0, "SceneType": 0, "WdrMode": 0,
"MaxInttimeEnable": 0, "IntTimeMax": 30000,
"RoiEnable": 0, "X": 0, "Y": 0, "Width": 1920, "Height": 1080,
"StrategyMode": 0, "Strength": 100,
"FlickerEnable": 0, "Frequency": 50
}
},
"capture":
{
"#note": [
"CaptureFormat 0:jpeg,1:heif",
"ThumbFormat 0:jpeg,1:heif"
],
"BokehEnable": 0, "MFNREnable": 0, "HDREnable": 0, "ZSLEnable": 0,
"BeautyEnable": 0, "Strength": 50,
"CaptureEnable": 1, "CaptureFormat": 1, "CaptureFilePath": "/mnt/sdcard",
"ThumbEnable": 1, "ThumbWidth": 384, "ThumbHeight": 216, "ThumbFormat": 1, "ThumbFilePath": "/mnt/sdcard"
},
"record":
{
"EISMode": 0,
"audio":
{
"#note": [
"SampleRate 8000 16000 32000 48000",
"SoundMode 1:mono,2:stereo",
"EncType 0:lcaac,1:g711a,2:g711u,3:pcm"
],
"AudioEnable": 0,
"SampleRate": 16000,
"SoundMode": 1,
"EncType": 0,
"VqeEnable": 0,"VqeParamFile": "/acme/bin/vqe.bin"
},
"#note": [
"RecordFormat 0:mp4,1:h265,2:h264,3:jpg",
"ThumbFormat 0:jpeg,1:heif"
],
"RecordEnable": 1, "RecordFormat": 1, "RecordFilePath": "/mnt/sdcard",
"ThumbEnable": 1, "ThumbWidth": 384, "ThumbHeight": 216, "ThumbFormat": 1, "ThumbFilePath": "/mnt/sdcard"
},
"svp":
{
"OCREnable": 0,
"QRCodeEnable": 0,
"FaceDetEnable": 0,
"PeopleDetEnable": 0,
"SmartAeEnable": 0
}
}
...@@ -8,6 +8,8 @@ copy_files() { ...@@ -8,6 +8,8 @@ copy_files() {
mkdir -p burn_img_emmc mkdir -p burn_img_emmc
cp 6920_bsp_release/out_images/bootimg-BL2-6920E-*-emmc-linux.bin burn_img_emmc/ cp 6920_bsp_release/out_images/bootimg-BL2-6920E-*-emmc-linux.bin burn_img_emmc/
cp 6920_bsp_release/out_images/bootimg-BL2-6920E-*-pt2-linux.bin burn_img_emmc/ > /dev/null 2>&1 cp 6920_bsp_release/out_images/bootimg-BL2-6920E-*-pt2-linux.bin burn_img_emmc/ > /dev/null 2>&1
cp 6920_bsp_release/out_images/bootimg-BL2-6920E-0P5-evb-v24-linux.bin burn_img_emmc/bootimg-BL2-6920E-0P5-emmc-linux-v24.bin
cp 6920_bsp_release/out_images/bootimg-BL2-6920E-0P55-evb-v24-linux.bin burn_img_emmc/bootimg-BL2-6920E-0P55-emmc-linux-v24.bin
fi fi
if [ "$type" == "nor" ] || [ -z "$type" ]; then if [ "$type" == "nor" ] || [ -z "$type" ]; then
......
No preview for this file type
No preview for this file type
...@@ -858,7 +858,7 @@ int MP4E_add_track(MP4E_mux_t *mux, const MP4E_track_t *track_data) ...@@ -858,7 +858,7 @@ int MP4E_add_track(MP4E_mux_t *mux, const MP4E_track_t *track_data)
minimp4_vector_init(&tr->pending_sample, 0); minimp4_vector_init(&tr->pending_sample, 0);
return ntr; return ntr;
} }
/*
static const unsigned char *next_dsi(const unsigned char *p, const unsigned char *end, int *bytes) static const unsigned char *next_dsi(const unsigned char *p, const unsigned char *end, int *bytes)
{ {
if (p < end + 2) if (p < end + 2)
...@@ -868,6 +868,7 @@ static const unsigned char *next_dsi(const unsigned char *p, const unsigned char ...@@ -868,6 +868,7 @@ static const unsigned char *next_dsi(const unsigned char *p, const unsigned char
} else } else
return NULL; return NULL;
} }
*/
static int append_mem(minimp4_vector_t *v, const void *mem, int bytes) static int append_mem(minimp4_vector_t *v, const void *mem, int bytes)
{ {
...@@ -1004,7 +1005,7 @@ static int mp4e_write_fragment_header(MP4E_mux_t *mux, int track_num, int data_b ...@@ -1004,7 +1005,7 @@ static int mp4e_write_fragment_header(MP4E_mux_t *mux, int track_num, int data_b
{ {
default_sample_duration_present = 0x000008, default_sample_duration_present = 0x000008,
default_sample_flags_present = 0x000020, default_sample_flags_present = 0x000020,
} e; };
track_t *tr = ((track_t*)mux->tracks.data) + track_num; track_t *tr = ((track_t*)mux->tracks.data) + track_num;
......
...@@ -53,6 +53,13 @@ extern "C" { ...@@ -53,6 +53,13 @@ extern "C" {
#define MEDIA_LTM_SIZE_HEIGHT_MAX (2736) #define MEDIA_LTM_SIZE_HEIGHT_MAX (2736)
#define MEDIA_GTM_SIZE_WIDTH_ONLINE_MAX (2880) #define MEDIA_GTM_SIZE_WIDTH_ONLINE_MAX (2880)
#define MEDIA_GTM_SIZE_HEIGHT_ONLINE_MAX (1616) #define MEDIA_GTM_SIZE_HEIGHT_ONLINE_MAX (1616)
#define MEDIA_VPSS_GROUP (0)
#define MEDIA_VPSS_CHN (1)
#define MEDIA_VPSS_CHN_THUMB (2)
#define MEDIA_VENC_CAPTURE (0)
#define MEDIA_VENC_RECORD (1)
#define MEDIA_VENC_THUMB (2)
typedef enum { typedef enum {
SA_MEDIA_SCENE_CAPTURE = 0, SA_MEDIA_SCENE_CAPTURE = 0,
SA_MEDIA_SCENE_RECORD = 1, SA_MEDIA_SCENE_RECORD = 1,
...@@ -295,6 +302,25 @@ typedef struct { ...@@ -295,6 +302,25 @@ typedef struct {
SA_U32 u32Reserve; SA_U32 u32Reserve;
} SA_MEDIA_SVP_CONFIG_S; } SA_MEDIA_SVP_CONFIG_S;
typedef struct saMEDIA_HEIF_SINGLE_FRAME_INFO_S {
// input-info
SA_U32 u32ChId;
SA_U32 u32PicWidth;
SA_U32 u32PicHeight;
SA_U32 u32EncWidth;
SA_U32 u32EncHeight;
SA_U32 u32SliceQp;
VENC_CHROMA_MODE_E eChromaMode;
SA_PHYS_ADDR u64PhyAddr;
SA_U8 *pu8VirAddr;
SA_U32 u32Stride;
// output buffer, needs to be allocated externally and passed in
VENC_USER_BUF_S stUserBuf;
} SA_MEDIA_HEIF_SINGLE_FRAME_INFO_S;
typedef enum { typedef enum {
SA_MEDIA_CAPTURE_SAVE_JPEG = 0, SA_MEDIA_CAPTURE_SAVE_JPEG = 0,
SA_MEDIA_CAPTURE_SAVE_HEIF = 1, SA_MEDIA_CAPTURE_SAVE_HEIF = 1,
...@@ -306,6 +332,13 @@ typedef struct { ...@@ -306,6 +332,13 @@ typedef struct {
SA_CHAR astrSaveFilePath[128]; SA_CHAR astrSaveFilePath[128];
} SA_MEDIA_CAPTURE_SAVE_CONFIG_S; } SA_MEDIA_CAPTURE_SAVE_CONFIG_S;
typedef struct {
SA_BOOL bSaveEnable;
SIZE_S stThumbSize;
SA_MEDIA_CAPTURE_SAVE_FORMAT_E enSaveFormat;
SA_CHAR astrSaveFilePath[128];
} SA_MEDIA_THUMB_SAVE_CONFIG_S;
typedef enum { typedef enum {
SA_MEDIA_RECORD_SAVE_MP4 = 0, SA_MEDIA_RECORD_SAVE_MP4 = 0,
SA_MEDIA_RECORD_SAVE_265 = 1, SA_MEDIA_RECORD_SAVE_265 = 1,
...@@ -326,12 +359,14 @@ typedef struct { ...@@ -326,12 +359,14 @@ typedef struct {
SA_BOOL bZSLEnable; SA_BOOL bZSLEnable;
SA_MEDIA_BEAUTY_MODE_S stBeautyCfg; SA_MEDIA_BEAUTY_MODE_S stBeautyCfg;
SA_MEDIA_CAPTURE_SAVE_CONFIG_S stSaveCfg; SA_MEDIA_CAPTURE_SAVE_CONFIG_S stSaveCfg;
SA_MEDIA_THUMB_SAVE_CONFIG_S stThumbCfg;
} SA_MEDIA_CAPTURE_CONFIG_S; } SA_MEDIA_CAPTURE_CONFIG_S;
typedef struct { typedef struct {
VI_EIS_MODE_E enEISMode; VI_EIS_MODE_E enEISMode;
SA_MEDIA_AUDIO_CONFIG_S stAudioConfig; SA_MEDIA_AUDIO_CONFIG_S stAudioConfig;
SA_MEDIA_RECORD_SAVE_CONFIG_S stSaveCfg; SA_MEDIA_RECORD_SAVE_CONFIG_S stSaveCfg;
SA_MEDIA_THUMB_SAVE_CONFIG_S stThumbCfg;
} SA_MEDIA_RECORD_CONFIG_S; } SA_MEDIA_RECORD_CONFIG_S;
typedef struct { typedef struct {
...@@ -535,11 +570,13 @@ typedef struct { ...@@ -535,11 +570,13 @@ typedef struct {
SA_BOOL bZSLEnable; SA_BOOL bZSLEnable;
SA_MEDIA_BEAUTY_MODE_S stBeautyCfg; SA_MEDIA_BEAUTY_MODE_S stBeautyCfg;
SA_MEDIA_CAPTURE_SAVE_CONFIG_S stSaveCfg; SA_MEDIA_CAPTURE_SAVE_CONFIG_S stSaveCfg;
SA_MEDIA_THUMB_SAVE_CONFIG_S stThumbCfg;
} SA_MEDIA_CAPTURE_ATTR_S; } SA_MEDIA_CAPTURE_ATTR_S;
typedef struct { typedef struct {
VI_EIS_MODE_E enEISMode; VI_EIS_MODE_E enEISMode;
SA_MEDIA_RECORD_SAVE_CONFIG_S stSaveCfg; SA_MEDIA_RECORD_SAVE_CONFIG_S stSaveCfg;
SA_MEDIA_THUMB_SAVE_CONFIG_S stThumbCfg;
} SA_MEDIA_RECORD_ATTR_S; } SA_MEDIA_RECORD_ATTR_S;
typedef struct { typedef struct {
...@@ -611,7 +648,7 @@ typedef SA_VOID (*SA_HAPI_DUMPCALLBACK)(SA_MEDIA_DUMP_E, VIDEO_FRAME_INFO_S*); ...@@ -611,7 +648,7 @@ typedef SA_VOID (*SA_HAPI_DUMPCALLBACK)(SA_MEDIA_DUMP_E, VIDEO_FRAME_INFO_S*);
SA_S32 SA_HAPI_MEDIA_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_CONFIG_S *pstSceneConfig, SA_MEDIA_ATTR_S *pstMediaAttr); SA_S32 SA_HAPI_MEDIA_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_CONFIG_S *pstSceneConfig, SA_MEDIA_ATTR_S *pstMediaAttr);
SA_S32 SA_HAPI_MEDIA_Start(SA_MEDIA_ATTR_S *pstMediaAttr); SA_S32 SA_HAPI_MEDIA_Start(SA_MEDIA_ATTR_S *pstMediaAttr);
SA_S32 SA_HAPI_MEDIA_Stop(SA_MEDIA_ATTR_S *pstMediaAttr); SA_S32 SA_HAPI_MEDIA_Stop(SA_MEDIA_ATTR_S *pstMediaAttr);
SA_S32 SA_HAPI_MEDIA_Capture(SA_U8* pStrSavedFilename); SA_S32 SA_HAPI_MEDIA_Capture(SA_U8* pStrCaptureFilename, SA_U8* pStrThumbFilename);
SA_S32 SA_HAPI_MEDIA_Record(SA_BOOL bEnable); SA_S32 SA_HAPI_MEDIA_Record(SA_BOOL bEnable);
SA_S32 SA_HAPI_MEDIA_GetVideoStream(VENC_CHN u32VeChn, VENC_STREAM_S *pstStream, SA_S32 s32MilliSec); SA_S32 SA_HAPI_MEDIA_GetVideoStream(VENC_CHN u32VeChn, VENC_STREAM_S *pstStream, SA_S32 s32MilliSec);
SA_S32 SA_HAPI_MEDIA_ReleaseVideoStream(VENC_CHN u32VeChn, VENC_STREAM_S *pstStream); SA_S32 SA_HAPI_MEDIA_ReleaseVideoStream(VENC_CHN u32VeChn, VENC_STREAM_S *pstStream);
......
File mode changed from 100644 to 100755
...@@ -53,6 +53,13 @@ extern "C" { ...@@ -53,6 +53,13 @@ extern "C" {
#define MEDIA_LTM_SIZE_HEIGHT_MAX (2736) #define MEDIA_LTM_SIZE_HEIGHT_MAX (2736)
#define MEDIA_GTM_SIZE_WIDTH_ONLINE_MAX (2880) #define MEDIA_GTM_SIZE_WIDTH_ONLINE_MAX (2880)
#define MEDIA_GTM_SIZE_HEIGHT_ONLINE_MAX (1616) #define MEDIA_GTM_SIZE_HEIGHT_ONLINE_MAX (1616)
#define MEDIA_VPSS_GROUP (0)
#define MEDIA_VPSS_CHN (1)
#define MEDIA_VPSS_CHN_THUMB (2)
#define MEDIA_VENC_CAPTURE (0)
#define MEDIA_VENC_RECORD (1)
#define MEDIA_VENC_THUMB (2)
typedef enum { typedef enum {
SA_MEDIA_SCENE_CAPTURE = 0, SA_MEDIA_SCENE_CAPTURE = 0,
SA_MEDIA_SCENE_RECORD = 1, SA_MEDIA_SCENE_RECORD = 1,
...@@ -295,6 +302,25 @@ typedef struct { ...@@ -295,6 +302,25 @@ typedef struct {
SA_U32 u32Reserve; SA_U32 u32Reserve;
} SA_MEDIA_SVP_CONFIG_S; } SA_MEDIA_SVP_CONFIG_S;
typedef struct saMEDIA_HEIF_SINGLE_FRAME_INFO_S {
// input-info
SA_U32 u32ChId;
SA_U32 u32PicWidth;
SA_U32 u32PicHeight;
SA_U32 u32EncWidth;
SA_U32 u32EncHeight;
SA_U32 u32SliceQp;
VENC_CHROMA_MODE_E eChromaMode;
SA_PHYS_ADDR u64PhyAddr;
SA_U8 *pu8VirAddr;
SA_U32 u32Stride;
// output buffer, needs to be allocated externally and passed in
VENC_USER_BUF_S stUserBuf;
} SA_MEDIA_HEIF_SINGLE_FRAME_INFO_S;
typedef enum { typedef enum {
SA_MEDIA_CAPTURE_SAVE_JPEG = 0, SA_MEDIA_CAPTURE_SAVE_JPEG = 0,
SA_MEDIA_CAPTURE_SAVE_HEIF = 1, SA_MEDIA_CAPTURE_SAVE_HEIF = 1,
...@@ -306,6 +332,13 @@ typedef struct { ...@@ -306,6 +332,13 @@ typedef struct {
SA_CHAR astrSaveFilePath[128]; SA_CHAR astrSaveFilePath[128];
} SA_MEDIA_CAPTURE_SAVE_CONFIG_S; } SA_MEDIA_CAPTURE_SAVE_CONFIG_S;
typedef struct {
SA_BOOL bSaveEnable;
SIZE_S stThumbSize;
SA_MEDIA_CAPTURE_SAVE_FORMAT_E enSaveFormat;
SA_CHAR astrSaveFilePath[128];
} SA_MEDIA_THUMB_SAVE_CONFIG_S;
typedef enum { typedef enum {
SA_MEDIA_RECORD_SAVE_MP4 = 0, SA_MEDIA_RECORD_SAVE_MP4 = 0,
SA_MEDIA_RECORD_SAVE_265 = 1, SA_MEDIA_RECORD_SAVE_265 = 1,
...@@ -326,12 +359,14 @@ typedef struct { ...@@ -326,12 +359,14 @@ typedef struct {
SA_BOOL bZSLEnable; SA_BOOL bZSLEnable;
SA_MEDIA_BEAUTY_MODE_S stBeautyCfg; SA_MEDIA_BEAUTY_MODE_S stBeautyCfg;
SA_MEDIA_CAPTURE_SAVE_CONFIG_S stSaveCfg; SA_MEDIA_CAPTURE_SAVE_CONFIG_S stSaveCfg;
SA_MEDIA_THUMB_SAVE_CONFIG_S stThumbCfg;
} SA_MEDIA_CAPTURE_CONFIG_S; } SA_MEDIA_CAPTURE_CONFIG_S;
typedef struct { typedef struct {
VI_EIS_MODE_E enEISMode; VI_EIS_MODE_E enEISMode;
SA_MEDIA_AUDIO_CONFIG_S stAudioConfig; SA_MEDIA_AUDIO_CONFIG_S stAudioConfig;
SA_MEDIA_RECORD_SAVE_CONFIG_S stSaveCfg; SA_MEDIA_RECORD_SAVE_CONFIG_S stSaveCfg;
SA_MEDIA_THUMB_SAVE_CONFIG_S stThumbCfg;
} SA_MEDIA_RECORD_CONFIG_S; } SA_MEDIA_RECORD_CONFIG_S;
typedef struct { typedef struct {
...@@ -535,11 +570,13 @@ typedef struct { ...@@ -535,11 +570,13 @@ typedef struct {
SA_BOOL bZSLEnable; SA_BOOL bZSLEnable;
SA_MEDIA_BEAUTY_MODE_S stBeautyCfg; SA_MEDIA_BEAUTY_MODE_S stBeautyCfg;
SA_MEDIA_CAPTURE_SAVE_CONFIG_S stSaveCfg; SA_MEDIA_CAPTURE_SAVE_CONFIG_S stSaveCfg;
SA_MEDIA_THUMB_SAVE_CONFIG_S stThumbCfg;
} SA_MEDIA_CAPTURE_ATTR_S; } SA_MEDIA_CAPTURE_ATTR_S;
typedef struct { typedef struct {
VI_EIS_MODE_E enEISMode; VI_EIS_MODE_E enEISMode;
SA_MEDIA_RECORD_SAVE_CONFIG_S stSaveCfg; SA_MEDIA_RECORD_SAVE_CONFIG_S stSaveCfg;
SA_MEDIA_THUMB_SAVE_CONFIG_S stThumbCfg;
} SA_MEDIA_RECORD_ATTR_S; } SA_MEDIA_RECORD_ATTR_S;
typedef struct { typedef struct {
...@@ -611,7 +648,7 @@ typedef SA_VOID (*SA_HAPI_DUMPCALLBACK)(SA_MEDIA_DUMP_E, VIDEO_FRAME_INFO_S*); ...@@ -611,7 +648,7 @@ typedef SA_VOID (*SA_HAPI_DUMPCALLBACK)(SA_MEDIA_DUMP_E, VIDEO_FRAME_INFO_S*);
SA_S32 SA_HAPI_MEDIA_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_CONFIG_S *pstSceneConfig, SA_MEDIA_ATTR_S *pstMediaAttr); SA_S32 SA_HAPI_MEDIA_GetAttr(SA_MEDIA_SCENE_E enScene, SA_MEDIA_CONFIG_S *pstSceneConfig, SA_MEDIA_ATTR_S *pstMediaAttr);
SA_S32 SA_HAPI_MEDIA_Start(SA_MEDIA_ATTR_S *pstMediaAttr); SA_S32 SA_HAPI_MEDIA_Start(SA_MEDIA_ATTR_S *pstMediaAttr);
SA_S32 SA_HAPI_MEDIA_Stop(SA_MEDIA_ATTR_S *pstMediaAttr); SA_S32 SA_HAPI_MEDIA_Stop(SA_MEDIA_ATTR_S *pstMediaAttr);
SA_S32 SA_HAPI_MEDIA_Capture(SA_U8* pStrSavedFilename); SA_S32 SA_HAPI_MEDIA_Capture(SA_U8* pStrCaptureFilename, SA_U8* pStrThumbFilename);
SA_S32 SA_HAPI_MEDIA_Record(SA_BOOL bEnable); SA_S32 SA_HAPI_MEDIA_Record(SA_BOOL bEnable);
SA_S32 SA_HAPI_MEDIA_GetVideoStream(VENC_CHN u32VeChn, VENC_STREAM_S *pstStream, SA_S32 s32MilliSec); SA_S32 SA_HAPI_MEDIA_GetVideoStream(VENC_CHN u32VeChn, VENC_STREAM_S *pstStream, SA_S32 s32MilliSec);
SA_S32 SA_HAPI_MEDIA_ReleaseVideoStream(VENC_CHN u32VeChn, VENC_STREAM_S *pstStream); SA_S32 SA_HAPI_MEDIA_ReleaseVideoStream(VENC_CHN u32VeChn, VENC_STREAM_S *pstStream);
......
...@@ -12,7 +12,7 @@ SA_S32 SA_INNER_MEDIA_CAPTURE_GetAttr(SA_MEDIA_CAPTURE_CONFIG_S *pstSceneConfig, ...@@ -12,7 +12,7 @@ SA_S32 SA_INNER_MEDIA_CAPTURE_GetAttr(SA_MEDIA_CAPTURE_CONFIG_S *pstSceneConfig,
SA_S32 SA_INNER_MEDIA_CAPTURE_Hevc_Convert_Heif(const HEVC_FRAME_INFO_S *pstInput, HEIF_FRAME_INFO_S *pstOutput); SA_S32 SA_INNER_MEDIA_CAPTURE_Hevc_Convert_Heif(const HEVC_FRAME_INFO_S *pstInput, HEIF_FRAME_INFO_S *pstOutput);
SA_S32 SA_INNER_MEDIA_CAPTURE_EncodeSingleHeif(SA_MEDIA_HEIF_SINGLE_FRAME_INFO_S *pstHeifFrameInfo, SA_S32 s32MilliSec);
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
......
...@@ -14,6 +14,7 @@ SA_S32 SA_INNER_MEDIA_RECORD_GetAttr(SA_MEDIA_RECORD_CONFIG_S *pstSceneConfig, S ...@@ -14,6 +14,7 @@ SA_S32 SA_INNER_MEDIA_RECORD_GetAttr(SA_MEDIA_RECORD_CONFIG_S *pstSceneConfig, S
pstMediaAttr->stRecord.enEISMode = pstSceneConfig->enEISMode; pstMediaAttr->stRecord.enEISMode = pstSceneConfig->enEISMode;
memcpy(&pstMediaAttr->stRecord.stSaveCfg, &pstSceneConfig->stSaveCfg, sizeof(SA_MEDIA_RECORD_SAVE_CONFIG_S)); memcpy(&pstMediaAttr->stRecord.stSaveCfg, &pstSceneConfig->stSaveCfg, sizeof(SA_MEDIA_RECORD_SAVE_CONFIG_S));
memcpy(&pstMediaAttr->stRecord.stThumbCfg, &pstSceneConfig->stThumbCfg, sizeof(SA_MEDIA_THUMB_SAVE_CONFIG_S));
return s32Ret; return s32Ret;
} }
......
...@@ -553,7 +553,12 @@ SA_S32 INNER_MEDIA_RGN_GetConfig(SA_MEDIA_VIDEO_CONFIG_S *pstSceneConfig, SA_MED ...@@ -553,7 +553,12 @@ SA_S32 INNER_MEDIA_RGN_GetConfig(SA_MEDIA_VIDEO_CONFIG_S *pstSceneConfig, SA_MED
for (j = 0; j < SA_MEDIA_RGN_CHN_MAX; j++) { for (j = 0; j < SA_MEDIA_RGN_CHN_MAX; j++) {
pstRegion = &pstVencConfig->astRegion[j]; pstRegion = &pstVencConfig->astRegion[j];
if (SA_TRUE == pstRegion->bEnable) { if (SA_TRUE == pstRegion->bEnable) {
if (VENC_ENCODE_TYPE_JPEG == pstVencChnAttr->stChnAttr.stVencAttr.eEncType) {
pstRgnAttr->astChannel[u32RgnId].bEnable = SA_FALSE;
HAPI_MEDIA_LOG_W("JPEG does not support OSD \n");
} else {
pstRgnAttr->astChannel[u32RgnId].bEnable = SA_TRUE; pstRgnAttr->astChannel[u32RgnId].bEnable = SA_TRUE;
}
pstRgnAttr->astChannel[u32RgnId].u32HandleId = u32RgnId; pstRgnAttr->astChannel[u32RgnId].u32HandleId = u32RgnId;
pstRgnAttr->astChannel[u32RgnId].stRect = pstRegion->stRect; pstRgnAttr->astChannel[u32RgnId].stRect = pstRegion->stRect;
pstRgnAttr->astChannel[u32RgnId].enType = pstRegion->enType; pstRgnAttr->astChannel[u32RgnId].enType = pstRegion->enType;
......
...@@ -40,11 +40,6 @@ VI_GDC_ATTR_S MEDIA_GDC_PARAM_DEFAULT = ...@@ -40,11 +40,6 @@ VI_GDC_ATTR_S MEDIA_GDC_PARAM_DEFAULT =
}, },
}; };
#define MEDIA_VPSS_CHN (1)
#define MEDIA_VPSS_CHN_THUMB (2)
#define MEDIA_VENC_CAPTURE (0)
#define MEDIA_VENC_RECORD (1)
#ifndef MEDIA_ALIGN_UP #ifndef MEDIA_ALIGN_UP
#define MEDIA_ALIGN_UP(x, a) ((((x) + ((a) - 1)) / a) * a) #define MEDIA_ALIGN_UP(x, a) ((((x) + ((a) - 1)) / a) * a)
#endif #endif
......
...@@ -973,6 +973,15 @@ int Inner_Hapi_IcrManualProcess(int isp_pipe) { ...@@ -973,6 +973,15 @@ int Inner_Hapi_IcrManualProcess(int isp_pipe) {
HAPI_MUTEX_T g_MutexSei[ISP_DEV_MAX] = {0}; HAPI_MUTEX_T g_MutexSei[ISP_DEV_MAX] = {0};
int Inner_Hapi_IcrSdCreat(int isp_pipe) int Inner_Hapi_IcrSdCreat(int isp_pipe)
{ {
if(NULL == g_stIcrIspExtObj[isp_pipe].pfn_sns_ispext_seticr) {
SA_SNS_ITEM SnsItem = {0};
if(SA_SUCCESS == SA_MAPI_SNS_GetSnsObj(isp_pipe*2, &SnsItem)) {
g_stIcrIspExtObj[isp_pipe].pfn_sns_ispext_sns_rst = SnsItem.pstSnsObj->pstIspExtObj->pfn_sns_ispext_sns_rst;
g_stIcrIspExtObj[isp_pipe].pfn_sns_ispext_seticr = SnsItem.pstSnsObj->pstIspExtObj->pfn_sns_ispext_seticr;
g_stIcrIspExtObj[isp_pipe].pfn_sns_ispext_setlamp = SnsItem.pstSnsObj->pstIspExtObj->pfn_sns_ispext_setlamp;
}
}
if (g_nightMode[isp_pipe] == ICR_NIGHTMODE_BLACK && g_curIcrMode[isp_pipe] == ICR_NIGHT_BLACKWHITE) if (g_nightMode[isp_pipe] == ICR_NIGHTMODE_BLACK && g_curIcrMode[isp_pipe] == ICR_NIGHT_BLACKWHITE)
isp_icr_ctrl(isp_pipe, ICR_OFF); //黑白夜视模式下如果icr初始值为Night, 初始化状态从黑白开始 isp_icr_ctrl(isp_pipe, ICR_OFF); //黑白夜视模式下如果icr初始值为Night, 初始化状态从黑白开始
else else
...@@ -2889,7 +2898,7 @@ static void Inner_Hapi_SD_Thread(void* arg) ...@@ -2889,7 +2898,7 @@ static void Inner_Hapi_SD_Thread(void* arg)
isp_pipe = *(int*)arg; isp_pipe = *(int*)arg;
HAPI_LOG_I("Inner_Hapi_SD_Thread Start! isppipe:%d\n",isp_pipe); HAPI_LOG_I("Inner_Hapi_SD_Thread Start! isppipe:%d\n",isp_pipe);
usleep(200000); usleep(200000);
Inner_Hapi_IcrSdCreat(isp_pipe);
while(g_bSdStart[isp_pipe]){ while(g_bSdStart[isp_pipe]){
// HAPI_LOG_I("wpl @@@@@@@@g_hold[%d]@@@@@@@@@@\n",g_hold[isp_pipe]); // HAPI_LOG_I("wpl @@@@@@@@g_hold[%d]@@@@@@@@@@\n",g_hold[isp_pipe]);
while(g_hold[isp_pipe]) { while(g_hold[isp_pipe]) {
...@@ -2914,6 +2923,11 @@ static void Inner_Hapi_SD_Thread(void* arg) ...@@ -2914,6 +2923,11 @@ static void Inner_Hapi_SD_Thread(void* arg)
i = 0; i = 0;
continue; continue;
} }
if (SA_FALSE == g_bIcrSdCreated[isp_pipe]) {
Inner_Hapi_IcrSdCreat(isp_pipe);//运行一次
}
if(SA_SUCCESS == s32Ret) { if(SA_SUCCESS == s32Ret) {
SA_MAPI_ISP_GetExposureInfo(isp_pipe, &expInfo); SA_MAPI_ISP_GetExposureInfo(isp_pipe, &expInfo);
......
...@@ -727,10 +727,17 @@ SA_S32 SAMPLE_MEDIA_Load_Config(const SA_CHAR *strConfigFile) ...@@ -727,10 +727,17 @@ SA_S32 SAMPLE_MEDIA_Load_Config(const SA_CHAR *strConfigFile)
if (SA_TRUE == pstCaptureConfig->stBeautyCfg.bBeautyEnable) { if (SA_TRUE == pstCaptureConfig->stBeautyCfg.bBeautyEnable) {
MEDIA_JSON_NODE_ASSERT(saJSON_GetInt(pstCapture, "Strength", &pstCaptureConfig->stBeautyCfg.u8Strength, 50)); MEDIA_JSON_NODE_ASSERT(saJSON_GetInt(pstCapture, "Strength", &pstCaptureConfig->stBeautyCfg.u8Strength, 50));
} }
MEDIA_JSON_NODE_ASSERT(saJSON_GetInt(pstCapture, "SaveEnable", &pstCaptureConfig->stSaveCfg.bSaveEnable, SA_TRUE)); MEDIA_JSON_NODE_ASSERT(saJSON_GetInt(pstCapture, "CaptureEnable", &pstCaptureConfig->stSaveCfg.bSaveEnable, SA_FALSE));
if (SA_TRUE == pstCaptureConfig->stSaveCfg.bSaveEnable) { if (SA_TRUE == pstCaptureConfig->stSaveCfg.bSaveEnable) {
MEDIA_JSON_NODE_ASSERT(saJSON_GetInt(pstCapture, "SaveFormat", &pstCaptureConfig->stSaveCfg.enSaveFormat, SA_MEDIA_CAPTURE_SAVE_JPEG)); MEDIA_JSON_NODE_ASSERT(saJSON_GetInt(pstCapture, "CaptureFormat", &pstCaptureConfig->stSaveCfg.enSaveFormat, SA_MEDIA_CAPTURE_SAVE_JPEG));
MEDIA_JSON_NODE_ASSERT(saJSON_GetString(pstCapture, "SaveFilePath", pstCaptureConfig->stSaveCfg.astrSaveFilePath, SA_TRUE)); MEDIA_JSON_NODE_ASSERT(saJSON_GetString(pstCapture, "CaptureFilePath", pstCaptureConfig->stSaveCfg.astrSaveFilePath, SA_TRUE));
}
MEDIA_JSON_NODE_ASSERT(saJSON_GetInt(pstCapture, "ThumbEnable", &pstCaptureConfig->stThumbCfg.bSaveEnable, SA_FALSE));
if (SA_TRUE == pstCaptureConfig->stThumbCfg.bSaveEnable) {
MEDIA_JSON_NODE_ASSERT(saJSON_GetInt(pstCapture, "ThumbWidth", &pstCaptureConfig->stThumbCfg.stThumbSize.u32Width, 1920));
MEDIA_JSON_NODE_ASSERT(saJSON_GetInt(pstCapture, "ThumbHeight", &pstCaptureConfig->stThumbCfg.stThumbSize.u32Height, 1080));
MEDIA_JSON_NODE_ASSERT(saJSON_GetInt(pstCapture, "ThumbFormat", &pstCaptureConfig->stThumbCfg.enSaveFormat, SA_MEDIA_CAPTURE_SAVE_JPEG));
MEDIA_JSON_NODE_ASSERT(saJSON_GetString(pstCapture, "ThumbFilePath", pstCaptureConfig->stThumbCfg.astrSaveFilePath, SA_TRUE));
} }
//end of capture //end of capture
...@@ -749,10 +756,17 @@ SA_S32 SAMPLE_MEDIA_Load_Config(const SA_CHAR *strConfigFile) ...@@ -749,10 +756,17 @@ SA_S32 SAMPLE_MEDIA_Load_Config(const SA_CHAR *strConfigFile)
} }
} }
MEDIA_JSON_NODE_ASSERT(saJSON_GetInt(pstRecord, "SaveEnable", &pstRecordConfig->stSaveCfg.bSaveEnable, SA_TRUE)); MEDIA_JSON_NODE_ASSERT(saJSON_GetInt(pstRecord, "RecordEnable", &pstRecordConfig->stSaveCfg.bSaveEnable, SA_TRUE));
if (SA_TRUE == pstRecordConfig->stSaveCfg.bSaveEnable) { if (SA_TRUE == pstRecordConfig->stSaveCfg.bSaveEnable) {
MEDIA_JSON_NODE_ASSERT(saJSON_GetInt(pstRecord, "SaveFormat", &pstRecordConfig->stSaveCfg.enSaveFormat, SA_MEDIA_RECORD_SAVE_265)); MEDIA_JSON_NODE_ASSERT(saJSON_GetInt(pstRecord, "RecordFormat", &pstRecordConfig->stSaveCfg.enSaveFormat, SA_MEDIA_RECORD_SAVE_265));
MEDIA_JSON_NODE_ASSERT(saJSON_GetString(pstRecord, "SaveFilePath", pstRecordConfig->stSaveCfg.astrSaveFilePath, SA_TRUE)); MEDIA_JSON_NODE_ASSERT(saJSON_GetString(pstRecord, "RecordFilePath", pstRecordConfig->stSaveCfg.astrSaveFilePath, SA_TRUE));
}
MEDIA_JSON_NODE_ASSERT(saJSON_GetInt(pstRecord, "ThumbEnable", &pstRecordConfig->stThumbCfg.bSaveEnable, SA_FALSE));
if (SA_TRUE == pstRecordConfig->stThumbCfg.bSaveEnable) {
MEDIA_JSON_NODE_ASSERT(saJSON_GetInt(pstRecord, "ThumbWidth", &pstRecordConfig->stThumbCfg.stThumbSize.u32Width, 1920));
MEDIA_JSON_NODE_ASSERT(saJSON_GetInt(pstRecord, "ThumbHeight", &pstRecordConfig->stThumbCfg.stThumbSize.u32Height, 1080));
MEDIA_JSON_NODE_ASSERT(saJSON_GetInt(pstRecord, "ThumbFormat", &pstRecordConfig->stThumbCfg.enSaveFormat, SA_MEDIA_CAPTURE_SAVE_JPEG));
MEDIA_JSON_NODE_ASSERT(saJSON_GetString(pstRecord, "ThumbFilePath", pstRecordConfig->stThumbCfg.astrSaveFilePath, SA_TRUE));
} }
//end of record //end of record
...@@ -1112,7 +1126,7 @@ void SAMPLE_MEDIA_Work(void *p) ...@@ -1112,7 +1126,7 @@ void SAMPLE_MEDIA_Work(void *p)
if (-1 == g_s32TestMode) {//测试capture/record接口 if (-1 == g_s32TestMode) {//测试capture/record接口
if (SA_MEDIA_SCENE_CAPTURE == *penSceneEntry) { if (SA_MEDIA_SCENE_CAPTURE == *penSceneEntry) {
for (int i = 0; i < g_s32CaptureNum; i++) { for (int i = 0; i < g_s32CaptureNum; i++) {
s32Ret = SA_HAPI_MEDIA_Capture(SA_NULL); s32Ret = SA_HAPI_MEDIA_Capture(SA_NULL,SA_NULL);
if (SA_SUCCESS != s32Ret) { if (SA_SUCCESS != s32Ret) {
HAPI_MEDIA_LOG_E("SA_HAPI_MEDIA_Capture failed with %#x!\n", s32Ret); HAPI_MEDIA_LOG_E("SA_HAPI_MEDIA_Capture failed with %#x!\n", s32Ret);
goto EXIT_VIDEO_STOP; goto EXIT_VIDEO_STOP;
...@@ -1129,7 +1143,7 @@ void SAMPLE_MEDIA_Work(void *p) ...@@ -1129,7 +1143,7 @@ void SAMPLE_MEDIA_Work(void *p)
g_bMediaHapiRun = SA_FALSE; g_bMediaHapiRun = SA_FALSE;
} else if (SA_MEDIA_SCENE_CAPTURE_RECORD == *penSceneEntry) { } else if (SA_MEDIA_SCENE_CAPTURE_RECORD == *penSceneEntry) {
for (int i = 0; i < g_s32CaptureNum; i++) { for (int i = 0; i < g_s32CaptureNum; i++) {
s32Ret = SA_HAPI_MEDIA_Capture(SA_NULL); s32Ret = SA_HAPI_MEDIA_Capture(SA_NULL,SA_NULL);
if (SA_SUCCESS != s32Ret) { if (SA_SUCCESS != s32Ret) {
HAPI_MEDIA_LOG_E("SA_HAPI_MEDIA_Capture failed with %#x!\n", s32Ret); HAPI_MEDIA_LOG_E("SA_HAPI_MEDIA_Capture failed with %#x!\n", s32Ret);
goto EXIT_VIDEO_STOP; goto EXIT_VIDEO_STOP;
......
...@@ -46,11 +46,8 @@ cat ${ko_dir}/sa6920-ipc-sdk.dtbo >/sys/kernel/config/device-tree/overlays/sdk/d ...@@ -46,11 +46,8 @@ cat ${ko_dir}/sa6920-ipc-sdk.dtbo >/sys/kernel/config/device-tree/overlays/sdk/d
# anne drivers & audio drivers # anne drivers & audio drivers
model=$(cat /proc/device-tree/model) model=$(cat /proc/device-tree/model)
echo $model echo $model
if echo "$model" | grep -q "v24" ; then
/sbin/insmod ${ko_dir}/snd-soc-sa8901.ko async_probe=1 /sbin/insmod ${ko_dir}/snd-soc-sa8901.ko async_probe=1
else
/sbin/insmod ${ko_dir}/snd-soc-sa8900.ko async_probe=1
fi
/sbin/insmod ${ko_dir}/designware_i2s.ko async_probe=1 /sbin/insmod ${ko_dir}/designware_i2s.ko async_probe=1
/sbin/insmod ${ko_dir}/snd-soc-simple-card-utils.ko async_probe=1 /sbin/insmod ${ko_dir}/snd-soc-simple-card-utils.ko async_probe=1
/sbin/insmod ${ko_dir}/snd-soc-simple-card.ko async_probe=1 /sbin/insmod ${ko_dir}/snd-soc-simple-card.ko async_probe=1
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment