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) {
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;
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;
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])
break;
}
- return MEDIACODEC_ERROR_INVALID_STREAM;
-
INTERNAL_ERROR:
return MEDIACODEC_ERROR_INTERNAL;
}