summaryrefslogtreecommitdiffstats
path: root/decoder/ihevcd_decode.c
diff options
context:
space:
mode:
authorNaveen Kumar Ponnusamy <naveenkumar.p@ittiam.com>2014-10-28 11:23:59 +0530
committerRachad Alao <rachad@google.com>2015-07-31 01:59:55 +0000
commit221aaccb7a9b501ce16ccc1fd7f7d44a8f73cd6e (patch)
tree72631015a9d26ab94dcb1c4a31d12eafd66a4103 /decoder/ihevcd_decode.c
parentb0ddcd25beb4a5b8a33ed322b73e006938fb0b47 (diff)
downloadandroid_external_libhevc-221aaccb7a9b501ce16ccc1fd7f7d44a8f73cd6e.tar.gz
android_external_libhevc-221aaccb7a9b501ce16ccc1fd7f7d44a8f73cd6e.tar.bz2
android_external_libhevc-221aaccb7a9b501ce16ccc1fd7f7d44a8f73cd6e.zip
Few bug fixes in loop filter
Removed few unused functions Fixed an issue in 420P output in shared mdoe Few bug fixes in handling loop filter corner cases in multi-tile multi-slice clips Renamed few elements in mv_buf_t for consistency Bug: 22860270 Change-Id: I8d179b9ad3c7ee3ad27972ee02ea2658fd2c3c25
Diffstat (limited to 'decoder/ihevcd_decode.c')
-rw-r--r--decoder/ihevcd_decode.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/decoder/ihevcd_decode.c b/decoder/ihevcd_decode.c
index 0afdd31..94de640 100644
--- a/decoder/ihevcd_decode.c
+++ b/decoder/ihevcd_decode.c
@@ -76,7 +76,7 @@
#define NUM_FRAMES_LIMIT_ENABLED 0
#if NUM_FRAMES_LIMIT_ENABLED
-#define NUM_FRAMES_LIMIT 3600
+#define NUM_FRAMES_LIMIT 10000
#else
#define NUM_FRAMES_LIMIT 0x7FFFFFFF
#endif
@@ -183,16 +183,16 @@ static void ihevcd_fill_outargs(codec_t *ps_codec,
ps_dec_op->u4_error_code = ihevcd_map_error((IHEVCD_ERROR_T)ps_codec->i4_error_code);
ps_dec_op->u4_num_bytes_consumed = ps_dec_ip->u4_num_Bytes
- ps_codec->i4_bytes_remaining;
- if(ps_codec->i4_sps_done)
- {
- ps_dec_op->u4_pic_wd = ps_codec->i4_disp_wd;
- ps_dec_op->u4_pic_ht = ps_codec->i4_disp_ht;
- }
- else if(ps_codec->i4_error_code == IHEVCD_UNSUPPORTED_DIMENSIONS)
+ if(ps_codec->i4_error_code == IHEVCD_UNSUPPORTED_DIMENSIONS)
{
ps_dec_op->u4_pic_wd = ps_codec->i4_new_max_wd;
ps_dec_op->u4_pic_ht = ps_codec->i4_new_max_ht;
}
+ else if(ps_codec->i4_sps_done)
+ {
+ ps_dec_op->u4_pic_wd = ps_codec->i4_disp_wd;
+ ps_dec_op->u4_pic_ht = ps_codec->i4_disp_ht;
+ }
else
{
ps_dec_op->u4_pic_wd = 0;
@@ -347,7 +347,11 @@ WORD32 ihevcd_decode(iv_obj_t *ps_codec_obj, void *pv_api_ip, void *pv_api_op)
ps_dec_ip = (ivd_video_decode_ip_t *)pv_api_ip;
ps_dec_op = (ivd_video_decode_op_t *)pv_api_op;
- memset(ps_dec_op, 0, sizeof(ivd_video_decode_op_t));
+ {
+ UWORD32 u4_size = ps_dec_op->u4_size;
+ memset(ps_dec_op, 0, sizeof(ivd_video_decode_op_t));
+ ps_dec_op->u4_size = u4_size; //Restore size field
+ }
if(ps_codec->i4_init_done != 1)
{
ps_dec_op->u4_error_code |= 1 << IVD_FATALERROR;
@@ -603,7 +607,7 @@ WORD32 ihevcd_decode(iv_obj_t *ps_codec_obj, void *pv_api_ip, void *pv_api_op)
continue;
}
- if(((IHEVCD_FAIL == ret) && (ps_codec->i4_error_code == IVD_RES_CHANGED)) ||
+ if((IVD_RES_CHANGED == ret) ||
(IHEVCD_UNSUPPORTED_DIMENSIONS == ret))
{
break;