Files
mpp/mpp/mpp_frame_impl.h
ChenSiyong 22c93e4a1b [h265d]:support 10bit info change
[mpp_frame]:support pixel_fmt seting

git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@474 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-11-19 21:56:51 +00:00

109 lines
2.7 KiB
C

/*
* Copyright 2010 Rockchip Electronics S.LSI Co. LTD
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef __MPP_FRAME_IMPL_H__
#define __MPP_FRAME_IMPL_H__
#include "mpp_frame.h"
typedef struct MppFrameImpl_t MppFrameImpl;
struct MppFrameImpl_t {
const char *name;
/*
* dimension parameter for display
*/
RK_U32 width;
RK_U32 height;
RK_U32 hor_stride;
RK_U32 ver_stride;
/*
* interlaced related mode status
*
* 0 - frame
* 1 - top field
* 2 - bottom field
* 3 - paired top and bottom field
* 4 - deinterlaced flag
* 7 - deinterlaced paired field
*/
RK_U32 mode;
/*
* current decoded frame whether to display
*
* 0 - display
* 1 - display
*/
RK_U32 display;
/*
* send decoded frame belong which view
*/
RK_U32 viewid;
/*
* pts - display time stamp
* dts - decode time stamp
*/
RK_S64 pts;
RK_S64 dts;
/*
* eos - end of stream
* info_change - set when buffer resized or frame infomation changed
*/
RK_U32 eos;
RK_U32 info_change;
MppFrameColorRange color_range;
MppFrameColorPrimaries color_primaries;
MppFrameColorTransferCharacteristic color_trc;
/**
* YUV colorspace type.
* It must be accessed using av_frame_get_colorspace() and
* av_frame_set_colorspace().
* - encoding: Set by user
* - decoding: Set by libavcodec
*/
MppFrameColorSpace colorspace;
MppFrameChromaLocation chroma_location;
MppFrameFormat fmt;
/*
* buffer information
* NOTE: buf_size only access internally
*/
MppBuffer buffer;
size_t buf_size;
/*
* pointer for multiple frame output at one time
*/
MppFrameImpl *next;
};
size_t mpp_frame_get_buf_size(const MppFrame frame);
void mpp_frame_set_buf_size(MppFrame frame, size_t buf_size);
MPP_RET mpp_frame_set_next(MppFrame frame, MppFrame next);
MPP_RET mpp_frame_copy(MppFrame frame, MppFrame next);
MPP_RET mpp_frame_info_cmp(MppFrame frame0, MppFrame frame1);
#endif /*__MPP_FRAME_IMPL_H__*/