| 80 | } |
| 81 | |
| 82 | void PAGEncodeThread::getEncodeFrame() { |
| 83 | if (encoder == nullptr) { |
| 84 | return; |
| 85 | } |
| 86 | FrameType frameType = FrameType::FRAME_TYPE_AUTO; |
| 87 | uint8_t* data = nullptr; |
| 88 | int64_t index = -1; |
| 89 | auto size = encoder->getEncodedData(&data, &frameType, &index); |
| 90 | if (size > 0 && data != nullptr) { |
| 91 | auto newData = pag::ByteData::MakeCopy(data, size); |
| 92 | hasEncodedNum++; |
| 93 | if (encodeFrameCallback != nullptr) { |
| 94 | encodeFrameCallback(std::move(newData), frameType, index); |
| 95 | } |
| 96 | } else if (size < 0) { |
| 97 | valid = false; |
| 98 | } |
| 99 | if ((hasEncodedNum < needEncodeNum) || !inputFinished) { |
| 100 | std::this_thread::sleep_for(std::chrono::microseconds(1000)); |
| 101 | Q_EMIT getEncodeFrameSignal(); |
| 102 | } |
| 103 | } |
| 104 | |
| 105 | void PAGEncodeThread::encodeHeadersInternal() { |
| 106 | if (encoder == nullptr) { |
nothing calls this directly
no test coverage detected