哪个用过硬解,我想问一下,upv_api.h这个里面的函数在哪个地方实现的

哪个用过硬解,我想问一下,upv_api.h这个里面的函数在哪个地方实现的,我找了好久没有找到。
就是下面以的

typedef struct VpuCodecContext {
    void* vpuApiObj;

    CODEC_TYPE codecType;
    OMX_RK_VIDEO_CODINGTYPE videoCoding;

    RK_U32 width;
    RK_U32 height;
    RK_U8 *extradata;
    RK_S32 extradata_size;

    RK_U8  enableparsing;

    RK_S32 no_thread;
    EXtraCfg_t extra_cfg;

    void* private_data;

    /*
     ** 1: error state(not working)  0: working
    */
    RK_S32 decoder_err;

    /**
     * Allocate and initialize an VpuCodecContext.
     *
     * @param ctx The context of vpu api, allocated in this function.
     * @param extraData The extra data of codec, some codecs need / can
     *        use extradata like Huffman tables, also live VC1 codec can
     *        use extradata to initialize itself.
     * @param extra_size The size of extra data.
     *
     * @return 0 for init success, others for failure.
     * note: check whether ctx has been allocated success after you do init.
     */
    RK_S32 (*init)(struct VpuCodecContext *ctx, RK_U8 *extraData, RK_U32 extra_size);

    /**
     * @return 0 for decode success, others for failure.
     */
    RK_S32 (*decode)(struct VpuCodecContext *ctx, VideoPacket_t *pkt, DecoderOut_t *aDecOut);

    /**
     * @return 0 for encode success, others for failure.
     */
    RK_S32 (*encode)(struct VpuCodecContext *ctx, EncInputStream_t *aEncInStrm, EncoderOut_t *aEncOut);

    /**
     * flush codec while do fast forward playing.
     *
     * @return 0 for flush success, others for failure.
     */
    RK_S32 (*flush)(struct VpuCodecContext *ctx);
    RK_S32 (*control)(struct VpuCodecContext *ctx, VPU_API_CMD cmdType, void* param);
    /**
     *seperate the decode function to two function
     *
    */
    RK_S32 (*decode_sendstream)(struct VpuCodecContext *ctx, VideoPacket_t *pkt);
    RK_S32 (*decode_getframe)(struct VpuCodecContext *ctx, DecoderOut_t *aDecOut);

    RK_S32 (*encoder_sendframe)(struct VpuCodecContext *ctx,  EncInputStream_t *aEncInStrm);
    RK_S32 (*encoder_getstream)(struct VpuCodecContext *ctx, EncoderOut_t *aEncOut);
}VpuCodecContext_t;

/* allocated vpu codec context */
#ifdef __cplusplus
extern "C"
{
#endif
RK_S32 vpu_open_context(struct VpuCodecContext **ctx);
#ifdef __cplusplus
}
#endif

#ifdef __cplusplus
extern "C"
{
#endif
RK_S32 vpu_close_context(struct VpuCodecContext **ctx);
#ifdef __cplusplus
}
#endif

typedef RK_S32 (*VpuOpenContextFactoryFun)(struct VpuCodecContext **ctx);
typedef RK_S32 (*VpuCloseContextFactoryFun)(struct VpuCodecContext **ctx);

libvpu.so,应该没有开放源码。

本帖最后由 scue 于 2016-4-19 11:34 编辑

可以查看一下这里: vendor/rockchip/common/vpu/lib/arm/librk_vpuapi.so

[mw_shl_code=c,false] /**
*seperate the decode function to two function
*
*/
RK_S32 (*decode_sendstream)(struct VpuCodecContext *ctx, VideoPacket_t *pkt);
RK_S32 (*decode_getframe)(struct VpuCodecContext *ctx, DecoderOut_t *aDecOut);[/mw_shl_code]

arm-linux-androideabi-nm -D lib/arm/librk_vpuapi.so | grep decode_
00015cd4 T _ZN6VpuApi17decode_sendstreamEP15VpuCodecContextP11VideoPacket
00016310 T _ZN6VpuApi18decode_getoutframeEP15VpuCodecContextP10DecoderOut

scue 发表于 2016-4-19 11:25
可以查看一下这里: vendor/rockchip/common/vpu/lib/arm/librk_vpuapi.so

[mw_shl_code=c,false] /* …

hello;
在ubuntu系统下也可以实现h264的硬解么?硬解1080p的h264时cpu使用率有多少?有没有成熟的方案?