status_t VideoRender::render(const void *data, size_t size,int width,int height)
{
if(mCodecSurface==NULL){
return BAD_VALUE ;
int err;
int mCropWidth = width;
int mCropHeight = height;
int halFormat = HAL_PIXEL_FORMAT_YCrCb_420_SP;//HAL_PIXEL_FORMAT_YV12;//颜色空间
int bufWidth = (mCropWidth + 1) & ~1;//按2对齐
int bufHeight = (mCropHeight + 1) & ~1;
// 参数校验
CHECK_EQ(0,
native_window_set_usage(
mNativeWindow.get(),
GRALLOC_USAGE_SW_READ_NEVER | GRALLOC_USAGE_SW_WRITE_OFTEN
| GRALLOC_USAGE_HW_TEXTURE | GRALLOC_USAGE_EXTERNAL_DISP));
CHECK_EQ(0,
native_window_set_scaling
{
if(mCodecSurface==NULL){
return BAD_VALUE ;
}
// 本地窗口
int err;
int mCropWidth = width;
int mCropHeight = height;
int halFormat = HAL_PIXEL_FORMAT_YCrCb_420_SP;//HAL_PIXEL_FORMAT_YV12;//颜色空间
int bufWidth = (mCropWidth + 1) & ~1;//按2对齐
int bufHeight = (mCropHeight + 1) & ~1;
// 参数校验
CHECK_EQ(0,
native_window_set_usage(
mNativeWindow.get(),
GRALLOC_USAGE_SW_READ_NEVER | GRALLOC_USAGE_SW_WRITE_OFTEN
| GRALLOC_USAGE_HW_TEXTURE | GRALLOC_USAGE_EXTERNAL_DISP));
CHECK_EQ(0,
native_window_set_scaling