mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-27 04:35:34 +08:00
Implementation for user data sending
This commit is contained in:
@@ -73,7 +73,9 @@ int VideoEncoder::Init() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int VideoEncoder::Encode(const uint8_t *pData, int nSize) {
|
||||
int VideoEncoder::Encode(
|
||||
const uint8_t *pData, int nSize,
|
||||
std::function<int(char *encoded_packets, size_t size)> on_encoded_image) {
|
||||
if (!encoder_) {
|
||||
LOG_ERROR("Invalid encoder");
|
||||
return -1;
|
||||
@@ -104,7 +106,11 @@ int VideoEncoder::Encode(const uint8_t *pData, int nSize) {
|
||||
}
|
||||
|
||||
for (const auto &packet : encoded_packets_) {
|
||||
OnEncodedImage((char *)packet.data(), packet.size());
|
||||
if (on_encoded_image) {
|
||||
on_encoded_image((char *)packet.data(), packet.size());
|
||||
} else {
|
||||
OnEncodedImage((char *)packet.data(), packet.size());
|
||||
}
|
||||
|
||||
if (SAVE_ENCODER_STREAM) {
|
||||
fwrite((unsigned char *)packet.data(), 1, packet.size(), file_);
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef _NV_ENCODER_H_
|
||||
#define _NV_ENCODER_H_
|
||||
|
||||
#include <functional>
|
||||
|
||||
#include "NvEncoderCuda.h"
|
||||
|
||||
class VideoEncoder {
|
||||
@@ -9,8 +11,12 @@ class VideoEncoder {
|
||||
~VideoEncoder();
|
||||
|
||||
int Init();
|
||||
int Encode(const uint8_t* pData, int nSize);
|
||||
int Encode(
|
||||
const uint8_t* pData, int nSize,
|
||||
std::function<int(char* encoded_packets, size_t size)> on_encoded_image);
|
||||
|
||||
virtual int OnEncodedImage(char* encoded_packets, size_t size);
|
||||
|
||||
void ForceIdr();
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user