Fix format unref and media packet test 51/290951/1
authorKwanghoon Son <k.son@samsung.com>
Wed, 5 Apr 2023 10:44:15 +0000 (19:44 +0900)
committerKwanghoon Son <k.son@samsung.com>
Wed, 5 Apr 2023 10:44:42 +0000 (19:44 +0900)
rebase from commit (4ac464bef3dc8374be8ec456b7a01cdfbf2a93fb)
Change-Id: Idb63ad058698b90355aedba3327e783fb68073f6
Signed-off-by: Kwanghoon Son <k.son@samsung.com>
mv_common/src/mv_common_c.cpp
test/CMakeLists.txt
test/testsuites/common/test_pkt.cpp [new file with mode: 0644]

index c9edcd28db0dcf790555627ef3e384d8675c8fe0..8ba24aeae0814618e8ccca520000d5a16edcd903 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 7b981a3045a9687d5ca6ac127f4e91841e6fd259..080cb0540a32ffa2820f891bf11e0dc18a490e99 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/machine_learning/inference/test_inference_helper.cpp
     testsuites/machine_learning/inference/test_image_classification.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