213 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			213 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| #ifndef QDSP5VIDENCCMDI_H
 | |
| #define QDSP5VIDENCCMDI_H
 | |
| 
 | |
| /*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*
 | |
| 
 | |
|     V I D E O  E N C O D E R  I N T E R N A L  C O M M A N D S
 | |
| 
 | |
| GENERAL DESCRIPTION
 | |
|   This file contains defintions of format blocks of commands
 | |
|   that are accepted by VIDENC Task
 | |
| 
 | |
| REFERENCES
 | |
|   None
 | |
| 
 | |
| EXTERNALIZED FUNCTIONS
 | |
|   None
 | |
| 
 | |
| Copyright(c) 2008 by QUALCOMM, Incorporated.
 | |
| *====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*/
 | |
| /*===========================================================================
 | |
| 
 | |
| 			EDIT HISTORY FOR FILE
 | |
| 
 | |
| This section contains comments describing changes made to this file.
 | |
| Notice that changes are listed in reverse chronological order.
 | |
| 
 | |
| Revision History:
 | |
| 
 | |
| when       who     what, where, why
 | |
| --------   ---     ----------------------------------------------------------
 | |
| 09/25/08   umeshp      initial version
 | |
| ===========================================================================*/
 | |
| 
 | |
|   #define VIDENC_CMD_CFG           0x0000
 | |
|   #define VIDENC_CMD_ACTIVE        0x0001
 | |
|   #define VIDENC_CMD_IDLE          0x0002
 | |
|   #define VIDENC_CMD_FRAME_START   0x0003
 | |
|   #define VIDENC_CMD_STATUS_QUERY  0x0004
 | |
|   #define VIDENC_CMD_RC_CFG        0x0005
 | |
|   #define VIDENC_CMD_DIS_CFG       0x0006
 | |
|   #define VIDENC_CMD_DIS           0x0007
 | |
|   #define VIDENC_CMD_INTRA_REFRESH 0x0008
 | |
|   #define VIDENC_CMD_DIGITAL_ZOOM  0x0009
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Command to pass the frame message information to VIDENC
 | |
|  */
 | |
| 
 | |
| 
 | |
| #define VIDENC_CMD_FRAME_START_LEN \
 | |
| 	sizeof(videnc_cmd_frame_start)
 | |
| 
 | |
| typedef struct {
 | |
| 	unsigned short  cmd_id;
 | |
| 	unsigned short  frame_info;
 | |
| 	unsigned short  frame_rho_budget_word_high;
 | |
| 	unsigned short  frame_rho_budget_word_low;
 | |
| 	unsigned short  input_luma_addr_high;
 | |
| 	unsigned short  input_luma_addr_low;
 | |
| 	unsigned short  input_chroma_addr_high;
 | |
| 	unsigned short  input_chroma_addr_low;
 | |
| 	unsigned short  ref_vop_buf_ptr_high;
 | |
| 	unsigned short  ref_vop_buf_ptr_low;
 | |
| 	unsigned short  enc_pkt_buf_ptr_high;
 | |
| 	unsigned short  enc_pkt_buf_ptr_low;
 | |
| 	unsigned short  enc_pkt_buf_size_high;
 | |
| 	unsigned short  enc_pkt_buf_size_low;
 | |
| 	unsigned short  unfilt_recon_vop_buf_ptr_high;
 | |
| 	unsigned short  unfilt_recon_vop_buf_ptr_low;
 | |
| 	unsigned short  filt_recon_vop_buf_ptr_high;
 | |
| 	unsigned short  filt_recon_vop_buf_ptr_low;
 | |
| } __attribute__((packed)) videnc_cmd_frame_start;
 | |
| 
 | |
| /*
 | |
|  * Command to pass the frame-level digital stabilization parameters to VIDENC
 | |
|  */
 | |
| 
 | |
| 
 | |
| #define VIDENC_CMD_DIS_LEN \
 | |
|     sizeof(videnc_cmd_dis)
 | |
| 
 | |
| typedef struct {
 | |
| 	unsigned short  cmd_id;
 | |
| 	unsigned short  vfe_out_prev_luma_addr_high;
 | |
| 	unsigned short  vfe_out_prev_luma_addr_low;
 | |
| 	unsigned short  stabilization_info;
 | |
| } __attribute__((packed)) videnc_cmd_dis;
 | |
| 
 | |
| /*
 | |
|  * Command to pass the codec related parameters to VIDENC
 | |
|  */
 | |
| 
 | |
| 
 | |
| #define VIDENC_CMD_CFG_LEN \
 | |
|     sizeof(videnc_cmd_cfg)
 | |
| 
 | |
