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

Issue 1880963002: Generate FMTP parameters for the H.264 codec. (Closed)

Created:
4 years, 8 months ago by hta-webrtc
Modified:
4 years, 8 months ago
CC:
webrtc-reviews_webrtc.org, tterriberry_mozilla.com, nisse-webrtc
Base URL:
https://chromium.googlesource.com/external/webrtc.git@master
Target Ref:
refs/pending/heads/master
Project:
webrtc
Visibility:
Public.

Description

Generate FMTP parameters for the H.264 codec. This CL generates FMTP parameters that allow H.264 interoperation with Firefox for the default codec list. BUG=chromium:591971 Committed: https://crrev.com/a6b99448eec51527eca0bc59f6da71061d02e807 Cr-Commit-Position: refs/heads/master@{#12333}

Patch Set 1 #

Total comments: 14

Patch Set 2 : Review comments addressed #

Total comments: 2

Patch Set 3 : Add another TODO #

Total comments: 6
Unified diffs Side-by-side diffs Delta from patch set Stats (+73 lines, -10 lines) Patch
M webrtc/api/webrtcsdp.cc View 1 1 chunk +20 lines, -8 lines 2 comments Download
M webrtc/api/webrtcsdp_unittest.cc View 1 2 chunks +29 lines, -0 lines 0 comments Download
M webrtc/media/base/mediaconstants.h View 1 chunk +6 lines, -0 lines 0 comments Download
M webrtc/media/base/mediaconstants.cc View 1 chunk +6 lines, -0 lines 2 comments Download
M webrtc/media/engine/webrtcvideoengine2.cc View 1 2 1 chunk +12 lines, -2 lines 2 comments Download

Messages

