Fixed decode conformance stream LTRPSPS_A_Qualcomm_1.bit

1. change ai1_lt_ref_pic_poc_lsb_sps from WORD8 to UWORD16 because i1_log2_max_pic_order_cnt_lsb can be up to 16 by the spec
2. fixed bug using CLZ to compute Ceil( Log2( num_long_term_ref_pics_sps ) ) and check if i1_num_long_term_ref_pics_sps is greater than 1 to avoid BITS_PARSE(0)

Change-Id: I298b74d053b17d133b9dcba0e924136ec274ea3c
diff --git a/common/ihevc_structs.h b/common/ihevc_structs.h
index 93d2ad4..0205582 100644
--- a/common/ihevc_structs.h
+++ b/common/ihevc_structs.h
@@ -2406,7 +2406,7 @@
     /**
      *  lt_ref_pic_poc_lsb_sps[]
      */
-    WORD8 ai1_lt_ref_pic_poc_lsb_sps[MAX_LTREF_PICS_SPS];
+    UWORD16 au2_lt_ref_pic_poc_lsb_sps[MAX_LTREF_PICS_SPS];
 
     /**
      *  used_by_curr_pic_lt_sps_flag[]
diff --git a/decoder/ihevcd_parse_headers.c b/decoder/ihevcd_parse_headers.c
index d15e273..ea82a80 100644
--- a/decoder/ihevcd_parse_headers.c
+++ b/decoder/ihevcd_parse_headers.c
@@ -1518,7 +1518,7 @@
         for(i = 0; i < ps_sps->i1_num_long_term_ref_pics_sps; i++)
         {
             BITS_PARSE("lt_ref_pic_poc_lsb_sps[ i ]", value, ps_bitstrm, ps_sps->i1_log2_max_pic_order_cnt_lsb);
-            ps_sps->ai1_lt_ref_pic_poc_lsb_sps[i] = value;
+            ps_sps->au2_lt_ref_pic_poc_lsb_sps[i] = value;
 
             BITS_PARSE("used_by_curr_pic_lt_sps_flag[ i ]", value, ps_bitstrm, 1);
             ps_sps->ai1_used_by_curr_pic_lt_sps_flag[i] = value;
diff --git a/decoder/ihevcd_parse_slice_header.c b/decoder/ihevcd_parse_slice_header.c
index e9c3073..b0ed14d 100644
--- a/decoder/ihevcd_parse_slice_header.c
+++ b/decoder/ihevcd_parse_slice_header.c
@@ -468,9 +468,16 @@
                     if(i < ps_slice_hdr->i1_num_long_term_sps)
                     {
                         /* Use CLZ to compute Ceil( Log2( num_long_term_ref_pics_sps ) ) */
-                        WORD32 num_bits = 32 - CLZ(ps_sps->i1_num_long_term_ref_pics_sps);
-                        BITS_PARSE("lt_idx_sps[ i ]", value, ps_bitstrm, num_bits);
-                        ps_slice_hdr->ai4_poc_lsb_lt[i] = ps_sps->ai1_lt_ref_pic_poc_lsb_sps[value];
+                        if (ps_sps->i1_num_long_term_ref_pics_sps > 1)
+                        {
+                            WORD32 num_bits = 32 - CLZ(ps_sps->i1_num_long_term_ref_pics_sps - 1);
+                            BITS_PARSE("lt_idx_sps[ i ]", value, ps_bitstrm, num_bits);
+                        }
+                        else
+                        {
+                            value = 0;
+                        }
+                        ps_slice_hdr->ai4_poc_lsb_lt[i] = ps_sps->au2_lt_ref_pic_poc_lsb_sps[value];
                         ps_slice_hdr->ai1_used_by_curr_pic_lt_flag[i] = ps_sps->ai1_used_by_curr_pic_lt_sps_flag[value];
 
                     }