mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-26 20:25:34 +08:00
[feat] use 'const DecodedFrame*' instead of 'const DecodedFrame&' in Decode() method
This commit is contained in:
@@ -76,7 +76,7 @@ int AomAv1Decoder::Init() {
|
|||||||
|
|
||||||
int AomAv1Decoder::Decode(
|
int AomAv1Decoder::Decode(
|
||||||
std::unique_ptr<ReceivedFrame> received_frame,
|
std::unique_ptr<ReceivedFrame> received_frame,
|
||||||
std::function<void(const DecodedFrame &)> on_receive_decoded_frame) {
|
std::function<void(const DecodedFrame *)> on_receive_decoded_frame) {
|
||||||
const uint8_t *data = received_frame->Buffer();
|
const uint8_t *data = received_frame->Buffer();
|
||||||
size_t size = received_frame->Size();
|
size_t size = received_frame->Size();
|
||||||
|
|
||||||
@@ -157,7 +157,7 @@ int AomAv1Decoder::Decode(
|
|||||||
fwrite((unsigned char *)decoded_frame_->Buffer(), 1, decoded_frame_->Size(),
|
fwrite((unsigned char *)decoded_frame_->Buffer(), 1, decoded_frame_->Size(),
|
||||||
file_nv12_);
|
file_nv12_);
|
||||||
#endif
|
#endif
|
||||||
on_receive_decoded_frame(*decoded_frame_);
|
on_receive_decoded_frame(decoded_frame_);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ class AomAv1Decoder : public VideoDecoder {
|
|||||||
|
|
||||||
int Decode(
|
int Decode(
|
||||||
std::unique_ptr<ReceivedFrame> received_frame,
|
std::unique_ptr<ReceivedFrame> received_frame,
|
||||||
std::function<void(const DecodedFrame &)> on_receive_decoded_frame);
|
std::function<void(const DecodedFrame *)> on_receive_decoded_frame);
|
||||||
|
|
||||||
std::string GetDecoderName() { return "AomAv1"; }
|
std::string GetDecoderName() { return "AomAv1"; }
|
||||||
|
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ int Dav1dAv1Decoder::Init() {
|
|||||||
|
|
||||||
int Dav1dAv1Decoder::Decode(
|
int Dav1dAv1Decoder::Decode(
|
||||||
std::unique_ptr<ReceivedFrame> received_frame,
|
std::unique_ptr<ReceivedFrame> received_frame,
|
||||||
std::function<void(const DecodedFrame &)> on_receive_decoded_frame) {
|
std::function<void(const DecodedFrame *)> on_receive_decoded_frame) {
|
||||||
const uint8_t *data = received_frame->Buffer();
|
const uint8_t *data = received_frame->Buffer();
|
||||||
size_t size = received_frame->Size();
|
size_t size = received_frame->Size();
|
||||||
|
|
||||||
@@ -209,7 +209,7 @@ int Dav1dAv1Decoder::Decode(
|
|||||||
fwrite((unsigned char *)decoded_frame_->Buffer(), 1, decoded_frame_->Size(),
|
fwrite((unsigned char *)decoded_frame_->Buffer(), 1, decoded_frame_->Size(),
|
||||||
file_nv12_);
|
file_nv12_);
|
||||||
#endif
|
#endif
|
||||||
on_receive_decoded_frame(*decoded_frame_);
|
on_receive_decoded_frame(decoded_frame_);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -22,7 +22,7 @@ class Dav1dAv1Decoder : public VideoDecoder {
|
|||||||
|
|
||||||
int Decode(
|
int Decode(
|
||||||
std::unique_ptr<ReceivedFrame> received_frame,
|
std::unique_ptr<ReceivedFrame> received_frame,
|
||||||
std::function<void(const DecodedFrame &)> on_receive_decoded_frame);
|
std::function<void(const DecodedFrame *)> on_receive_decoded_frame);
|
||||||
|
|
||||||
std::string GetDecoderName() { return "Dav1dAv1"; }
|
std::string GetDecoderName() { return "Dav1dAv1"; }
|
||||||
|
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ int NvidiaVideoDecoder::Init() {
|
|||||||
|
|
||||||
int NvidiaVideoDecoder::Decode(
|
int NvidiaVideoDecoder::Decode(
|
||||||
std::unique_ptr<ReceivedFrame> received_frame,
|
std::unique_ptr<ReceivedFrame> received_frame,
|
||||||
std::function<void(const DecodedFrame &)> on_receive_decoded_frame) {
|
std::function<void(const DecodedFrame *)> on_receive_decoded_frame) {
|
||||||
if (!decoder) {
|
if (!decoder) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@@ -120,7 +120,7 @@ int NvidiaVideoDecoder::Decode(
|
|||||||
fwrite((unsigned char *)decoded_frame_->Buffer(), 1,
|
fwrite((unsigned char *)decoded_frame_->Buffer(), 1,
|
||||||
decoded_frame_->Size(), file_nv12_);
|
decoded_frame_->Size(), file_nv12_);
|
||||||
#endif
|
#endif
|
||||||
on_receive_decoded_frame(*decoded_frame_);
|
on_receive_decoded_frame(decoded_frame_);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ class NvidiaVideoDecoder : public VideoDecoder {
|
|||||||
int Init();
|
int Init();
|
||||||
|
|
||||||
int Decode(std::unique_ptr<ReceivedFrame> received_frame,
|
int Decode(std::unique_ptr<ReceivedFrame> received_frame,
|
||||||
std::function<void(const DecodedFrame&)> on_receive_decoded_frame);
|
std::function<void(const DecodedFrame*)> on_receive_decoded_frame);
|
||||||
|
|
||||||
std::string GetDecoderName() { return "NvidiaH264"; }
|
std::string GetDecoderName() { return "NvidiaH264"; }
|
||||||
|
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ int OpenH264Decoder::Init() {
|
|||||||
|
|
||||||
int OpenH264Decoder::Decode(
|
int OpenH264Decoder::Decode(
|
||||||
std::unique_ptr<ReceivedFrame> received_frame,
|
std::unique_ptr<ReceivedFrame> received_frame,
|
||||||
std::function<void(const DecodedFrame &)> on_receive_decoded_frame) {
|
std::function<void(const DecodedFrame *)> on_receive_decoded_frame) {
|
||||||
if (!openh264_decoder_) {
|
if (!openh264_decoder_) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@@ -204,7 +204,7 @@ int OpenH264Decoder::Decode(
|
|||||||
fwrite((unsigned char *)decoded_frame_->Buffer(), 1,
|
fwrite((unsigned char *)decoded_frame_->Buffer(), 1,
|
||||||
decoded_frame_->Size(), nv12_stream_);
|
decoded_frame_->Size(), nv12_stream_);
|
||||||
#endif
|
#endif
|
||||||
on_receive_decoded_frame(*decoded_frame_);
|
on_receive_decoded_frame(decoded_frame_);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ class OpenH264Decoder : public VideoDecoder {
|
|||||||
int Init();
|
int Init();
|
||||||
|
|
||||||
int Decode(std::unique_ptr<ReceivedFrame> received_frame,
|
int Decode(std::unique_ptr<ReceivedFrame> received_frame,
|
||||||
std::function<void(const DecodedFrame&)> on_receive_decoded_frame);
|
std::function<void(const DecodedFrame*)> on_receive_decoded_frame);
|
||||||
|
|
||||||
std::string GetDecoderName() { return "OpenH264"; }
|
std::string GetDecoderName() { return "OpenH264"; }
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ class VideoDecoder {
|
|||||||
|
|
||||||
virtual int Decode(
|
virtual int Decode(
|
||||||
std::unique_ptr<ReceivedFrame> received_frame,
|
std::unique_ptr<ReceivedFrame> received_frame,
|
||||||
std::function<void(const DecodedFrame&)> on_receive_decoded_frame) = 0;
|
std::function<void(const DecodedFrame*)> on_receive_decoded_frame) = 0;
|
||||||
|
|
||||||
virtual std::string GetDecoderName() = 0;
|
virtual std::string GetDecoderName() = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -319,19 +319,19 @@ void IceTransportController::OnReceiveCompleteFrame(
|
|||||||
uint64_t t = clock_->CurrentTime();
|
uint64_t t = clock_->CurrentTime();
|
||||||
if (video_decoder_) {
|
if (video_decoder_) {
|
||||||
int num_frame_returned = video_decoder_->Decode(
|
int num_frame_returned = video_decoder_->Decode(
|
||||||
std::move(received_frame), [this](const DecodedFrame& decoded_frame) {
|
std::move(received_frame), [this](const DecodedFrame* decoded_frame) {
|
||||||
if (on_receive_video_) {
|
if (on_receive_video_ && decoded_frame) {
|
||||||
XVideoFrame x_video_frame;
|
XVideoFrame x_video_frame;
|
||||||
x_video_frame.data = (const char*)decoded_frame.Buffer();
|
x_video_frame.data = (const char*)decoded_frame->Buffer();
|
||||||
x_video_frame.width = decoded_frame.DecodedWidth();
|
x_video_frame.width = decoded_frame->DecodedWidth();
|
||||||
x_video_frame.height = decoded_frame.DecodedHeight();
|
x_video_frame.height = decoded_frame->DecodedHeight();
|
||||||
x_video_frame.size = decoded_frame.Size();
|
x_video_frame.size = decoded_frame->Size();
|
||||||
x_video_frame.captured_timestamp =
|
x_video_frame.captured_timestamp =
|
||||||
decoded_frame.CapturedTimestamp();
|
decoded_frame->CapturedTimestamp();
|
||||||
x_video_frame.received_timestamp =
|
x_video_frame.received_timestamp =
|
||||||
decoded_frame.ReceivedTimestamp();
|
decoded_frame->ReceivedTimestamp();
|
||||||
x_video_frame.decoded_timestamp =
|
x_video_frame.decoded_timestamp =
|
||||||
decoded_frame.DecodedTimestamp();
|
decoded_frame->DecodedTimestamp();
|
||||||
|
|
||||||
if (on_receive_video_) {
|
if (on_receive_video_) {
|
||||||
on_receive_video_(&x_video_frame, remote_user_id_.data(),
|
on_receive_video_(&x_video_frame, remote_user_id_.data(),
|
||||||
|
|||||||
Reference in New Issue
Block a user