Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(170)

Issue 2977213002: Reland of Injectable Obj-C video codecs (Closed)

Created:
3 years, 5 months ago by kthelgason
Modified:
3 years, 5 months ago
CC:
webrtc-reviews_webrtc.org, tterriberry_mozilla.com, andersc
Target Ref:
refs/heads/master
Project:
webrtc
Visibility:
Public.

Description

Reland of Injectable Obj-C video codecs (patchset #1 id:1 of https://codereview.webrtc.org/2980173002/ ) Reason for revert: Relanding after fixing issues with no video. Original issue's description: > Revert of Injectable Obj-C video codecs (patchset #2 id:370001 of https://codereview.webrtc.org/2979983002/ ) > > Reason for revert: > Still having problems with no video. Reverting. > Once no video is visible, no video is available from then on even if the callee app is in the foreground. > > > Original issue's description: > > Reland of Injectable Obj-C video codecs (patchset #1 id:1 of https://codereview.webrtc.org/2979973002/ ) > > > > Reason for revert: > > Fix the broken build file > > > > Original issue's description: > > > Revert of Injectable Obj-C video codecs (patchset #3 id:400001 of https://codereview.webrtc.org/2981583002/ ) > > > > > > Reason for revert: > > > Breaks bots. Build file incorrect. > > > > > > Original issue's description: > > > > Reland of Injectable Obj-C video codecs (patchset #1 id:1 of https://codereview.webrtc.org/2975963002/ ) > > > > > > > > Reason for revert: > > > > New CL for fixing the issues > > > > > > > > Original issue's description: > > > > > Revert of Injectable Obj-C video codecs (patchset #8 id:140001 of https://codereview.webrtc.org/2966023002/ ) > > > > > > > > > > Reason for revert: > > > > > Causes no video in certain scenarios. Please come up with a test plan or unit test to prevent such problems in the future. > > > > > > > > > > Original issue's description: > > > > > > Injectable Obj-C video codecs > > > > > > > > > > > > Initial CL for this effort, with a working RTCVideoEncoder/Decoder for H264 > > > > > > (wrapping the VideoToolbox codec). > > > > > > > > > > > > Some notes / things left to do: > > > > > > - There are some hard-coded references to codec types that are supported by > > > > > > webrtc::VideoCodec, cricket::VideoCodec, webrtc::CodecSpecificInfo etc > > > > > > since we need to convert to/from these types in ObjCVideoEncoder/Decoder. > > > > > > These types would need to be more codec agnostic to avoid this. > > > > > > - Most interfaces are borrowed from the design document for injectable > > > > > > codecs in Android. Some data in the corresponding C++ classes is discarded > > > > > > when converting to the Obj-C version, since it has fewer fields. I have not > > > > > > verified whether all data that we do keep is needed, or whether we might be > > > > > > losing anything useful in these conversions. > > > > > > - Implement the VideoToolbox codec code directly in the RTCVideoEncoderH264 > > > > > > classes, instead of wrapping webrtc::H264VideoToolboxEncoder / decoder. > > > > > > Eliminates converting between ObjC/C++ types outside the ObjCVideoEncoder/ > > > > > > Decoder wrapper classes. > > > > > > - List the injected codec factory's supported codecs in the list of codecs in > > > > > > AppRTCMobile. > > > > > > > > > > > > BUG=webrtc:7924 > > > > > > R=magjed@webrtc.org > > > > > > > > > > > > Review-Url: https://codereview.webrtc.org/2966023002 . > > > > > > Cr-Commit-Position: refs/heads/master@{#18928} > > > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/a0349c138db62c52435be84b6c837f5f4758e264 > > > > > > > > > > TBR=magjed@webrtc.org,andersc@webrtc.org > > > > > # Not skipping CQ checks because original CL landed more than 1 days ago. > > > > > BUG=webrtc:7924 > > > > > NOTRY=true > > > > > > > > > > Review-Url: https://codereview.webrtc.org/2975963002 > > > > > Cr-Commit-Position: refs/heads/master@{#18979} > > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/1095ada7ad56fe29b7b2bbc560a8f6475a7978ce > > > > > > > > R=magjed@webrtc.org > > > > TBR=tkchin@webrtc.org > > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > > NOPRESUBMIT=true > > > > NOTREECHECKS=true > > > > NOTRY=true > > > > BUG=webrtc:7924 > > > > > > > > Review-Url: https://codereview.webrtc.org/2981583002 . > > > > Cr-Commit-Position: refs/heads/master@{#19002} > > > > Committed: https://chromium.googlesource.com/external/webrtc/+/a5f1de1e6541de03f944bcbf49be87c01f57a18b > > > > > > TBR=magjed@webrtc.org,tkchin@webrtc.org,jtteh@webrtc.org,andersc@webrtc.org > > > # Skipping CQ checks because original CL landed less than 1 days ago. > > > NOPRESUBMIT=true > > > NOTREECHECKS=true > > > NOTRY=true > > > BUG=webrtc:7924 > > > > > > Review-Url: https://codereview.webrtc.org/2979973002 > > > Cr-Commit-Position: refs/heads/master@{#19004} > > > Committed: https://chromium.googlesource.com/external/webrtc/+/81d40ee1491d5229c2677cc04b1f40d67c2babef > > > > TBR=magjed@webrtc.org,tkchin@webrtc.org,jtteh@webrtc.org,sprang@webrtc.org > > BUG=webrtc:7924 > > > > Review-Url: https://codereview.webrtc.org/2979983002 > > Cr-Commit-Position: refs/heads/master@{#19005} > > Committed: https://chromium.googlesource.com/external/webrtc/+/732a3437da4db7b452758b8e1cf26fce0ce3bf65 > > TBR=magjed@webrtc.org,tkchin@webrtc.org,sprang@webrtc.org,haysc@webrtc.org,andersc@webrtc.org > # Not skipping CQ checks because original CL landed more than 1 days ago. > BUG=webrtc:7924 > > Review-Url: https://codereview.webrtc.org/2980173002 > Cr-Commit-Position: refs/heads/master@{#19036} > Committed: https://chromium.googlesource.com/external/webrtc/+/860f7298166084d966749e22b69aa2fdcf4d4ed6 TBR=magjed@webrtc.org,tkchin@webrtc.org,sprang@webrtc.org,haysc@webrtc.org,andersc@webrtc.org,jtteh@webrtc.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=webrtc:7924 Review-Url: https://codereview.webrtc.org/2977213002 Cr-Commit-Position: refs/heads/master@{#19135} Committed: https://chromium.googlesource.com/external/webrtc/+/fb143127d753d71a9775b2d4fd888f0f5f43ce1c

Patch Set 1 #

Patch Set 2 : Fix style comments #

Patch Set 3 : Move files to VideoToolbox folder #

Patch Set 4 : fix build errors #

Patch Set 5 : Hopefully fix no-video bug in duo #

Total comments: 5

Patch Set 6 : Implement ObjCVideo{Decoder,Encoder} dtor #

Patch Set 7 : Prevent leaking callback objects #

Patch Set 8 : rebase #

Total comments: 2

Patch Set 9 : remove change in encoder.mm #

Patch Set 10 : Add checks to make sure destroy is called #

Total comments: 10
Unified diffs Side-by-side diffs Delta from patch set Stats (+1506 lines, -173 lines) Patch
M webrtc/sdk/BUILD.gn View 1 2 3 4 5 6 7 12 chunks +25 lines, -2 lines 0 comments Download
M webrtc/sdk/objc/Framework/Classes/Common/helpers.h View 1 4 chunks +4 lines, -4 lines 0 comments Download
A webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCEncodedImage.mm View 1 1 chunk +74 lines, -0 lines 1 comment Download
M webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm View 1 2 4 chunks +32 lines, -8 lines 0 comments Download
A webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCRtpFragmentationHeader.mm View 1 1 chunk +62 lines, -0 lines 2 comments Download
A webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm View 1 1 chunk +56 lines, -0 lines 2 comments Download
A webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec+Private.h View 1 1 chunk +57 lines, -0 lines 0 comments Download
A webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodecH264.mm View 1 2 3 4 5 6 7 8 9 1 chunk +293 lines, -0 lines 0 comments Download
A webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoEncoderSettings.mm View 1 1 chunk +72 lines, -0 lines 2 comments Download
M webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoFrame.mm View 1 chunk +1 line, -0 lines 0 comments Download
A webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_decoder_factory.h View 1 2 1 chunk +39 lines, -0 lines 0 comments Download
A webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_decoder_factory.mm View 1 2 3 4 5 6 7 1 chunk +125 lines, -0 lines 0 comments Download
A webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_encoder_factory.h View 1 2 1 chunk +41 lines, -0 lines 0 comments Download
A webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_encoder_factory.mm View 1 2 3 4 5 6 7 1 chunk +149 lines, -0 lines 0 comments Download
D webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.h View 1 2 1 chunk +0 lines, -52 lines 0 comments Download
D webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.mm View 1 2 1 chunk +0 lines, -106 lines 0 comments Download
M webrtc/sdk/objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h View 1 1 chunk +9 lines, -1 line 1 comment Download
A webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h View 1 2 3 4 5 1 chunk +140 lines, -0 lines 2 comments Download
A webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodecFactory.h View 1 chunk +36 lines, -0 lines 0 comments Download
A webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodecH264.h View 1 chunk +47 lines, -0 lines 0 comments Download
M webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoFrame.h View 1 1 chunk +3 lines, -0 lines 0 comments Download
M webrtc/sdk/objc/Framework/Headers/WebRTC/WebRTC.h View 1 chunk +3 lines, -0 lines 0 comments Download
A webrtc/sdk/objc/Framework/UnitTests/objc_video_decoder_factory_tests.mm View 1 2 3 1 chunk +104 lines, -0 lines 0 comments Download
A webrtc/sdk/objc/Framework/UnitTests/objc_video_encoder_factory_tests.mm View 1 2 3 1 chunk +134 lines, -0 lines 0 comments Download

Messages

Total messages: 50 (35 generated)
kthelgason
Created Reland of Injectable Obj-C video codecs
3 years, 5 months ago (2017-07-17 13:15:09 UTC) #1
Chuck
Can you address the objc style comments from the previous CL? https://codereview.webrtc.org/2979983002/
3 years, 5 months ago (2017-07-17 13:32:23 UTC) #2
jtt_webrtc
Could you gate-keep the use of the new injectable factory with an experiment? That way ...
3 years, 5 months ago (2017-07-17 15:58:55 UTC) #3
jtt_webrtc
The destructors of ObjCVideoEncoder/ObjCVideoDecoder should be deleting the H264VideoToolboxEncoder/H264VideoToolboxDecoder C++ object. https://codereview.webrtc.org/2977213002/diff/470001/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm File webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm (right): ...
3 years, 5 months ago (2017-07-20 02:33:20 UTC) #21
kthelgason
PTAL. This patch set implements what you suggest. Tell me though, is there any reason ...
3 years, 5 months ago (2017-07-20 11:33:51 UTC) #24
jtt_webrtc
On 2017/07/20 11:33:51, kthelgason wrote: > PTAL. This patch set implements what you suggest. > ...
3 years, 5 months ago (2017-07-20 17:18:31 UTC) #33
jtt_webrtc
Other than the change in encoder.mm, it looks fine. I tested with and without the ...
3 years, 5 months ago (2017-07-20 17:56:00 UTC) #34
jtt_webrtc
lgtm
3 years, 5 months ago (2017-07-20 17:56:16 UTC) #35
jtt_webrtc
lgtm
3 years, 5 months ago (2017-07-20 17:56:18 UTC) #36
kthelgason
https://codereview.webrtc.org/2977213002/diff/530001/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm File webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm (left): https://codereview.webrtc.org/2977213002/diff/530001/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm#oldcode541 webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm:541: callback_ = nullptr; On 2017/07/20 17:56:00, jtt_webrtc wrote: > ...
3 years, 5 months ago (2017-07-21 09:09:36 UTC) #37
Chuck
objc style comments carried over from previous CL. https://codereview.webrtc.org/2977213002/diff/570001/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCEncodedImage.mm File webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCEncodedImage.mm (right): https://codereview.webrtc.org/2977213002/diff/570001/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCEncodedImage.mm#newcode54 webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCEncodedImage.mm:54: - ...
3 years, 5 months ago (2017-07-21 15:59:48 UTC) #38
magjed_webrtc
On 2017/07/21 15:59:48, Chuck wrote: > objc style comments carried over from previous CL. > ...
3 years, 5 months ago (2017-07-25 14:52:34 UTC) #43
magjed_webrtc
lgtm
3 years, 5 months ago (2017-07-25 14:52:46 UTC) #45
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/2977213002/570001
3 years, 5 months ago (2017-07-25 14:52:53 UTC) #47
commit-bot: I haz the power
3 years, 5 months ago (2017-07-25 14:56:07 UTC) #50
Message was sent while issue was closed.
Committed patchset #10 (id:570001) as
https://chromium.googlesource.com/external/webrtc/+/fb143127d753d71a9775b2d4f...

Powered by Google App Engine
This is Rietveld 408576698