diff --git a/distributeddatamgr/relational_store/BUILD.gn b/distributeddatamgr/relational_store/BUILD.gn
index 203e78f46fadac4b94fe18bc93e8e9567c82b77e..560c94d4d153579497dd4bea9a91509e5015cec4 100644
--- a/distributeddatamgr/relational_store/BUILD.gn
+++ b/distributeddatamgr/relational_store/BUILD.gn
@@ -21,6 +21,7 @@ ohos_ndk_headers("native_rdb_ndk_header") {
"./include/oh_cursor.h",
"./include/oh_predicates.h",
"./include/oh_rdb_transaction.h",
+ "./include/oh_rdb_types.h",
"./include/oh_value_object.h",
"./include/oh_values_bucket.h",
"./include/relational_store.h",
@@ -52,9 +53,10 @@ ohos_ndk_library("libnative_rdb_ndk") {
"$ndk_headers_out_dir/database/rdb/oh_cursor.h",
"$ndk_headers_out_dir/database/rdb/oh_predicates.h",
"$ndk_headers_out_dir/database/rdb/oh_rdb_transaction.h",
+ "$ndk_headers_out_dir/database/rdb/oh_rdb_types.h",
"$ndk_headers_out_dir/database/rdb/oh_value_object.h",
"$ndk_headers_out_dir/database/rdb/oh_values_bucket.h",
"$ndk_headers_out_dir/database/rdb/relational_store.h",
"$ndk_headers_out_dir/database/rdb/relational_store_error_code.h",
]
-}
\ No newline at end of file
+}
diff --git a/distributeddatamgr/relational_store/include/oh_rdb_transaction.h b/distributeddatamgr/relational_store/include/oh_rdb_transaction.h
index e302f677d6014ff43e735f2445db475c84ee6d66..fef7298671cefbebbb5752a029ec9b87ff790b0f 100644
--- a/distributeddatamgr/relational_store/include/oh_rdb_transaction.h
+++ b/distributeddatamgr/relational_store/include/oh_rdb_transaction.h
@@ -43,6 +43,7 @@
#include "database/rdb/oh_cursor.h"
#include "database/rdb/oh_predicates.h"
#include "database/rdb/oh_values_bucket.h"
+#include "database/rdb/oh_rdb_types.h"
#include "database/data/oh_data_values.h"
#include "database/data/oh_data_values_buckets.h"
@@ -198,6 +199,7 @@ int OH_RdbTrans_Insert(OH_Rdb_Transaction *trans, const char *table, const OH_VB
* @param trans Represents a pointer to an instance of OH_Rdb_Transaction.
* @param table Represents the target table.
* @param rows Represents the rows data to be inserted into the table.
+ * @param resolution Represents the resolution when conflict occurs.
* @param changes Represents the number of successful insertions.
* @return Returns the status code of the execution.
* Returns {@link RDB_OK} if the execution is successful.
@@ -215,10 +217,11 @@ int OH_RdbTrans_Insert(OH_Rdb_Transaction *trans, const char *table, const OH_VB
* Returns {@link RDB_E_SQLITE_IOERR} SQLite: Some kind of disk I/O error occurred.
* Returns {@link RDB_E_SQLITE_TOO_BIG} SQLite: TEXT or BLOB exceeds size limit.
* Returns {@link RDB_E_SQLITE_MISMATCH} SQLite: Data type mismatch.
+ * Returns {@link RDB_E_SQLITE_CONSTRAINT} SQLite: Abort due to constraint violation.
* @since 16
*/
int OH_RdbTrans_BatchInsert(OH_Rdb_Transaction *trans, const char *table, const OH_Data_VBuckets *rows,
- int64_t *changes);
+ Rdb_ConflictResolution resolution, int64_t *changes);
/**
* @brief Updates data in the database based on specified conditions.
diff --git a/distributeddatamgr/relational_store/include/oh_rdb_types.h b/distributeddatamgr/relational_store/include/oh_rdb_types.h
new file mode 100644
index 0000000000000000000000000000000000000000..5080ae645fbcfbea0461c87fe3a07bed42855d64
--- /dev/null
+++ b/distributeddatamgr/relational_store/include/oh_rdb_types.h
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2025 Huawei Device Co., Ltd.
+ * 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.
+ */
+
+/**
+ * @addtogroup RDB
+ * @{
+ *
+ * @brief The relational database (RDB) store manages data based on relational models.
+ * With the underlying SQLite database, the RDB store provides a complete mechanism for managing local databases.
+ * To satisfy different needs in complicated scenarios, the RDB store offers a series of APIs for performing operations
+ * such as adding, deleting, modifying, and querying data, and supports direct execution of SQL statements.
+ *
+ * @since 10
+ */
+
+/**
+ * @file oh_rdb_types.h
+ *
+ * @brief Provides type define related to the data value.
+ *
+ * @kit ArkData
+ * @library libnative_rdb_ndk.z.so
+ * @syscap SystemCapability.DistributedDataManager.RelationalStore.Core
+ *
+ * @since 16
+ */
+
+#ifndef OH_RDB_TYPES_H
+#define OH_RDB_TYPES_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @brief Describe the security area of the database.
+ *
+ * @since 16
+ */
+typedef enum Rdb_ConflictResolution {
+ /**
+ * @brief Implements no operation when conflict occurs.
+ */
+ RDB_CONFLICT_NONE = 1,
+ /**
+ * @brief Implements rollback operation when conflict occurs.
+ */
+ RDB_CONFLICT_ROLLBACK,
+ /**
+ * @brief Implements abort operation when conflict occurs.
+ */
+ RDB_CONFLICT_ABORT,
+ /**
+ * @brief Implements fail operation when conflict occurs.
+ */
+ RDB_CONFLICT_FAIL,
+ /**
+ * @brief Implements ignore operation when conflict occurs.
+ */
+ RDB_CONFLICT_IGNORE,
+ /**
+ * @brief Implements replace operation when conflict occurs.
+ */
+ RDB_CONFLICT_REPLACE,
+} Rdb_ConflictResolution;
+
+#ifdef __cplusplus
+};
+#endif
+#endif
+/** @} */
\ No newline at end of file
diff --git a/distributeddatamgr/relational_store/include/relational_store.h b/distributeddatamgr/relational_store/include/relational_store.h
index 01149c1b412538cff7cd12c2f058b4957a6718c1..1974af547d26c93596ceb236103804062e28cda3 100644
--- a/distributeddatamgr/relational_store/include/relational_store.h
+++ b/distributeddatamgr/relational_store/include/relational_store.h
@@ -44,6 +44,7 @@
#include "database/rdb/oh_value_object.h"
#include "database/rdb/oh_values_bucket.h"
#include "database/rdb/oh_rdb_transaction.h"
+#include "database/rdb/oh_rdb_types.h"
#ifdef __cplusplus
extern "C" {
@@ -487,6 +488,36 @@ int OH_Rdb_DeleteStoreV2(const OH_Rdb_ConfigV2 *config);
*/
int OH_Rdb_Insert(OH_Rdb_Store *store, const char *table, OH_VBucket *valuesBucket);
+/**
+ * @brief Inserts a batch of data into the target table.
+ *
+ * @param store Represents a pointer to an {@link OH_Rdb_Store} instance.
+ * @param table Represents the target table.
+ * @param rows Represents the rows data to be inserted into the table.
+ * @param resolution Represents the resolution when conflict occurs.
+ * @param changes Represents the number of successful insertions.
+ * @return Returns the status code of the execution.
+ * Returns {@link RDB_OK} if the execution is successful.
+ * Returns {@link RDB_E_ERROR} database common error.
+ * Returns {@link RDB_E_INVALID_ARGS} if invalid input parameter.
+ * Returns {@link RDB_E_ALREADY_CLOSED} database already closed.
+ * Returns {@link RDB_E_WAL_SIZE_OVER_LIMIT} the WAL file size over default limit.
+ * Returns {@link RDB_E_SQLITE_FULL} SQLite: The database is full.
+ * Returns {@link RDB_E_SQLITE_CORRUPT} database corrupted.
+ * Returns {@link RDB_E_SQLITE_PERM} SQLite: Access permission denied.
+ * Returns {@link RDB_E_SQLITE_BUSY} SQLite: The database file is locked.
+ * Returns {@link RDB_E_SQLITE_LOCKED} SQLite: A table in the database is locked.
+ * Returns {@link RDB_E_SQLITE_NOMEM} SQLite: The database is out of memory.
+ * Returns {@link RDB_E_SQLITE_READONLY} SQLite: Attempt to write a readonly database.
+ * Returns {@link RDB_E_SQLITE_IOERR} SQLite: Some kind of disk I/O error occurred.
+ * Returns {@link RDB_E_SQLITE_TOO_BIG} SQLite: TEXT or BLOB exceeds size limit.
+ * Returns {@link RDB_E_SQLITE_MISMATCH} SQLite: Data type mismatch.
+ * Returns {@link RDB_E_SQLITE_CONSTRAINT} SQLite: Abort due to constraint violation.
+ * @since 16
+ */
+int OH_Rdb_BatchInsert(OH_Rdb_Store *store, const char *table,
+ const OH_Data_VBuckets *rows, Rdb_ConflictResolution resolution, int64_t *changes);
+
/**
* @brief Updates data in the database based on specified conditions.
*
diff --git a/distributeddatamgr/relational_store/include/relational_store_error_code.h b/distributeddatamgr/relational_store/include/relational_store_error_code.h
index fb9a20805e5c74b1d2fc273c6e045ffde0324ac4..64ec5db2a93a189da25d9d92b171364e98e0828b 100644
--- a/distributeddatamgr/relational_store/include/relational_store_error_code.h
+++ b/distributeddatamgr/relational_store/include/relational_store_error_code.h
@@ -413,6 +413,13 @@ typedef enum OH_Rdb_ErrCode {
* @since 16
*/
RDB_E_TYPE_MISMATCH = (E_BASE + 64),
+
+ /**
+ * @brief Data value type is null.
+ *
+ * @since 16
+ */
+ RDB_E_SQLITE_CONSTRAINT = (E_BASE + 65),
} OH_Rdb_ErrCode;
#ifdef __cplusplus
diff --git a/distributeddatamgr/relational_store/libnative_rdb.ndk.json b/distributeddatamgr/relational_store/libnative_rdb.ndk.json
index 72944429222dc602042e6c54e85aa56f489481a6..afa90061361be0e3e3cee1aa6efc69073695f6dd 100644
--- a/distributeddatamgr/relational_store/libnative_rdb.ndk.json
+++ b/distributeddatamgr/relational_store/libnative_rdb.ndk.json
@@ -70,6 +70,10 @@
{
"name":"OH_Rdb_Insert"
},
+ {
+ "first_introduced": "16",
+ "name":"OH_Rdb_BatchInsert"
+ },
{
"name":"OH_Rdb_Update"
},
diff --git a/graphic/graphic_2d/native_drawing/drawing_gpu_context.h b/graphic/graphic_2d/native_drawing/drawing_gpu_context.h
index 9bc3239bd5b377eaad653506a1f61b695365747c..1949a5e725f78c553096ebece81194d738b81f27 100644
--- a/graphic/graphic_2d/native_drawing/drawing_gpu_context.h
+++ b/graphic/graphic_2d/native_drawing/drawing_gpu_context.h
@@ -76,7 +76,7 @@ OH_Drawing_GpuContext* OH_Drawing_GpuContextCreateFromGL(OH_Drawing_GpuContextOp
* @since 16
* @version 1.0
*/
-OH_Drawing_GpuContext* OH_Drawing_GpuContextCreate();
+OH_Drawing_GpuContext* OH_Drawing_GpuContextCreate(void);
/**
* @brief Destroys an OH_Drawing_GpuContext object and reclaims the memory occupied by the object.
diff --git a/graphic/graphic_2d/native_drawing/drawing_path_effect.h b/graphic/graphic_2d/native_drawing/drawing_path_effect.h
index 78c5d8f09653f0f3d2bcb874bc0fcc1d70359e58..e89201d142664b06592abf22db67c81b818e84e4 100644
--- a/graphic/graphic_2d/native_drawing/drawing_path_effect.h
+++ b/graphic/graphic_2d/native_drawing/drawing_path_effect.h
@@ -47,19 +47,19 @@ extern "C" {
#endif
/**
- * @brief Enumerate path effect types.
+ * @brief Enumerate path dash style.
*
* @since 16
* @version 1.0
*/
typedef enum {
- /** Indicates that the path effect is a translation effect. */
- PATH_EFFECT_TRANSLATE,
- /** Indicates that the path effect is a rotation effect. */
- PATH_EFFECT_ROTATE,
- /** Indicates that the path effect is a morph effect. */
- PATH_EFFECT_MORPH,
-} OH_Drawing_PathEffectType;
+ /** Indicates translation effect. */
+ DRAWING_PATH_DASH_STYLE_TRANSLATE,
+ /** Indicates rotation effect. */
+ DRAWING_PATH_DASH_STYLE_ROTATE,
+ /** Indicates morph effect. */
+ DRAWING_PATH_DASH_STYLE_MORPH,
+} OH_Drawing_PathDashStyle;
/**
* @brief Creates an OH_Drawing_PathEffect object that is a combination of paths,
@@ -121,7 +121,7 @@ OH_Drawing_PathEffect* OH_Drawing_CreateDiscretePathEffect(float segLength, floa
* @param path Indicates the pointer to an OH_Drawing_Path object.
* @param advance Indicates the distance between the dashed segments.
* @param phase Indicates the offset into intervals array.
- * @param type Indicates the type of the path effect.
+ * @param type Indicates the type of the path dash effect.
* @return Returns the pointer to the OH_Drawing_PathEffect object created.
* If nullptr is returned, the creation fails.
* The possible cause of the failure is advance and phase are zero or less.
@@ -129,7 +129,7 @@ OH_Drawing_PathEffect* OH_Drawing_CreateDiscretePathEffect(float segLength, floa
* @version 1.0
*/
OH_Drawing_PathEffect* OH_Drawing_CreatePathDashEffect(const OH_Drawing_Path* path, float advance, float phase,
- OH_Drawing_PathEffectType type);
+ OH_Drawing_PathDashStyle type);
/**
* @brief Creates an OH_Drawing_PathEffect object by overlaying two path effects.
diff --git a/multimedia/image_framework/include/image/image_source_native.h b/multimedia/image_framework/include/image/image_source_native.h
index 73deea8022baa5b9cbcc1eb7301e5ad8d33fba9e..9922b0e8ca55804a6ed1b9153155595368aaeffd 100644
--- a/multimedia/image_framework/include/image/image_source_native.h
+++ b/multimedia/image_framework/include/image/image_source_native.h
@@ -118,6 +118,23 @@ typedef enum {
IMAGE_ALLOCATOR_TYPE_SHARE_MEMORY = 2,
} IMAGE_ALLOCATOR_TYPE;
+/**
+ * @brief Confirm the enumeration type for decoding and scaling order of the region.
+ *
+ * @since 16
+ */
+typedef enum {
+ /*
+ * First scale, then crop.
+ */
+ SCALE_FIRST = 1,
+ /*
+ * Perform region decoding first, then scaling.
+ */
+ CROP_FIRST = 2
+} CROP_SCALE_STRATEGY;
+
+
/**
* @brief Create a pointer for OH_ImageSource_Info struct.
*
@@ -207,6 +224,29 @@ Image_ErrorCode OH_DecodingOptions_GetPixelFormat(OH_DecodingOptions *options,
Image_ErrorCode OH_DecodingOptions_SetPixelFormat(OH_DecodingOptions *options,
int32_t pixelFormat);
+
+/**
+ * @brief Get strategy number for OH_DecodingOptions struct.
+ *
+ * @param options The OH_DecodingOptions pointer will be operated.
+ * @param cropAndScaleStrategy the number of Scaling and cropping strategy.
+ * @return Returns {@link Image_ErrorCode}
+ * @since 16
+ */
+Image_ErrorCode OH_DecodingOptions_GetCropAndScaleStrategy(OH_DecodingOptions *options,
+ int32_t *cropAndScaleStrategy);
+
+/**
+ * @brief Set strategy number for OH_DecodingOptions struct.
+ *
+ * @param options The OH_DecodingOptions pointer will be operated.
+ * @param cropAndScaleStrategy the number of Scaling and cropping strategy.
+ * @return Returns {@link Image_ErrorCode}
+ * @since 16
+ */
+Image_ErrorCode OH_DecodingOptions_SetCropAndScaleStrategy(OH_DecodingOptions *options,
+ int32_t cropAndScaleStrategy);
+
/**
* @brief Get index number for OH_DecodingOptions struct.
*
diff --git a/multimedia/media_foundation/native_averrors.h b/multimedia/media_foundation/native_averrors.h
index 80cf8d2924e1cdc92285c89c55fd2c43c928316e..2fedd0834a1477db09f5e5dbc278f0b071e442de 100644
--- a/multimedia/media_foundation/native_averrors.h
+++ b/multimedia/media_foundation/native_averrors.h
@@ -94,6 +94,11 @@ typedef enum OH_AVErrCode {
* @since 12
*/
AV_ERR_INPUT_DATA_ERROR = 10,
+ /**
+ * @error unsupported format.
+ * @since 16
+ */
+ AV_ERR_UNSUPPORTED_FORMAT = 11,
/**
* @error extend err start.
*/
diff --git a/multimedia/player_framework/avimage_generator.h b/multimedia/player_framework/avimage_generator.h
index 0ae5a5b285a6152dbdb32403b39a7ee6d3f86719..261202db72ec4d093649d0d67d2805d5a826e235 100644
--- a/multimedia/player_framework/avimage_generator.h
+++ b/multimedia/player_framework/avimage_generator.h
@@ -77,7 +77,9 @@ OH_AVImageGenerator* OH_AVImageGenerator_Create(void);
* @param size Indicates the size of media source.
* @return Function result code.
* {@link AV_ERR_OK} if the execution is successful.
- * {@link AV_ERR_INPUT_DATA_ERROR} if input generator is nullptr or input param is invalid.
+ * {@link AV_ERR_INVALID_VAL} if input generator is nullptr or input param is invalid.
+ * {@link AV_ERR_OPERATE_NOT_PERMIT} if operation not allowed.
+ * {@link AV_ERR_NO_MEMORY} if internal memory allocation failed.
* @since 16
*/
OH_AVErrCode OH_AVImageGenerator_SetFDSource(OH_AVImageGenerator* generator,
@@ -96,8 +98,10 @@ OH_AVErrCode OH_AVImageGenerator_SetFDSource(OH_AVImageGenerator* generator,
* @param pixelMap The fetched output image from the video source. For details, see {@link OH_PixelmapNative}.
* @return Function result code.
* {@link AV_ERR_OK} if the execution is successful.
- * {@link AV_ERR_INPUT_DATA_ERROR} if input generator is nullptr or input param is invalid.
+ * {@link AV_ERR_INVALID_VAL} if input generator is nullptr or input param is invalid.
* {@link AV_ERR_OPERATE_NOT_PERMIT} if operation not allowed.
+ * {@link AV_ERR_UNSUPPORTED_FORMAT} if format is unsupported.
+ * {@link AV_ERR_NO_MEMORY} if internal memory allocation failed.
* @since 16
*/
OH_AVErrCode OH_AVImageGenerator_FetchFrameByTime(OH_AVImageGenerator* generator,
@@ -110,8 +114,7 @@ OH_AVErrCode OH_AVImageGenerator_FetchFrameByTime(OH_AVImageGenerator* generator
* @param generator Pointer to an OH_AVImageGenerator instance.
* @return Function result code.
* {@link AV_ERR_OK} if the execution is successful.
- * {@link AV_ERR_INPUT_DATA_ERROR} if input generator is nullptr or input param is invalid.
- * {@link AV_ERR_OPERATE_NOT_PERMIT} if operation not allowed.
+ * {@link AV_ERR_INVALID_VAL} if input generator is nullptr or input param is invalid.
* @since 16
*/
OH_AVErrCode OH_AVImageGenerator_Release(OH_AVImageGenerator* generator);
diff --git a/multimedia/player_framework/avmetadata_extractor.h b/multimedia/player_framework/avmetadata_extractor.h
index b6d5bba33acc4738b440d1c0394ddbd78cd0a275..cb54f5c8949e32cc6fc0b38c70d679877c061449 100644
--- a/multimedia/player_framework/avmetadata_extractor.h
+++ b/multimedia/player_framework/avmetadata_extractor.h
@@ -79,7 +79,9 @@ OH_AVMetadataExtractor* OH_AVMetadataExtractor_Create(void);
* @param size Indicates the size of media source.
* @return Function result code.
* {@link AV_ERR_OK} if the execution is successful.
- * {@link AV_ERR_INPUT_DATA_ERROR} if input extractor is nullptr or input param is invalid.
+ * {@link AV_ERR_INVALID_VAL} if input extractor is nullptr or input param is invalid.
+ * {@link AV_ERR_OPERATE_NOT_PERMIT} if operation not allowed.
+ * {@link AV_ERR_NO_MEMORY} if internal memory allocation failed.
* @since 16
*/
OH_AVErrCode OH_AVMetadataExtractor_SetFDSource(OH_AVMetadataExtractor* extractor,
@@ -94,8 +96,10 @@ OH_AVErrCode OH_AVMetadataExtractor_SetFDSource(OH_AVMetadataExtractor* extracto
* @param avMetadata Pointer to an {@link OH_AVFormat} instance, its content contains the fetched metadata info.
* @return Function result code.
* {@link AV_ERR_OK} if the execution is successful.
- * {@link AV_ERR_INPUT_DATA_ERROR} if input extractor is nullptr or input param is invalid.
+ * {@link AV_ERR_INVALID_VAL} if input extractor is nullptr or input param is invalid.
* {@link AV_ERR_OPERATE_NOT_PERMIT} if operation not allowed.
+ * {@link AV_ERR_UNSUPPORTED_FORMAT} if format is unsupported.
+ * {@link AV_ERR_NO_MEMORY} if internal memory allocation failed.
* @since 16
*/
OH_AVErrCode OH_AVMetadataExtractor_FetchMetadata(OH_AVMetadataExtractor* extractor, OH_AVFormat* avMetadata);
@@ -109,8 +113,10 @@ OH_AVErrCode OH_AVMetadataExtractor_FetchMetadata(OH_AVMetadataExtractor* extrac
* @param pixelMap The fetched album cover from the audio source. For details, see {@link OH_PixelmapNative}.
* @return Function result code.
* {@link AV_ERR_OK} if the execution is successful.
- * {@link AV_ERR_INPUT_DATA_ERROR} if input extractor is nullptr or input param is invalid.
+ * {@link AV_ERR_INVALID_VAL} if input extractor is nullptr or input param is invalid.
* {@link AV_ERR_OPERATE_NOT_PERMIT} if operation not allowed.
+ * {@link AV_ERR_UNSUPPORTED_FORMAT} if format is unsupported.
+ * {@link AV_ERR_NO_MEMORY} if internal memory allocation failed.
* @since 16
*/
OH_AVErrCode OH_AVMetadataExtractor_FetchAlbumCover(OH_AVMetadataExtractor* extractor, OH_PixelmapNative** pixelMap);
@@ -122,8 +128,7 @@ OH_AVErrCode OH_AVMetadataExtractor_FetchAlbumCover(OH_AVMetadataExtractor* extr
* @param extractor Pointer to an OH_AVMetadataExtractor instance.
* @return Function result code.
* {@link AV_ERR_OK} if the execution is successful.
- * {@link AV_ERR_INPUT_DATA_ERROR} if input extractor is nullptr or input param is invalid.
- * {@link AV_ERR_OPERATE_NOT_PERMIT} if operation not allowed.
+ * {@link AV_ERR_INVALID_VAL} if input extractor is nullptr or input param is invalid.
* @since 16
*/
OH_AVErrCode OH_AVMetadataExtractor_Release(OH_AVMetadataExtractor* extractor);