From 0d000c0530fcd8b0c0b0b46d60d5b39878fdef6f Mon Sep 17 00:00:00 2001 From: Danil Chapovalov Date: Mon, 3 Aug 2020 17:17:58 +0200 Subject: [PATCH] Stop using RTPFragmentationHeader in sdk/android as unneeded MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: webrtc:6471 Change-Id: I81bbea4b7fd6e0325791456bb521e9dd0a64487d Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/180806 Reviewed-by: Sami Kalliomäki Commit-Queue: Danil Chapovalov Cr-Commit-Position: refs/heads/master@{#31836} --- sdk/android/src/jni/video_encoder_wrapper.cc | 33 ++------------------ sdk/android/src/jni/video_encoder_wrapper.h | 2 -- 2 files changed, 2 insertions(+), 33 deletions(-) diff --git a/sdk/android/src/jni/video_encoder_wrapper.cc b/sdk/android/src/jni/video_encoder_wrapper.cc index 1b34e99dce..c12f5cff52 100644 --- a/sdk/android/src/jni/video_encoder_wrapper.cc +++ b/sdk/android/src/jni/video_encoder_wrapper.cc @@ -254,13 +254,12 @@ void VideoEncoderWrapper::OnEncodedFrame( frame_copy.SetTimestamp(frame_extra_info.timestamp_rtp); frame_copy.capture_time_ms_ = capture_time_ns / rtc::kNumNanosecsPerMillisec; - RTPFragmentationHeader header = ParseFragmentationHeader(frame); if (frame_copy.qp_ < 0) frame_copy.qp_ = ParseQp(frame); CodecSpecificInfo info(ParseCodecSpecificInfo(frame)); - callback_->OnEncodedImage(frame_copy, &info, &header); + callback_->OnEncodedImage(frame_copy, &info); } int32_t VideoEncoderWrapper::HandleReturnCode(JNIEnv* jni, @@ -289,35 +288,6 @@ int32_t VideoEncoderWrapper::HandleReturnCode(JNIEnv* jni, return WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE; } -RTPFragmentationHeader VideoEncoderWrapper::ParseFragmentationHeader( - rtc::ArrayView buffer) { - RTPFragmentationHeader header; - if (codec_settings_.codecType == kVideoCodecH264) { - h264_bitstream_parser_.ParseBitstream(buffer.data(), buffer.size()); - - // For H.264 search for start codes. - const std::vector nalu_idxs = - H264::FindNaluIndices(buffer.data(), buffer.size()); - if (nalu_idxs.empty()) { - RTC_LOG(LS_ERROR) << "Start code is not found!"; - RTC_LOG(LS_ERROR) << "Data:" << buffer[0] << " " << buffer[1] << " " - << buffer[2] << " " << buffer[3] << " " << buffer[4] - << " " << buffer[5]; - } - header.VerifyAndAllocateFragmentationHeader(nalu_idxs.size()); - for (size_t i = 0; i < nalu_idxs.size(); i++) { - header.fragmentationOffset[i] = nalu_idxs[i].payload_start_offset; - header.fragmentationLength[i] = nalu_idxs[i].payload_size; - } - } else { - // Generate a header describing a single fragment. - header.VerifyAndAllocateFragmentationHeader(1); - header.fragmentationOffset[0] = 0; - header.fragmentationLength[0] = buffer.size(); - } - return header; -} - int VideoEncoderWrapper::ParseQp(rtc::ArrayView buffer) { int qp; bool success; @@ -329,6 +299,7 @@ int VideoEncoderWrapper::ParseQp(rtc::ArrayView buffer) { success = vp9::GetQp(buffer.data(), buffer.size(), &qp); break; case kVideoCodecH264: + h264_bitstream_parser_.ParseBitstream(buffer.data(), buffer.size()); success = h264_bitstream_parser_.GetLastSliceQp(&qp); break; default: // Default is to not provide QP. diff --git a/sdk/android/src/jni/video_encoder_wrapper.h b/sdk/android/src/jni/video_encoder_wrapper.h index 0e9d37bf23..cee3a609a3 100644 --- a/sdk/android/src/jni/video_encoder_wrapper.h +++ b/sdk/android/src/jni/video_encoder_wrapper.h @@ -67,8 +67,6 @@ class VideoEncoderWrapper : public VideoEncoder { const JavaRef& j_value, const char* method_name); - RTPFragmentationHeader ParseFragmentationHeader( - rtc::ArrayView buffer); int ParseQp(rtc::ArrayView buffer); CodecSpecificInfo ParseCodecSpecificInfo(const EncodedImage& frame); ScopedJavaLocalRef ToJavaBitrateAllocation(