Fix format unref and media packet test 08/290308/2
authorKwanghoon Son <k.son@samsung.com>
Wed, 22 Mar 2023 05:01:59 +0000 (14:01 +0900)
committerKwanghoon Son <k.son@samsung.com>
Fri, 24 Mar 2023 00:05:35 +0000 (09:05 +0900)
[Issue type] fix
[Version] 0.27.9

Change-Id: Ifa13a2d3745d554c795f5659bc58a30c695917bf
Signed-off-by: Kwanghoon Son <k.son@samsung.com>
mv_common/src/mv_common_c.cpp
packaging/capi-media-vision.spec
test/CMakeLists.txt
test/testsuites/common/test_pkt.cpp [new file with mode: 0644]

index 67ac10e9eb542522889da29d393cca66ef34379b..ef359a07737af15fde57412207b6c8f6576a645b 100644 (file)
@@ -109,9 +109,17 @@ int mv_source_fill_by_media_packet_c(mv_source_h source, media_packet_h media_pa
 
        ret = media_format_get_video_info(format, &mimetype, &image_width, &image_height, NULL, NULL);
        if (ret != MEDIA_PACKET_ERROR_NONE) {
+               if (media_format_unref(format) != MEDIA_PACKET_ERROR_NONE)
+                       LOGE("media_format_unref() failed, mv_source_h fill skipped");
+
                LOGE("media_format_get_video_info() failed, mv_source_h fill skipped");
                return MEDIA_VISION_ERROR_INVALID_PARAMETER;
        }
+       ret = media_format_unref(format);
+       if (ret != MEDIA_PACKET_ERROR_NONE) {
+               LOGE("media_format_unref() failed, mv_source_h fill skipped");
+               return MEDIA_VISION_ERROR_INVALID_PARAMETER;
+       }
 
        if (mimetype > MEDIA_FORMAT_H261 && mimetype <= MEDIA_FORMAT_MPEG4_ASP) {
                LOGE("Media format mimetype is not the raw video, mv_source_h fill skipped");
index 3826eaebd2d6df9f571b6893708ea9b8e74ce3a7..9ce2e31b312fd73bb45c5c98a31fe11eb7226d29 100644 (file)
@@ -1,6 +1,6 @@
 Name:        capi-media-vision
 Summary:     Media Vision library for Tizen Native API
-Version:     0.27.8
+Version:     0.27.9
 Release:     0
 Group:       Multimedia/Framework
 License:     Apache-2.0 and BSD-3-Clause
index c672b5ae3531021f6d9c3dd7b23b82f80c12bcd7..074744a9c8f2d591c8683bdfb8919f7ef0651174 100644 (file)
@@ -15,6 +15,7 @@ if(MV_3D_POINTCLOUD_IS_AVAILABLE)
 endif()
 
 set(SRC_FILES
+    testsuites/common/test_pkt.cpp
     testsuites/barcode/test_barcode.cpp
     testsuites/barcode/test_designqr.cpp
     testsuites/machine_learning/inference/test_inference_helper.cpp
diff --git a/test/testsuites/common/test_pkt.cpp b/test/testsuites/common/test_pkt.cpp
new file mode 100644 (file)
index 0000000..7a4a231
--- /dev/null
@@ -0,0 +1,46 @@
+#include <gtest/gtest.h>
+#include <mv_common.h>
+
+TEST(MediaPKT, Format)
+{
+       media_format_h media_fmt;
+       ASSERT_EQ(media_format_create(&media_fmt), MEDIA_FORMAT_ERROR_NONE);
+       ASSERT_EQ(media_format_unref(media_fmt), MEDIA_FORMAT_ERROR_NONE);
+}
+
+TEST(MediaPKT, Packet)
+{
+       media_format_h media_fmt;
+       media_packet_h media_pkt;
+       ASSERT_EQ(media_format_create(&media_fmt), MEDIA_FORMAT_ERROR_NONE);
+
+       media_format_set_video_mime(media_fmt, MEDIA_FORMAT_H264_HP);
+       media_format_set_video_width(media_fmt, 320);
+       media_format_set_video_height(media_fmt, 240);
+       media_format_set_video_avg_bps(media_fmt, 3000000);
+       media_format_set_video_max_bps(media_fmt, 15000000);
+
+       ASSERT_EQ(media_packet_new(media_fmt, NULL, NULL, &media_pkt), MEDIA_PACKET_ERROR_NONE);
+       ASSERT_EQ(media_packet_unref(media_pkt), MEDIA_PACKET_ERROR_NONE);
+       ASSERT_EQ(media_format_unref(media_fmt), MEDIA_FORMAT_ERROR_NONE);
+}
+
+TEST(MediaPKT, PacketToSource)
+{
+       media_format_h media_fmt;
+       media_packet_h media_pkt;
+       ASSERT_EQ(media_format_create(&media_fmt), MEDIA_FORMAT_ERROR_NONE);
+
+       media_format_set_video_mime(media_fmt, MEDIA_FORMAT_I420);
+       media_format_set_video_width(media_fmt, 320);
+       media_format_set_video_height(media_fmt, 240);
+
+       ASSERT_EQ(media_packet_new(media_fmt, NULL, NULL, &media_pkt), MEDIA_PACKET_ERROR_NONE);
+
+       mv_source_h mv_source;
+       ASSERT_EQ(mv_create_source(&mv_source), MEDIA_VISION_ERROR_NONE);
+       ASSERT_EQ(mv_source_fill_by_media_packet(mv_source, media_pkt), MEDIA_VISION_ERROR_INVALID_PARAMETER);
+       ASSERT_EQ(mv_destroy_source(mv_source), MEDIA_VISION_ERROR_NONE);
+       ASSERT_EQ(media_packet_unref(media_pkt), MEDIA_PACKET_ERROR_NONE);
+       ASSERT_EQ(media_format_unref(media_fmt), MEDIA_FORMAT_ERROR_NONE);
+}
\ No newline at end of file