aboutsummaryrefslogtreecommitdiffstats
path: root/videocodec/OMXVideoEncoderVP8.h
blob: f6a6b5691df3251357c46edbffddc964c21052ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

#ifndef OMX_VIDEO_ENCODER_VP8_H
#define OMX_VIDEO_ENCODER_VP8_H

#include <OMX_VideoExt.h>
#include "OMXVideoEncoderBase.h"

class OMXVideoEncoderVP8 : public OMXVideoEncoderBase {
    public:
        OMXVideoEncoderVP8();
        virtual ~OMXVideoEncoderVP8();
    protected:
        virtual OMX_ERRORTYPE InitOutputPortFormatSpecific(OMX_PARAM_PORTDEFINITIONTYPE *paramPortDeninitionOutput);
        virtual OMX_ERRORTYPE ProcessorInit(void);
        virtual OMX_ERRORTYPE ProcessorDeinit(void);
        virtual OMX_ERRORTYPE ProcessorProcess(OMX_BUFFERHEADERTYPE **buffers, buffer_retain_t *retains, OMX_U32 numberBuffers);
        virtual OMX_ERRORTYPE BuildHandlerList(void);
        virtual OMX_ERRORTYPE SetVideoEncoderParam();
        DECLARE_HANDLER(OMXVideoEncoderVP8, ParamVideoVp8);
        DECLARE_HANDLER(OMXVideoEncoderVP8, ConfigVideoVp8ReferenceFrame);
        DECLARE_HANDLER(OMXVideoEncoderVP8, ConfigVp8MaxFrameSizeRatio);
    private:
        enum {
            OUTPORT_MIN_BUFFER_COUNT = 1,
            OUTPORT_ACTUAL_BUFFER_COUNT = 2,
            OUTPORT_BUFFER_SIZE = 1382400,
        };

        OMX_VIDEO_PARAM_VP8TYPE mParamVp8;
        OMX_VIDEO_VP8REFERENCEFRAMETYPE mConfigVideoVp8ReferenceFrame;
        // Last input buffer timestamp
        OMX_TICKS mLastTimestamp;
};

#endif /* OMX_VIDEO_ENCODER_VP8_H */