PSA: Deprecating RTPFragmentationHeader on the video decode path

248 views
Skip to first unread message

Niels Moller

unread,
Apr 26, 2018, 10:45:35 AM4/26/18
to discuss...@googlegroups.com
Webrtc's public video decoder api is defined by the interface
webrtc::VideoDecoder, declared in api/video_codecs/video_decoder.h.

The Decode method of this interface includes an argument of type
RTPFragmentationHeader*. There's also a corresponding argument in the
objc api, for the decode:...-method in the RTCVideoDecoder protocol,
declared in sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h.

The RTPFragmentationHeader is not useful at all for video decoding. We
plan to delete that argument, replacing current api methods with new
ones with different signature/selector.

The first step is cl
https://webrtc-review.googlesource.com/c/src/+/72442, deprecating the
objc method and introducing a new one. This will be landed shortly.

I will update this thread with two-week advance warning with
transition instructions when the old methods in the objc and C++ api
are about to be deleted.

These changes affects applications that inject their own video
decoders into WebRTC. We expect the update to application code to be
easy: simply delete the unused argument.

Their are no immediate plans to delete RTPFragmentationHeader on the
encoder side, where it is passed to
webrtc::EncodedImageCallback::OnEncodedImage(), even though a cleanup
of related interfaces is desirable.

Regards,
/Niels Möller

Niels Moller

unread,
May 7, 2018, 9:24:09 AM5/7/18
to discuss...@googlegroups.com
On Thu, Apr 26, 2018 at 4:45 PM, Niels Moller <ni...@webrtc.org> wrote:
> Webrtc's public video decoder api is defined by the interface
> webrtc::VideoDecoder, declared in api/video_codecs/video_decoder.h.
>
> The Decode method of this interface includes an argument of type
> RTPFragmentationHeader*. There's also a corresponding argument in the
> objc api, for the decode:...-method in the RTCVideoDecoder protocol,
> declared in sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h.
>
> The RTPFragmentationHeader is not useful at all for video decoding. We
> plan to delete that argument, replacing current api methods with new
> ones with different signature/selector.
>
> The first step is cl
> https://webrtc-review.googlesource.com/c/src/+/72442, deprecating the
> objc method and introducing a new one. This will be landed shortly.

This cl was landed a week and a half ago. Next step is cl
https://webrtc-review.googlesource.com/c/src/+/73820,
deleting the deprecated version of the objc decode:... method. I
intend to land this shortly, since
updating objc applications should be easy: a matter of deleting the
useless argument.

Regards,
/Niels

Niels Moller

unread,
May 8, 2018, 6:01:39 AM5/8/18
to discuss...@googlegroups.com
On Mon, May 7, 2018 at 3:24 PM, Niels Moller <ni...@webrtc.org> wrote:
> On Thu, Apr 26, 2018 at 4:45 PM, Niels Moller <ni...@webrtc.org> wrote:
>> Webrtc's public video decoder api is defined by the interface
>> webrtc::VideoDecoder, declared in api/video_codecs/video_decoder.h.
>>
>> The Decode method of this interface includes an argument of type
>> RTPFragmentationHeader*. There's also a corresponding argument in the
>> objc api, for the decode:...-method in the RTCVideoDecoder protocol,
>> declared in sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h.
>>
>> The RTPFragmentationHeader is not useful at all for video decoding. We
>> plan to delete that argument, replacing current api methods with new
>> ones with different signature/selector.

[...]

> Next step is cl
> https://webrtc-review.googlesource.com/c/src/+/73820,
> deleting the deprecated version of the objc decode:... method. I
> intend to land this shortly, since
> updating objc applications should be easy: a matter of deleting the
> useless argument.

Now that the objc api has been update, I've landed the next cl, to
introduce a C++ Decode
method without the RTPFragmentationHeader argument, see
https://webrtc-review.googlesource.com/c/src/+/39511

I intend to delete the old method two weeks from now, by landing cl
https://webrtc-review.googlesource.com/c/src/+/75180

Regards,
/Niels

Niels Moller

unread,
May 22, 2018, 6:47:16 AM5/22/18
to discuss...@googlegroups.com
On Tue, May 8, 2018 at 12:01 PM, Niels Moller <ni...@webrtc.org> wrote:
> I intend to delete the old method two weeks from now, by landing cl
> https://webrtc-review.googlesource.com/c/src/+/75180

Done now.
Reply all
Reply to author
Forward
0 new messages