Bug fix - Invalid bitrate setting 28/297028/1 accepted/tizen/unified/20230810.070138
authorJeongmo Yang <jm80.yang@samsung.com>
Mon, 7 Aug 2023 05:24:06 +0000 (14:24 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Wed, 9 Aug 2023 07:16:13 +0000 (16:16 +0900)
- The bitrate for video encoder can be changed to 0.

[Version] 0.6.33
[Issue Type] Bug fix

Change-Id: I3927f28107b159f9c1866a9f7734937ea5ae8c0d
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
packaging/capi-media-codec.spec
src/media_codec_port_gst.c

index db7b1f7..36ff021 100644 (file)
@@ -4,7 +4,7 @@
 
 Name:       capi-media-codec
 Summary:    A Media Codec library in Tizen Native API
-Version:    0.6.32
+Version:    0.6.33
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
index 6198e44..2c86a99 100644 (file)
@@ -1081,6 +1081,7 @@ static void mc_gst_port_free(mc_gst_port_t *port)
 
 gboolean _mc_update_packet_info(mc_gst_core_t *core, media_format_h format)
 {
+       gint bitrate = 0;
        gboolean is_format_change = FALSE;
 
        mc_gst_port_def_t *input_port_def = &core->ports[in_port_index]->port_def;
@@ -1088,7 +1089,6 @@ gboolean _mc_update_packet_info(mc_gst_core_t *core, media_format_h format)
        if (core->video) {
                gint width = 0;
                gint height = 0;
-               gint bitrate = 0;
                gint framerate = 0;
                gchar *sformat = NULL;
                media_format_mimetype_e mimetype = 0;
@@ -1108,13 +1108,16 @@ gboolean _mc_update_packet_info(mc_gst_core_t *core, media_format_h format)
                }
 
                if (core->encoder) {
+                       bitrate *= 1000;
                        sformat = __mc_get_gst_input_format(mimetype, core->is_hw);
-                       is_format_change |= ((input_port_def->info.video.bitrate != bitrate * 1000) && (bitrate != 0));
+                       is_format_change |= ((input_port_def->info.video.bitrate != bitrate) && (bitrate != 0));
                        is_format_change |= g_strcmp0(input_port_def->info.video.format, sformat);
                        if (is_format_change) {
-                               LOGD("Bitrate changed : %d -> %d", input_port_def->info.video.bitrate, bitrate);
+                               if (bitrate != 0) {
+                                       LOGD("Bitrate changed : %d -> %d", input_port_def->info.video.bitrate, bitrate);
+                                       input_port_def->info.video.bitrate = bitrate;
+                               }
                                LOGD("Format changed : %s -> %s", input_port_def->info.video.format, sformat);
-                               input_port_def->info.video.bitrate = bitrate * 1000;
                                input_port_def->info.video.format = g_strdup(sformat);
                        }
                }
@@ -1122,7 +1125,6 @@ gboolean _mc_update_packet_info(mc_gst_core_t *core, media_format_h format)
                gint channel;
                gint samplerate;
                gint bit;
-               gint bitrate;
 
                media_format_get_audio_info(format, NULL, &channel, &samplerate, &bit, &bitrate);
 
@@ -1140,10 +1142,11 @@ gboolean _mc_update_packet_info(mc_gst_core_t *core, media_format_h format)
                }
 
                if (core->encoder) {
-                       is_format_change |= ((input_port_def->info.audio.bitrate != bitrate * 1000) && (bitrate != 0));
+                       bitrate *= 1000;
+                       is_format_change |= ((input_port_def->info.audio.bitrate != bitrate) && (bitrate != 0));
                        if (is_format_change) {
                                LOGD("Bitrate changed : %d -> %d", input_port_def->info.audio.bitrate, bitrate);
-                               input_port_def->info.audio.bitrate = bitrate * 1000;
+                               input_port_def->info.audio.bitrate = bitrate;
                        }
                }
        }