| typedef struct {
 | |
| 	unsigned short  cmd_id;
 | |
| 	unsigned short  cfg_info_0;
 | |
| 	unsigned short  cfg_info_1;
 | |
| 	unsigned short  four_mv_threshold;
 | |
| 	unsigned short  ise_fse_mv_cost_fac;
 | |
| 	unsigned short  venc_frame_dim;
 | |
| 	unsigned short  venc_DM_partition;
 | |
| } __attribute__((packed)) videnc_cmd_cfg;
 | |
| 
 | |
| /*
 | |
|  * Command to start the video encoding
 | |
|  */
 | |
| 
 | |
| 
 | |
| #define VIDENC_CMD_ACTIVE_LEN \
 | |
|     sizeof(videnc_cmd_active)
 | |
| 
 | |
| typedef struct {
 | |
|     unsigned short  cmd_id;
 | |
| } __attribute__((packed)) videnc_cmd_active;
 | |
| 
 | |
| /*
 | |
|  * Command to stop the video encoding
 | |
|  */
 | |
| 
 | |
| 
 | |
| #define VIDENC_CMD_IDLE_LEN \
 | |
|     sizeof(videnc_cmd_idle)
 | |
| 
 | |
| typedef struct {
 | |
| 	unsigned short  cmd_id;
 | |
| } __attribute__((packed)) videnc_cmd_idle;
 | |
| 
 | |
| /*
 | |
|  * Command to query staus of VIDENC
 | |
|  */
 | |
| 
 | |
| 
 | |
| #define VIDENC_CMD_STATUS_QUERY_LEN \
 | |
|     sizeof(videnc_cmd_status_query)
 | |
| 
 | |
| typedef struct {
 | |
| 	unsigned short  cmd_id;
 | |
| } __attribute__((packed)) videnc_cmd_status_query;
 | |
| 
 | |
| /*
 | |
|  * Command to set rate control for a frame
 | |
|  */
 | |
| 
 | |
| 
 | |
| #define VIDENC_CMD_RC_CFG_LEN \
 | |
|     sizeof(videnc_cmd_rc_cfg)
 | |
| 
 | |
| typedef struct {
 | |
| 	unsigned short  cmd_id;
 | |
| 	unsigned short  max_frame_qp_delta;
 | |
| 	unsigned short  max_min_frame_qp;
 | |
| } __attribute__((packed)) videnc_cmd_rc_cfg;
 | |
| 
 | |
| /*
 | |
|  * Command to set intra-refreshing
 | |
|  */
 | |
| 
 | |
| 
 | |
| #define VIDENC_CMD_INTRA_REFRESH_LEN \
 | |
|     sizeof(videnc_cmd_intra_refresh)
 | |
| 
 | |
| typedef struct {
 | |
| 	unsigned short  cmd_id;
 | |
| 	unsigned short  num_mb_refresh;
 | |
| 	unsigned short  mb_index[15];
 | |
| } __attribute__((packed)) videnc_cmd_intra_refresh;
 | |
| 
 | |
| /*
 | |
|  * Command to pass digital zoom information to the VIDENC
 | |
|  */
 | |
| #define VIDENC_CMD_DIGITAL_ZOOM_LEN \
 | |
|     sizeof(videnc_cmd_digital_zoom)
 | |
| 
 | |
| typedef struct {
 | |
| 	unsigned short  cmd_id;
 | |
| 	unsigned short  digital_zoom_en;
 | |
| 	unsigned short  luma_frame_shift_X;
 | |
| 	unsigned short  luma_frame_shift_Y;
 | |
| 	unsigned short  up_ip_luma_rows;
 | |
| 	unsigned short  up_ip_luma_cols;
 | |
| 	unsigned short  up_ip_chroma_rows;
 | |
| 	unsigned short  up_ip_chroma_cols;
 | |
| 	unsigned short  luma_ph_incr_V_low;
 | |
| 	unsigned short  luma_ph_incr_V_high;
 | |
| 	unsigned short  luma_ph_incr_H_low;
 | |
| 	unsigned short  luma_ph_incr_H_high;
 | |
| 	unsigned short  chroma_ph_incr_V_low;
 | |
| 	unsigned short  chroma_ph_incr_V_high;
 | |
| 	unsigned short  chroma_ph_incr_H_low;
 | |
| 	unsigned short  chroma_ph_incr_H_high;
 | |
| } __attribute__((packed)) videnc_cmd_digital_zoom;
 | |
| 
 | |
| /*
 | |
|  * Command to configure digital stabilization parameters
 | |
|  */
 | |
| 
 | |
| #define VIDENC_CMD_DIS_CFG_LEN \
 | |
|     sizeof(videnc_cmd_dis_cfg)
 | |
| 
 | |
| typedef struct {
 | |
| 	unsigned short  cmd_id;
 | |
| 	unsigned short  image_stab_subf_start_row_col;
 | |
| 	unsigned short  image_stab_subf_dim;
 | |
| 	unsigned short  image_stab_info_0;
 | |
| } __attribute__((packed)) videnc_cmd_dis_cfg;
 | |
| 
 | |
| 
 | |
| #endif
 |