tree 1545c92dcb1cad5dc0e307b88827a78e92b6cd91
parent cc2294d9b724c5b7a08941b958cdf17c0c917d6e
author Olga Sharonova <olka@webrtc.org> 1630569501 +0000
committer WebRTC LUCI CQ <webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com> 1630574372 +0000

Reland "frame transformer: make GetPayloadType pure virtual again"

This reverts commit eb89027733c511962120a5f7fd309d1893ad389c.

Reason for revert: We got a successful WebRTC roll into Chromium at last. Relanding, as the issue should be fixed in Chromium by now.

TBR=hta@webrtc.org,philipp.hancke@googlemail.com
Original change's description:
> Revert "frame transformer: make GetPayloadType pure virtual again"
>
> This reverts commit 209ac5fd95594ab3834dad3e3dbd14c8196637bc.
>
> Reason for revert: Breaks WebRTC autoroll presubmit:
> https://chromium-review.googlesource.com/c/chromium/src/+/3134502
> Example failure https://ci.chromium.org/ui/p/chromium/builders/try/mac-rel/775468/overview
>
> ../../buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h:725:32: error: allocating an object of abstract class type 'testing::NiceMock<blink::(anonymous namespace)::MockTransformableVideoFrame>'
>     return unique_ptr<_Tp>(new _Tp(_VSTD::forward<_Args>(__args)...));
>                                ^
> ../../third_party/blink/renderer/platform/peerconnection/rtc_encoded_video_stream_transformer_test.cc:69:26: note: in instantiation of function template specialization 'std::make_unique<testing::NiceMock<blink::(anonymous namespace)::MockTransformableVideoFrame>>' requested here
>   auto mock_frame = std::make_unique<NiceMock<MockTransformableVideoFrame>>();
>                          ^
> ../../third_party/webrtc/api/frame_transformer_interface.h:36:19: note: unimplemented pure virtual method 'GetPayloadType' in 'NiceMock'
>   virtual uint8_t GetPayloadType() const = 0;
>                   ^
>
>
> Original change's description:
> > frame transformer: make GetPayloadType pure virtual again
> >
> > after chrome was updated in
> >   https://chromium-review.googlesource.com/c/chromium/src/+/3103323
> >
> > BUG=webrtc:13077
> >
> > Change-Id: I7e5ff6aaae81c5dcfbaa41b09ef01bc95bb7251a
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/230143
> > Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> > Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
> > Cr-Commit-Position: refs/heads/main@{#34877}
>
> # Not skipping CQ checks because original CL landed > 1 day ago.
>
> Bug: webrtc:13077
> Change-Id: I6b2e4e2804890c857f1f832a6a4faa614ec026c4
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/230920
> Reviewed-by: Olga Sharonova <olka@webrtc.org>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Olga Sharonova <olka@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#34891}

# Not skipping CQ checks because this is a reland.

Bug: webrtc:13077
Change-Id: I8414f74be87aad62166a95fac0cd400257fd25a4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231120
Reviewed-by: Olga Sharonova <olka@webrtc.org>
Commit-Queue: Olga Sharonova <olka@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34901}
