From: Sejun Park Date: Mon, 28 Aug 2017 02:34:44 +0000 (+0900) Subject: Sync with tizen branch X-Git-Tag: submit/tizen_3.0/20170828.023728^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f5f32076d1b05ad7e6c256e39e09ed068a0f3565;p=platform%2Fcore%2Fapi%2Fmediacodec.git Sync with tizen branch Change-Id: I7b0667ba46a9a6796c9d5309778b5930bbb9de38 --- diff --git a/include/media_codec_port_gst.h b/include/media_codec_port_gst.h old mode 100644 new mode 100755 index 3cf9120..626f9ad --- a/include/media_codec_port_gst.h +++ b/include/media_codec_port_gst.h @@ -55,7 +55,7 @@ extern "C" { #define AAC_CODECDATA_SIZE 16 #define WMA_CODECDATA_SIZE 64 #define VORBIS_CODECDATA_SIZE 4096 -#define MAXINUM_QNUM 15 +#define MAXINUM_QNUM 20 #define THRESHOLD_QNUM 5 /* gst port layer */ diff --git a/src/media_codec_port_gst.c b/src/media_codec_port_gst.c old mode 100644 new mode 100755 index 7ef12b7..44f1338 --- a/src/media_codec_port_gst.c +++ b/src/media_codec_port_gst.c @@ -2191,6 +2191,7 @@ void __mc_gst_buffer_add(GstElement *element, GstBuffer *buffer, GstPad *pad, gp if (mcbuffer->packet) { media_packet_set_pts(mcbuffer->packet, GST_BUFFER_TIMESTAMP(buffer)); + media_packet_set_dts(mcbuffer->packet, GST_BUFFER_DTS(buffer)); media_packet_set_duration(mcbuffer->packet, GST_BUFFER_DURATION(buffer)); if (core->need_codec_data) { @@ -2297,6 +2298,7 @@ GstMCBuffer *_mc_gst_media_packet_to_gstbuffer(mc_gst_core_t *core, media_packet gint ret = MEDIA_PACKET_ERROR_NONE; uint64_t buf_size = 0; uint64_t pts = 0; + uint64_t dts = 0; uint64_t dur = 0; void *buf_data = NULL; GstMCBuffer *mcbuffer = NULL; @@ -2333,6 +2335,10 @@ GstMCBuffer *_mc_gst_media_packet_to_gstbuffer(mc_gst_core_t *core, media_packet return NULL; } + /* dts */ + media_packet_get_pts(packet, &dts); + GST_BUFFER_DTS(mcbuffer->buffer) = dts; + /* pts */ media_packet_get_pts(packet, &pts); GST_BUFFER_PTS(mcbuffer->buffer) = pts; @@ -2415,7 +2421,10 @@ ERROR: void _mc_gst_handle_input_buffer_used(mc_gst_core_t *core, media_packet_h packet) { - g_atomic_int_dec_and_test(&core->etb_count); + if (core) { + g_atomic_int_dec_and_test(&core->etb_count); + LOGD("@v(%d)e(%d) input port used(%d)----- ", core->video, core->encoder, core->etb_count); + } if (core && core->user_cb[_MEDIACODEC_EVENT_TYPE_EMPTYBUFFER]) { ((mc_empty_buffer_cb)core->user_cb[_MEDIACODEC_EVENT_TYPE_EMPTYBUFFER]) @@ -2857,8 +2866,6 @@ static gint __gst_transform_gsterror(mc_gst_core_t *core, GstMessage *message, G break; } - return MEDIACODEC_ERROR_INVALID_STREAM; - INTERNAL_ERROR: return MEDIACODEC_ERROR_INTERNAL; }