summaryrefslogtreecommitdiffstats
path: root/src/pnw_hostcode.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pnw_hostcode.h')
-rw-r--r--src/pnw_hostcode.h31
1 files changed, 25 insertions, 6 deletions
diff --git a/src/pnw_hostcode.h b/src/pnw_hostcode.h
index 93213f6..5973b5c 100644
--- a/src/pnw_hostcode.h
+++ b/src/pnw_hostcode.h
@@ -28,7 +28,7 @@
#include "pnw_cmdbuf.h"
#include "pnw_hostjpeg.h"
-#define TOPAZ_PIC_PARAMS_VERBOS 0
+#define TOPAZ_PIC_PARAMS_VERBOSE 0
#define MAX_SLICES_PER_PICTURE 72
#define MAX_TOPAZ_CORES 4
@@ -94,6 +94,7 @@ typedef struct _RC_PARAMS_
IMG_UINT32 BufferSize;
IMG_UINT32 BitsConsumed;
IMG_UINT32 IntraFreq;
+ IMG_UINT16 IDRFreq;
IMG_INT16 MinQP;
IMG_BOOL RCEnable;
IMG_BOOL FrameSkip;
@@ -216,10 +217,8 @@ struct context_ENC_s {
*/
/* 0 and 1 are for in_parms, 2 is for bellow and above params*/
- /*
struct psb_buffer_s topaz_in_params_I;
struct psb_buffer_s topaz_in_params_P;
- */
struct psb_buffer_s topaz_below_params; /* MB MVs read & written by HW */
struct psb_buffer_s topaz_above_params; /* MB MVs read & written by HW */
@@ -244,6 +243,10 @@ struct context_ENC_s {
uint32_t eoseq_header_ofs;
uint32_t eostream_header_ofs;
uint32_t slice_header_ofs;
+ /*HRD SEI header*/
+ uint32_t aud_header_ofs;
+ uint32_t sei_buf_prd_ofs;
+ uint32_t sei_pic_tm_ofs;
uint32_t sliceparam_buffer_size;
@@ -251,7 +254,8 @@ struct context_ENC_s {
TH_SKIP_SCALE THSkip;
uint32_t pic_params_flags;
- VAEncSliceParameterBuffer slice_param_cache[2];
+ VAEncSliceParameterBuffer *slice_param_cache;
+ uint16_t slice_param_num;
IMG_UINT16 MPEG4_vop_time_increment_resolution;
@@ -260,12 +264,16 @@ struct context_ENC_s {
uint32_t MPEG4_picture_type_frameskip;
uint8_t profile_idc;
+ uint8_t force_idr_h264;
+
/*If only one slice, it's zero. Otherwise it indicates size of parted coded_buf per slice*/
uint32_t coded_buf_per_slice;
/*JPEG context*/
TOPAZSC_JPEG_ENCODER_CONTEXT *jpeg_ctx;
+ /*H264 SEI_INSERTION*/
+ IMG_BOOL bInserHRDParams;
};
typedef struct context_ENC_s *context_ENC_p;
@@ -300,6 +308,10 @@ typedef struct context_ENC_s *context_ENC_p;
#define SPE_EDGE_TOP 4 /* ->bMinYRealEdge*/
#define SPE_EDGE_BOTTOM 8 /* ->bMaxYRealEdge*/
+#define BPH_SEI_NAL_INITIAL_CPB_REMOVAL_DELAY_SIZE 23
+#define PTH_SEI_NAL_CPB_REMOVAL_DELAY_SIZE 23
+#define PTH_SEI_NAL_DPB_OUTPUT_DELAY_SIZE 7
+
typedef struct
{
/* Transferred into the input params area of the macroblock parameter structure*/
@@ -393,6 +405,13 @@ typedef struct _PIC_PARAMS_
IMG_UINT16 SearchHeight;
IMG_UINT16 NumSlices; //!< Number of slices in the picture
+
+ // SEI_INSERTION
+ IMG_UINT32 InitialCPBremovaldelayoffset;
+ IMG_UINT64 ClockDivBitrate;
+ IMG_UINT32 MaxBufferMultClockDivBitrate;
+ IMG_BOOL InsertHRDparams;
+
}PIC_PARAMS;
@@ -411,9 +430,9 @@ typedef struct _SLICE_PARAMS_
IMG_UINT16 RefYRowStride;
IMG_UINT16 RefUVRowStride;
- IMG_UINT32 CodedData;
+ IMG_UINT32 HostCtx;
IMG_UINT32 Flags;
- IMG_UINT32 CodedDataPos;
+ IMG_UINT32 CodedData;
IMG_UINT32 TotalCoded;
IMG_UINT32 FCode;