MCPcopy Create free account
hub / github.com/Tencent/libpag / encodeRGBA

Method encodeRGBA

exporter/src/export/encode/VideoEncoder.cpp:106–124  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

104}
105
106void PAGEncoder::encodeRGBA(uint8_t* data, int dataStride, FrameType frameType) {
107 if (data == nullptr) {
108 return;
109 }
110 uint8_t* tmpData[4] = {nullptr};
111 int tmpStride[4] = {0};
112 encoder->getInputFrameBuf(tmpData, tmpStride);
113 RGBAToYUV420(data, dataStride, tmpData[0], tmpData[1], tmpData[2], tmpStride[0], tmpStride[1],
114 inputWidth, inputHeight, 0);
115
116 if (hasAlpha) {
117 GetAlphaFromRGBA(tmpData, tmpStride, data, dataStride, SIZE_ALIGN(inputWidth),
118 SIZE_ALIGN(inputHeight), alphaStartX, alphaStartY);
119 FillYUVPadding(tmpData, tmpStride, SIZE_ALIGN(inputWidth), SIZE_ALIGN(inputHeight), alphaStartX,
120 alphaStartY);
121 }
122
123 encoder->encodeFrame(tmpData, tmpStride, frameType);
124}
125
126int PAGEncoder::encodeHeaders(uint8_t* header[], int headerSize[]) {
127 return encoder->encodeHeaders(header, headerSize);

Callers 1

encodeFrameInternalMethod · 0.80

Calls 4

GetAlphaFromRGBAFunction · 0.85
FillYUVPaddingFunction · 0.85
getInputFrameBufMethod · 0.80
encodeFrameMethod · 0.45

Tested by

no test coverage detected