Set first_frame_in_picture on first encoded frame of picture.

Set the flag based on coded length of buffered frame which is reset
after picture is encoded and, thus, is equal to zero when encoder
delivers first frame of next picture.

Before this change first_frame_in_picture was set based on index of
spatial layer of encoded frame. This is not right anymore since encoder
can drop base layer but deliver upper layers.

Bug: chromium:828350
Change-Id: I12c7534240de8bc4905f04ff368cc3704720a70b
Reviewed-on: https://webrtc-review.googlesource.com/68561
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22805}
This commit is contained in:
Sergey Silkin
2018-04-09 13:11:59 +02:00
committed by Commit Bot
parent bda78c9464
commit 07f80cc393
2 changed files with 18 additions and 18 deletions

View File

@ -74,7 +74,8 @@ class VP9EncoderImpl : public VP9Encoder {
void PopulateCodecSpecific(CodecSpecificInfo* codec_specific,
const vpx_codec_cx_pkt& pkt,
uint32_t timestamp);
uint32_t timestamp,
bool first_frame_in_picture);
bool ExplicitlyConfiguredSpatialLayers() const;
bool SetSvcRates(const BitrateAllocation& bitrate_allocation);