Use the generic descriptor information in the RtpFrameReferenceFinder.

Bug: webrtc:9361
Change-Id: I8d7e7ee1d3ca89283552c21c45950d4dba1c1927
Reviewed-on: https://webrtc-review.googlesource.com/100301
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24826}
This commit is contained in:
philipel
2018-09-25 12:54:37 +02:00
committed by Commit Bot
parent 8b7bc5d701
commit dabfcae2d9
4 changed files with 177 additions and 17 deletions

View File

@ -88,10 +88,15 @@ class RtpFrameReferenceFinder {
FrameDecision ManageFrameInternal(RtpFrameObject* frame)
RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_);
// Find references for generic frames. If |picture_id| is unspecified
// then packet sequence numbers will be used to determine the references
// of the frames.
FrameDecision ManageFrameGeneric(RtpFrameObject* frame, int picture_id)
FrameDecision ManageFrameGeneric(
RtpFrameObject* frame,
const RTPVideoHeader::GenericDescriptorInfo& descriptor)
RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_);
// Find references for frames with no or very limited information in the
// descriptor. If |picture_id| is unspecified then packet sequence numbers
// will be used to determine the references of the frames.
FrameDecision ManageFramePidOrSeqNum(RtpFrameObject* frame, int picture_id)
RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_);
// Find references for Vp8 frames
@ -192,9 +197,11 @@ class RtpFrameReferenceFinder {
OnCompleteFrameCallback* frame_callback_;
SeqNumUnwrapper<uint16_t> generic_frame_id_unwrapper_ RTC_GUARDED_BY(crit_);
// Unwrapper used to unwrap generic RTP streams. In a generic stream we derive
// a picture id from the packet sequence number.
SeqNumUnwrapper<uint16_t> generic_unwrapper_ RTC_GUARDED_BY(crit_);
SeqNumUnwrapper<uint16_t> rtp_seq_num_unwrapper_ RTC_GUARDED_BY(crit_);
// Unwrapper used to unwrap VP8/VP9 streams which have their picture id
// specified.