Total messages: 29 (11 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1880963002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1880963002/1
4 years, 8 months ago (2016-04-12 09:28:12 UTC) #2
hta-webrtc
This works. It's not pretty. TODOs added for how things should be done. Adding nisse ...
4 years, 8 months ago (2016-04-12 09:29:52 UTC) #5
nisse-webrtc
https://codereview.webrtc.org/1880963002/diff/1/webrtc/media/engine/webrtcvideoengine2.cc File webrtc/media/engine/webrtcvideoengine2.cc (right): https://codereview.webrtc.org/1880963002/diff/1/webrtc/media/engine/webrtcvideoengine2.cc#newcode391 webrtc/media/engine/webrtcvideoengine2.cc:391: // TODO(hta): Move selection of profile-level-id to codec implementation. ...
4 years, 8 months ago (2016-04-12 10:03:42 UTC) #7
tommi
https://codereview.webrtc.org/1880963002/diff/1/webrtc/api/webrtcsdp.cc File webrtc/api/webrtcsdp.cc (right): https://codereview.webrtc.org/1880963002/diff/1/webrtc/api/webrtcsdp.cc#newcode1597 webrtc/api/webrtcsdp.cc:1597: if (_stricmp(name.c_str(), kFmtpParams[i]) == 0) { nit: since you're ...
4 years, 8 months ago (2016-04-12 10:10:26 UTC) #8
hbos
https://codereview.webrtc.org/1880963002/diff/1/webrtc/api/webrtcsdp_unittest.cc File webrtc/api/webrtcsdp_unittest.cc (right): https://codereview.webrtc.org/1880963002/diff/1/webrtc/api/webrtcsdp_unittest.cc#newcode2101 webrtc/api/webrtcsdp_unittest.cc:2101: size_t after_pt = message.find(" H264/90000"); Can we also make ...
4 years, 8 months ago (2016-04-12 10:14:23 UTC) #9
nisse-webrtc
https://codereview.webrtc.org/1880963002/diff/1/webrtc/api/webrtcsdp.cc File webrtc/api/webrtcsdp.cc (right): https://codereview.webrtc.org/1880963002/diff/1/webrtc/api/webrtcsdp.cc#newcode1597 webrtc/api/webrtcsdp.cc:1597: if (_stricmp(name.c_str(), kFmtpParams[i]) == 0) { On 2016/04/12 10:10:26, ...
4 years, 8 months ago (2016-04-12 10:52:08 UTC) #10
hta-webrtc
Easily addressable comments addressed. Yes, the relationship between parameters in cricket::VideoCodec and the properties of ...
4 years, 8 months ago (2016-04-12 11:21:38 UTC) #11
tommi
lgtm
4 years, 8 months ago (2016-04-12 11:31:37 UTC) #12
hbos
lgtm https://codereview.webrtc.org/1880963002/diff/1/webrtc/api/webrtcsdp_unittest.cc File webrtc/api/webrtcsdp_unittest.cc (right): https://codereview.webrtc.org/1880963002/diff/1/webrtc/api/webrtcsdp_unittest.cc#newcode2101 webrtc/api/webrtcsdp_unittest.cc:2101: size_t after_pt = message.find(" H264/90000"); On 2016/04/12 11:21:37, ...
4 years, 8 months ago (2016-04-12 11:41:15 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1880963002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1880963002/40001
4 years, 8 months ago (2016-04-12 12:47:00 UTC) #16
hta-webrtc
Thanks. CQ started. https://codereview.webrtc.org/1880963002/diff/20001/webrtc/media/engine/webrtcvideoengine2.cc File webrtc/media/engine/webrtcvideoengine2.cc (right): https://codereview.webrtc.org/1880963002/diff/20001/webrtc/media/engine/webrtcvideoengine2.cc#newcode388 webrtc/media/engine/webrtcvideoengine2.cc:388: if (CodecIsInternallySupported(kH264CodecName)) { On 2016/04/12 11:41:14, ...
4 years, 8 months ago (2016-04-12 12:48:44 UTC) #17
commit-bot: I haz the power
Try jobs failed on following builders: android_arm64_rel on tryserver.webrtc (JOB_TIMED_OUT, no build URL) linux_baremetal on ...
4 years, 8 months ago (2016-04-12 14:47:40 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1880963002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1880963002/40001
4 years, 8 months ago (2016-04-12 15:46:41 UTC) #21
commit-bot: I haz the power
Committed patchset #3 (id:40001)
4 years, 8 months ago (2016-04-12 17:29:20 UTC) #23
commit-bot: I haz the power
Patchset 3 (id:??) landed as https://crrev.com/a6b99448eec51527eca0bc59f6da71061d02e807 Cr-Commit-Position: refs/heads/master@{#12333}
4 years, 8 months ago (2016-04-12 17:29:27 UTC) #25
juberti2
https://codereview.webrtc.org/1880963002/diff/40001/webrtc/api/webrtcsdp.cc File webrtc/api/webrtcsdp.cc (right): https://codereview.webrtc.org/1880963002/diff/40001/webrtc/api/webrtcsdp.cc#newcode1597 webrtc/api/webrtcsdp.cc:1597: if (name.compare(kFmtpParams[i]) == 0) { These should be case ...
4 years, 8 months ago (2016-04-13 20:20:58 UTC) #27
hta-webrtc
Pushback on 2 of the comments. As I said, FMTP parameter setting need to be ...
4 years, 8 months ago (2016-04-13 20:43:58 UTC) #28
juberti2
4 years, 8 months ago (2016-04-13 21:43:28 UTC) #29
Message was sent while issue was closed.
On 2016/04/13 20:43:58, hta-webrtc wrote:
> Pushback on 2 of the comments. As I said, FMTP parameter setting need to be
> refactored to be implementation-driven, so this all needs to be revisited
soon.
> 
> Not planning to reopen.
> 
> https://codereview.webrtc.org/1880963002/diff/40001/webrtc/api/webrtcsdp.cc
> File webrtc/api/webrtcsdp.cc (right):
> 
>
https://codereview.webrtc.org/1880963002/diff/40001/webrtc/api/webrtcsdp.cc#n...
> webrtc/api/webrtcsdp.cc:1597: if (name.compare(kFmtpParams[i]) == 0) {
> On 2016/04/13 20:20:58, juberti2 wrote:
> > These should be case insensitive comparisons. This looks like a bug.
> 
> Citation? I checked the SDP RFC, and it said "case sensitive by default".

RFC 3264 is indeed ambiguous, but 4855 makes a clear statement:

   Note that the payload format (encoding) names defined in the RTP
   Profile [4] are commonly shown in upper case.  Media subtype names
   are commonly shown in lower case.  These names are case-insensitive
   in both places.  Similarly, parameter names are case-insensitive both
   in media type strings and in the default mapping to the SDP a=fmtp
   attribute.
> 
>
https://codereview.webrtc.org/1880963002/diff/40001/webrtc/media/base/mediaco...
> File webrtc/media/base/mediaconstants.cc (right):
> 
>
https://codereview.webrtc.org/1880963002/diff/40001/webrtc/media/base/mediaco...
> webrtc/media/base/mediaconstants.cc:120: const char kH264FmtpProfileLevelId[]
=
> "profile-level-id";
> On 2016/04/13 20:20:58, juberti2 wrote:
> > The precedent here is kCodecParamFoo, or perhaps in this case, kH264Param
foo
> > (see the opus params above).
> 
> The precedent is wrong. The namespace for FMTP parameters is scoped by codec,
> mixing the names of FMTP codec parameters like these with the names of codec
> parameters that go on a= lines is going to cause confusion.

The Opus parameters are akin to these parameters (i.e. they go into fmtp); I
don't think there will be confusion on where these parameters go. Overall the
kCodecParam precedent was chosen based on 4855, which allows codecs to register
arbitrary params which can be serialized in different ways, including fmtp.

I agree that these parameters are codec specific, so if we think kCodecParamFoo
is potentially confusing, we could go with kOpusParamFoo/kH264ParamFoo instead.
The overall point is that we don't use fmtp terminology anywhere else, so we
shouldn't start using it here.

Powered by Google App Engine
This is Rietveld 408576698