Ignore frame type when calculating generic frame dependencies.
When spatial scalability is used, both vpx and aom set key frame flag for all spatial layers of the first frame, while rtp code expect it to be set only on the frame without spatial dependencies. That creates confusion for the frame dependency calculator. Simplest solution seems to ignore that confusing signal and instead rely encoder wrappers update frame buffer usages when key frame is generated. Bug: webrtc:11999 Change-Id: Ica24f1d8d42d32dd24664beabf32ac24872cd15a Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/194002 Reviewed-by: Philip Eliasson <philipel@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/master@{#32667}
This commit is contained in:
committed by
Commit Bot
parent
28cf2efd08
commit
cf1308fddd
@ -17,7 +17,6 @@
|
||||
#include "api/array_view.h"
|
||||
#include "api/transport/rtp/dependency_descriptor.h"
|
||||
#include "api/video/video_bitrate_allocation.h"
|
||||
#include "api/video/video_frame_type.h"
|
||||
#include "modules/video_coding/chain_diff_calculator.h"
|
||||
#include "modules/video_coding/frame_dependencies_calculator.h"
|
||||
#include "modules/video_coding/svc/scalable_video_controller.h"
|
||||
@ -56,8 +55,6 @@ void ScalabilityStructureWrapper::GenerateFrames(
|
||||
frame_info.chain_diffs =
|
||||
chain_diff_calculator_.From(frame_id, frame_info.part_of_chain);
|
||||
for (int64_t base_frame_id : frame_deps_calculator_.FromBuffersUsage(
|
||||
is_keyframe ? VideoFrameType::kVideoFrameKey
|
||||
: VideoFrameType::kVideoFrameDelta,
|
||||
frame_id, frame_info.encoder_buffers)) {
|
||||
frame_info.frame_diffs.push_back(frame_id - base_frame_id);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user