summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarish Mahendrakar <harish.mahendrakar@ittiam.com>2016-07-25 11:25:25 +0530
committerHangyu Kuang <hkuang@google.com>2016-07-27 11:39:29 -0700
commit212b4c4179975c1a263d5ee4723223181a8b46ad (patch)
treee2567882c2e556136dece88954028766b2832e0f
parent945d23d1eeb05f54bfaa6777fe44237341adb915 (diff)
downloadlibmpeg2-212b4c4179975c1a263d5ee4723223181a8b46ad.tar.gz
Bug: 29640760 Change-Id: I7cf99d432035576471e188b2da5328f91b7a9a81
-rw-r--r--decoder/impeg2d_api_main.c29
-rw-r--r--decoder/impeg2d_dec_hdr.c4
-rw-r--r--decoder/impeg2d_structs.h2
3 files changed, 26 insertions, 9 deletions
diff --git a/decoder/impeg2d_api_main.c b/decoder/impeg2d_api_main.c
index 5a6b36b..a792f06 100644
--- a/decoder/impeg2d_api_main.c
+++ b/decoder/impeg2d_api_main.c
@@ -317,21 +317,32 @@ IV_API_CALL_STATUS_T impeg2d_api_get_seq_info(iv_obj_t *ps_dechdl,
ps_op->u1_frame_rate_code = ps_codec->u2_frame_rate_code;
ps_op->u1_frame_rate_extension_n = ps_codec->u2_frame_rate_extension_n;
ps_op->u1_frame_rate_extension_d = ps_codec->u2_frame_rate_extension_d;
- ps_op->u1_video_format = ps_codec->u1_video_format;
- ps_op->u1_colour_primaries = ps_codec->u1_colour_primaries;
- ps_op->u1_transfer_characteristics = ps_codec->u1_transfer_characteristics;
- ps_op->u1_matrix_coefficients = ps_codec->u1_matrix_coefficients;
- ps_op->u2_display_horizontal_size = ps_codec->u2_display_horizontal_size;
- ps_op->u2_display_vertical_size = ps_codec->u2_display_vertical_size;
+ if(ps_codec->u1_seq_disp_extn_present == 1)
+ {
+ ps_op->u1_video_format = ps_codec->u1_video_format;
+ ps_op->u1_colour_primaries = ps_codec->u1_colour_primaries;
+ ps_op->u1_transfer_characteristics = ps_codec->u1_transfer_characteristics;
+ ps_op->u1_matrix_coefficients = ps_codec->u1_matrix_coefficients;
+ ps_op->u2_display_horizontal_size = ps_codec->u2_display_horizontal_size;
+ ps_op->u2_display_vertical_size = ps_codec->u2_display_vertical_size;
+ }
+ else
+ {
+ ps_op->u1_video_format = 5;
+ ps_op->u1_colour_primaries = 2;
+ ps_op->u1_transfer_characteristics = 2;
+ ps_op->u1_matrix_coefficients = 2;
+ ps_op->u2_display_horizontal_size = ps_codec->u2_horizontal_size;
+ ps_op->u2_display_vertical_size = ps_codec->u2_vertical_size;
+ }
ps_op->u4_error_code = IV_SUCCESS;
+ return IV_SUCCESS;
}
else
{
ps_op->u4_error_code = IV_FAIL;
+ return IV_FAIL;
}
-
-
- return IV_SUCCESS;
}
/**
diff --git a/decoder/impeg2d_dec_hdr.c b/decoder/impeg2d_dec_hdr.c
index b913daf..13e9ba1 100644
--- a/decoder/impeg2d_dec_hdr.c
+++ b/decoder/impeg2d_dec_hdr.c
@@ -378,6 +378,9 @@ void impeg2d_dec_seq_disp_ext(dec_state_t *ps_dec)
impeg2d_bit_stream_get(ps_stream, 4);
ps_dec->u1_video_format = impeg2d_bit_stream_get(ps_stream, 3);
ps_dec->u1_colour_description = impeg2d_bit_stream_get(ps_stream, 1);
+ ps_dec->u1_colour_primaries = 2;
+ ps_dec->u1_transfer_characteristics = 2;
+ ps_dec->u1_matrix_coefficients = 2;
if(ps_dec->u1_colour_description)
{
ps_dec->u1_colour_primaries = impeg2d_bit_stream_get(ps_stream, 8);
@@ -390,6 +393,7 @@ void impeg2d_dec_seq_disp_ext(dec_state_t *ps_dec)
GET_MARKER_BIT(ps_dec,ps_stream);
ps_dec->u2_display_vertical_size = impeg2d_bit_stream_get(ps_stream,14);
+ ps_dec->u1_seq_disp_extn_present = 1;
impeg2d_next_start_code(ps_dec);
}
diff --git a/decoder/impeg2d_structs.h b/decoder/impeg2d_structs.h
index b8fc3b5..03cd54c 100644
--- a/decoder/impeg2d_structs.h
+++ b/decoder/impeg2d_structs.h
@@ -380,6 +380,8 @@ typedef struct dec_state_struct_t
/** Buffer used after deinterlacer for format conversion */
UWORD8 *pu1_deint_fmt_buf;
+ /** Flag to indicate if Seq Display Extn is present */
+ UWORD8 u1_seq_disp_extn_present;
}dec_state_t;