aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorprasanth kamuju <prasanth.kamuju@linaro.org>2015-01-22 17:44:08 +0530
committerprasanth kamuju <prasanth.kamuju@linaro.org>2015-01-22 17:45:07 +0530
commitf9902212903f7b801a5f7a2ac73b641078f46d60 (patch)
treee133b0615e2c0d5b203e6b3361f6bf29fdd75e0a
parent64bcac048b532413760de296296a1b4abae59e32 (diff)
Increase the actual buffer count
The actual buffer count should be less than max/2 for smooth playback of 1080p videos,if it is less set the actual buffer count = max/2.
-rw-r--r--src/gstqcvideodec.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/gstqcvideodec.c b/src/gstqcvideodec.c
index 430d76e..d1a04a1 100644
--- a/src/gstqcvideodec.c
+++ b/src/gstqcvideodec.c
@@ -1150,7 +1150,40 @@ int allocate_reconfig_buff(Gstqcvideodec *dec)
decode_context->output_buffer.alignment,\
decode_context->output_buffer.buf_poolid,\
decode_context->output_buffer.meta_buffer_size);
+ if(decode_context->output_buffer.actualcount < decode_context->output_buffer.maxcount/2)
+ {
+
+ decode_context->output_buffer.actualcount = (decode_context->output_buffer.maxcount/2);//decode_context->output_buffer.actualcount + decode_context->output_buffer.mincount;
+ decode_context->output_buffer.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
+ ioctl_msg.in = &decode_context->output_buffer;
+ ioctl_msg.out = NULL;
+ if (ioctl (dec->video_driver_fd,VDEC_IOCTL_SET_BUFFER_REQ,
+ (void*)&ioctl_msg) < 0)
+ {
+ GST_ERROR("\n Set Buffer Requirements Failed");
+ return FALSE;
+ }
+ decode_context->output_buffer.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
+ ioctl_msg.in = NULL;
+ ioctl_msg.out = &decode_context->output_buffer;
+
+ if (ioctl (decode_context->video_driver_fd,VDEC_IOCTL_GET_BUFFER_REQ,
+ (void*)&ioctl_msg) < 0)
+ {
+ GST_ERROR("\n 3rd time Requesting for output buffer requirements failed");
+ return -1;
+ }
+ GST_DEBUG("\n 3rd time output_buffer Size=%d min count =%d actual count = %d, maxcount = %d,alignment = %d,buf_poolid= %d,meta_buffer_size=%d\n\n",\
+ decode_context->output_buffer.buffer_size,\
+ decode_context->output_buffer.mincount,\
+ decode_context->output_buffer.actualcount,\
+ decode_context->output_buffer.maxcount,\
+ decode_context->output_buffer.alignment,\
+ decode_context->output_buffer.buf_poolid,\
+ decode_context->output_buffer.meta_buffer_size);
+
+ }
if(decode_context->decoder_format == VDEC_CODECTYPE_H264)
vdec_alloc_h264_mv(decode_context);