diff options
author | SeungBeom Kim <sbcrux.kim@samsung.com> | 2010-09-21 15:36:08 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2010-09-27 10:57:00 -0700 |
commit | 4446949fada172a194be1f785e4bcc5dde1149d1 (patch) | |
tree | 4cef7d429b0b2d3d568ec67932527be9c8aaa997 /sec_mm/sec_omx/sec_codecs | |
parent | 550332aee52a0afaa5b26bdf7963c600ae71106c (diff) | |
download | device_samsung_crespo-4446949fada172a194be1f785e4bcc5dde1149d1.zip device_samsung_crespo-4446949fada172a194be1f785e4bcc5dde1149d1.tar.gz device_samsung_crespo-4446949fada172a194be1f785e4bcc5dde1149d1.tar.bz2 |
S5PC11X: OMX: Change TimeStamp processing routine for Stagefright Seeking
Change-Id: I6a75b7a70013794e8c77bf43dd0ca288e9566235
Signed-off-by: SeungBeom Kim <sbcrux.kim@samsung.com>
Diffstat (limited to 'sec_mm/sec_omx/sec_codecs')
3 files changed, 35 insertions, 0 deletions
diff --git a/sec_mm/sec_omx/sec_codecs/video/mfc_c110/dec/src/SsbSipMfcDecAPI.c b/sec_mm/sec_omx/sec_codecs/video/mfc_c110/dec/src/SsbSipMfcDecAPI.c index abcc020..4293747 100644 --- a/sec_mm/sec_omx/sec_codecs/video/mfc_c110/dec/src/SsbSipMfcDecAPI.c +++ b/sec_mm/sec_omx/sec_codecs/video/mfc_c110/dec/src/SsbSipMfcDecAPI.c @@ -178,6 +178,12 @@ SSBSIP_MFC_ERROR_CODE SsbSipMfcDecInit(void *openHandle, SSBSIP_MFC_CODEC_TYPE c pCTX->decOutInfo.buf_width = DecArg.args.dec_init.out_buf_width; pCTX->decOutInfo.buf_height = DecArg.args.dec_init.out_buf_height; + /* by RainAde : crop information */ + pCTX->decOutInfo.crop_top_offset = DecArg.args.dec_init.out_crop_top_offset; + pCTX->decOutInfo.crop_bottom_offset = DecArg.args.dec_init.out_crop_bottom_offset; + pCTX->decOutInfo.crop_left_offset = DecArg.args.dec_init.out_crop_left_offset; + pCTX->decOutInfo.crop_right_offset = DecArg.args.dec_init.out_crop_right_offset; + pCTX->virFrmBuf.luma = DecArg.args.dec_init.out_u_addr.luma; pCTX->virFrmBuf.chroma = DecArg.args.dec_init.out_u_addr.chroma; @@ -358,6 +364,12 @@ SSBSIP_MFC_DEC_OUTBUF_STATUS SsbSipMfcDecGetOutBuf(void *openHandle, SSBSIP_MFC_ output_info->buf_width = pCTX->decOutInfo.buf_width; output_info->buf_height= pCTX->decOutInfo.buf_height; + /* by RainAde : for crop information */ + output_info->crop_top_offset = pCTX->decOutInfo.crop_top_offset; + output_info->crop_bottom_offset= pCTX->decOutInfo.crop_bottom_offset; + output_info->crop_left_offset = pCTX->decOutInfo.crop_left_offset; + output_info->crop_right_offset= pCTX->decOutInfo.crop_right_offset; + if (pCTX->displayStatus == 0) return MFC_GETOUTBUF_DISPLAY_END; else if (pCTX->displayStatus == 1) @@ -432,6 +444,7 @@ SSBSIP_MFC_ERROR_CODE SsbSipMfcDecGetConfig(void *openHandle, SSBSIP_MFC_DEC_CON mfc_common_args DecArg; SSBSIP_MFC_IMG_RESOLUTION *img_resolution; + SSBSIP_MFC_CROP_INFORMATION *crop_information; MFC_CRC_DATA *crc_data; if (openHandle == NULL) { @@ -456,6 +469,15 @@ SSBSIP_MFC_ERROR_CODE SsbSipMfcDecGetConfig(void *openHandle, SSBSIP_MFC_DEC_CON img_resolution->buf_height = pCTX->decOutInfo.buf_height; break; + /* Added by RainAde */ + case MFC_DEC_GETCONF_CROP_INFO: + crop_information = (SSBSIP_MFC_CROP_INFORMATION*)value; + crop_information->crop_top_offset = pCTX->decOutInfo.crop_top_offset; + crop_information->crop_bottom_offset= pCTX->decOutInfo.crop_bottom_offset; + crop_information->crop_left_offset = pCTX->decOutInfo.crop_left_offset; + crop_information->crop_right_offset= pCTX->decOutInfo.crop_right_offset; + break; + case MFC_DEC_GETCONF_CRC_DATA: crc_data = (MFC_CRC_DATA *)value; diff --git a/sec_mm/sec_omx/sec_codecs/video/mfc_c110/include/SsbSipMfcApi.h b/sec_mm/sec_omx/sec_codecs/video/mfc_c110/include/SsbSipMfcApi.h index f8aaddc..1d2c0e8 100644 --- a/sec_mm/sec_omx/sec_codecs/video/mfc_c110/include/SsbSipMfcApi.h +++ b/sec_mm/sec_omx/sec_codecs/video/mfc_c110/include/SsbSipMfcApi.h @@ -72,6 +72,7 @@ typedef enum { MFC_DEC_SETCONF_FRAME_TAG, MFC_DEC_GETCONF_CRC_DATA, MFC_DEC_GETCONF_BUF_WIDTH_HEIGHT, + MFC_DEC_GETCONF_CROP_INFO, MFC_DEC_GETCONF_FRAME_TAG } SSBSIP_MFC_DEC_CONF; @@ -272,6 +273,13 @@ typedef struct { int buf_height; } SSBSIP_MFC_IMG_RESOLUTION; +typedef struct { + int crop_top_offset; + int crop_bottom_offset; + int crop_left_offset; + int crop_right_offset; +} SSBSIP_MFC_CROP_INFORMATION; + #ifdef __cplusplus extern "C" { #endif diff --git a/sec_mm/sec_omx/sec_codecs/video/mfc_c110/include/mfc_interface.h b/sec_mm/sec_omx/sec_codecs/video/mfc_c110/include/mfc_interface.h index ba7f537..e7e23c3 100644 --- a/sec_mm/sec_omx/sec_codecs/video/mfc_c110/include/mfc_interface.h +++ b/sec_mm/sec_omx/sec_codecs/video/mfc_c110/include/mfc_interface.h @@ -211,6 +211,11 @@ typedef struct { int out_buf_height; /* [OUT] height of YUV420 frame */ int out_dpb_cnt; /* [OUT] the number of buffers which is nessary during decoding */ + int out_crop_top_offset; /* [OUT] crop information, top offset */ + int out_crop_bottom_offset; /* [OUT] crop information, bottom offset */ + int out_crop_left_offset; /* [OUT] crop information, left offset */ + int out_crop_right_offset; /* [OUT] crop information, right offset */ + mfc_frame_buf_arg_t in_frm_buf; /* [IN] the address of dpb FRAME_BUF */ mfc_frame_buf_arg_t in_frm_size; /* [IN] size of dpb FRAME_BUF */ unsigned int in_mapped_addr; |