mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
msm: vidc: Modify the MPEG-2 aspect ratio calculation
MPEG-2 display aspect ratio calculation was done similar to MPEG-4 standard. Correct it as per the MPEG-2 standard and video core interface specification. Change-Id: I1aa98ca238c7b38e35c78905b29457cfa59edd45 Signed-off-by: Shobhit Pandey <cshopan@codeaurora.org> (cherry picked from commit ce5f973881c11491c3fa35ceb8c945a6c8ee2b8f) Signed-off-by: Manish Kumar <manishku@codeaurora.org>
This commit is contained in:
parent
1eae5cfc0b
commit
2e298ef9e6
1 changed files with 36 additions and 13 deletions
|
@ -975,20 +975,12 @@ void vidc_sm_get_aspect_ratio_info(struct ddl_buf_addr *shared_mem,
|
||||||
(codec == VCD_CODEC_DIVX_4) ||
|
(codec == VCD_CODEC_DIVX_4) ||
|
||||||
(codec == VCD_CODEC_DIVX_5) ||
|
(codec == VCD_CODEC_DIVX_5) ||
|
||||||
(codec == VCD_CODEC_DIVX_6) ||
|
(codec == VCD_CODEC_DIVX_6) ||
|
||||||
(codec == VCD_CODEC_XVID) ||
|
(codec == VCD_CODEC_XVID)) {
|
||||||
(codec == VCD_CODEC_MPEG2)) {
|
|
||||||
|
|
||||||
if (codec == VCD_CODEC_MPEG2) {
|
|
||||||
aspect_ratio_info->aspect_ratio =
|
|
||||||
VIDC_GETFIELD(aspect_ratio,
|
|
||||||
VIDC_SM_MPEG2_ASPECT_RATIO_INFO_BMSK,
|
|
||||||
VIDC_SM_MPEG2_ASPECT_RATIO_INFO_SHFT);
|
|
||||||
} else {
|
|
||||||
aspect_ratio_info->aspect_ratio =
|
aspect_ratio_info->aspect_ratio =
|
||||||
VIDC_GETFIELD(aspect_ratio,
|
VIDC_GETFIELD(aspect_ratio,
|
||||||
VIDC_SM_MPEG4_ASPECT_RATIO_INFO_BMSK,
|
VIDC_SM_MPEG4_ASPECT_RATIO_INFO_BMSK,
|
||||||
VIDC_SM_MPEG4_ASPECT_RATIO_INFO_SHFT);
|
VIDC_SM_MPEG4_ASPECT_RATIO_INFO_SHFT);
|
||||||
}
|
|
||||||
|
|
||||||
switch (aspect_ratio_info->aspect_ratio) {
|
switch (aspect_ratio_info->aspect_ratio) {
|
||||||
case 1:
|
case 1:
|
||||||
|
@ -1029,9 +1021,40 @@ void vidc_sm_get_aspect_ratio_info(struct ddl_buf_addr *shared_mem,
|
||||||
aspect_ratio_info->par_height = 1;
|
aspect_ratio_info->par_height = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
} else if (codec == VCD_CODEC_MPEG2) {
|
||||||
|
|
||||||
|
aspect_ratio_info->aspect_ratio =
|
||||||
|
VIDC_GETFIELD(aspect_ratio,
|
||||||
|
VIDC_SM_MPEG2_ASPECT_RATIO_INFO_BMSK,
|
||||||
|
VIDC_SM_MPEG2_ASPECT_RATIO_INFO_SHFT);
|
||||||
|
|
||||||
|
switch (aspect_ratio_info->aspect_ratio) {
|
||||||
|
case 1:
|
||||||
|
aspect_ratio_info->par_width = 1;
|
||||||
|
aspect_ratio_info->par_height = 1;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
aspect_ratio_info->par_width = 4;
|
||||||
|
aspect_ratio_info->par_height = 3;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
aspect_ratio_info->par_width = 16;
|
||||||
|
aspect_ratio_info->par_height = 9;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
aspect_ratio_info->par_width = 221;
|
||||||
|
aspect_ratio_info->par_height = 100;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
DDL_MSG_LOW("Incorrect Aspect Ratio.");
|
||||||
|
aspect_ratio_info->par_width = 1;
|
||||||
|
aspect_ratio_info->par_height = 1;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void vidc_sm_set_encoder_slice_batch_int_ctrl(struct ddl_buf_addr *shared_mem,
|
void vidc_sm_set_encoder_slice_batch_int_ctrl(struct ddl_buf_addr *shared_mem,
|
||||||
u32 slice_batch_int_enable)
|
u32 slice_batch_int_enable)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue