From 03addaf0b708b8f35f389e86e9f493fe51c218f1 Mon Sep 17 00:00:00 2001 From: ziyue <1213642868@qq.com> Date: Wed, 7 Jul 2021 11:37:22 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B1=E4=BA=8Eframe=20merge=E6=97=B6?= =?UTF-8?q?=E5=B7=B2=E7=BB=8F=E8=BF=87=E6=BB=A4=E6=97=A0=E6=95=88=E5=B8=A7?= =?UTF-8?q?=EF=BC=8C=E6=89=80=E4=BB=A5=E7=A7=BB=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Record/MP4Muxer.cpp | 8 +------- src/Record/TsMuxer.cpp | 8 +------- src/Rtp/PSEncoder.cpp | 8 +------- 3 files changed, 3 insertions(+), 21 deletions(-) diff --git a/src/Record/MP4Muxer.cpp b/src/Record/MP4Muxer.cpp index 3e9045d2..b26f0c36 100644 --- a/src/Record/MP4Muxer.cpp +++ b/src/Record/MP4Muxer.cpp @@ -86,13 +86,7 @@ void MP4MuxerInterface::inputFrame(const Frame::Ptr &frame) { int64_t dts_out, pts_out; switch (frame->getCodecId()) { - case CodecH264: { - int type = H264_TYPE(*((uint8_t *)frame->data() + frame->prefixSize())); - if(type == H264Frame::NAL_SEI){ - break; - } - } - + case CodecH264: case CodecH265: { //这里的代码逻辑是让SPS、PPS、IDR这些时间戳相同的帧打包到一起当做一个帧处理, _frame_merger.inputFrame(frame, [&](uint32_t dts, uint32_t pts, const Buffer::Ptr &buffer, bool have_idr) { diff --git a/src/Record/TsMuxer.cpp b/src/Record/TsMuxer.cpp index 97bb39a8..98948132 100644 --- a/src/Record/TsMuxer.cpp +++ b/src/Record/TsMuxer.cpp @@ -94,13 +94,7 @@ void TsMuxer::inputFrame(const Frame::Ptr &frame) { int64_t dts_out, pts_out; _is_idr_fast_packet = !_have_video; switch (frame->getCodecId()){ - case CodecH264: { - int type = H264_TYPE(*((uint8_t *) frame->data() + frame->prefixSize())); - if (type == H264Frame::NAL_SEI) { - break; - } - } - + case CodecH264: case CodecH265: { //这里的代码逻辑是让SPS、PPS、IDR这些时间戳相同的帧打包到一起当做一个帧处理, _frame_merger.inputFrame(frame, [&](uint32_t dts, uint32_t pts, const Buffer::Ptr &buffer, bool have_idr){ diff --git a/src/Rtp/PSEncoder.cpp b/src/Rtp/PSEncoder.cpp index 6cd39e0a..dc37f9e2 100644 --- a/src/Rtp/PSEncoder.cpp +++ b/src/Rtp/PSEncoder.cpp @@ -117,13 +117,7 @@ void PSEncoder::inputFrame(const Frame::Ptr &frame) { auto &track_info = it->second; int64_t dts_out, pts_out; switch (frame->getCodecId()) { - case CodecH264: { - int type = H264_TYPE(*((uint8_t *) frame->data() + frame->prefixSize())); - if (type == H264Frame::NAL_SEI) { - break; - } - } - + case CodecH264: case CodecH265: { //这里的代码逻辑是让SPS、PPS、IDR这些时间戳相同的帧打包到一起当做一个帧处理, _frame_merger.inputFrame(frame, [&](uint32_t dts, uint32_t pts, const Buffer::Ptr &buffer, bool have_idr) {