<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jul 18, 2014, at 3:17 AM, Jacques-Olivier <<a href="mailto:jo.hache@temasys.com.sg" class="">jo.hache@temasys.com.sg</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=windows-1252" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">I’m new on this mailing so I’ll start by introducing myself:</div><div class="">My name Jacques-Olivier Haché (J-O), I’m working for Temasys Communication, and I’m entering the WebKit project to work on the implementation of WebRTC inside WebKit.</div><div class="">For those who would be following the WebRTC’s news, I’m also the main developer of the WebRTC plugin released by Temasys.</div><div class=""><br class=""></div></div></div></blockquote><div><br class=""></div><div> Welcome to the WebKit community!</div><br class=""><blockquote type="cite" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">I am now trying to enable the WebRTC related features to get a better understanding of the current state of this part of the project. </div><div class="">I have to say that I faced a lack of documentation on this area. I found the <a href="https://trac.webkit.org/wiki/FeatureFlags" class="">features list</a>, a document about <a href="https://trac.webkit.org/wiki/AddingFeatures" class="">how to add a new feature</a> but nothing about how to turn a feature on and off (there is actually a TODO about that in the second link).</div><div class=""><br class=""></div><div class="">I looked into the files that one needs to change to add a new feature and found two interesting files:</div><div class=""><ul class=""><li class=""><span style="background-color: rgb(255, 255, 255);" class="">Source/WTF/wtf/FeatureDefines.h - where the WebRTC related contants were set to 0 instead of 1</span></li><li class="">Source/cmake/WebKitFeatures.cmake - where the contants were set to OFF</li></ul></div><div class="">I listed the following definitions that look related to WebRTC</div><div class=""><ul class=""><li class="">ENABLE_MEDIA_CAPTURE</li></ul></div></div></blockquote><div> This flag is for features in the HTML Media Capture spec: <a href="http://www.w3.org/TR/html-media-capture/" class="">http://www.w3.org/TR/html-media-capture/</a></div><br class=""><blockquote type="cite" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><ul class=""><li class="">ENABLE_MEDIA_CONTROLS_SCRIPT</li></ul></div></div></blockquote><div> This is for the JavaScript-based <audio> and <video> controls some ports us.</div><br class=""><blockquote type="cite" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><ul class=""><li class="">ENABLE_MEDIA_SOURCE</li></ul></div></div></blockquote><div> This is for the Media Source Extension spec: <a href="http://www.w3.org/TR/media-source/" class="">http://www.w3.org/TR/media-source/</a></div> <br class=""><blockquote type="cite" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><ul class=""><li class="">ENABLE_MEDIA_STATISTICS</li></ul></div></div></blockquote><div> This is for an experimental HTMLMediaElement statistics feature enabled by some ports.</div><br class=""><blockquote type="cite" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><ul class=""><li class="">ENABLE_MEDIA_STREAM</li></ul></div></div></blockquote> This is for the Media Capture and Streams spec: <a href="http://w3c.github.io/mediacapture-main/" class="">http://w3c.github.io/mediacapture-main/</a><br class=""><blockquote type="cite" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><ul class=""><li class="">ENABLE_VIDEO</li></ul></div></div></blockquote><div> This is for <audio> and <video> in general.</div><br class=""><blockquote type="cite" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><ul class=""><li class="">ENABLE_VIDEO_TRACK</li></ul></div></div></blockquote><div> This is for WebVTT.</div><div><br class=""></div><div> You should not need to change any of these flags to build for the Mac.</div><div><br class=""></div><br class=""><blockquote type="cite" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">I turned those definitions to 1 and ON in the respective file and tried to build.</div><div class="">The code in the header WebCore/Modules/mediastream/mediastream.h could not compile apparently because the observer did not have a destructor. I created one:</div><div class=""><div class=""> class Observer {</div><div class=""> public:</div><div class=""> virtual void didAddOrRemoveTrack() = 0;</div><div class=""> virtual ~Observer() {};</div><div class=""> };</div></div><div class=""><br class=""></div></div></blockquote><div> It sounds like your sources are not up to date, I fixed this in <a href="https://trac.webkit.org/r175066" class="">https://trac.webkit.org/r175066</a></div><br class=""><blockquote type="cite" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><br class=""></div><div class="">I now have a linking error that I do not understand when building WebCore with Xcode. </div><div class=""><br class=""></div><div class=""><div style="margin: 0px 0px 0px 12px; text-indent: -12px; font-size: 11px; font-family: Menlo;" class="">Ld </div><div style="margin: 0px 0px 0px 12px; text-indent: -12px; font-size: 11px; font-family: Menlo; min-height: 13px;" class=""><br class=""></div><div style="margin: 0px 0px 0px 12px; text-indent: -12px; font-size: 11px; font-family: Menlo;" class="">Undefined symbols for architecture x86_64:</div><div style="margin: 0px 0px 0px 12px; text-indent: -12px; font-size: 11px; font-family: Menlo;" class=""> "__ZN7WebCore11JSNavigator18webkitGetUserMediaEPN3JSC9ExecStateE", referenced from:</div><div style="margin: 0px 0px 0px 12px; text-indent: -12px; font-size: 11px; font-family: Menlo;" class=""> __ZN7WebCore46jsNavigatorPrototypeFunctionWebkitGetUserMediaEPN3JSC9ExecStateE in JSNavigator.o</div><div style="margin: 0px 0px 0px 12px; text-indent: -12px; font-size: 11px; font-family: Menlo;" class=""> "__ZN7WebCore15RTCOfferOptions6createERKNS_10DictionaryERi", referenced from:</div><div style="margin: 0px 0px 0px 12px; text-indent: -12px; font-size: 11px; font-family: Menlo;" class=""> </div></div></div></blockquote><blockquote type="cite" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><div style="margin: 0px 0px 0px 12px; text-indent: -12px; font-size: 11px; font-family: Menlo;" class="">__ZN7WebCore17RTCPeerConnection11createOfferEN3WTF10PassRefPtrINS_29RTCSessionDescriptionCallbackEEENS2_INS_30RTCPeerConnectionErrorCallbackEEERKNS_10DictionaryERi in RTCPeerConnection.o</div><div style="margin: 0px 0px 0px 12px; text-indent: -12px; font-size: 11px; font-family: Menlo;" class=""> "__ZN7WebCore20MediaConstraintsMock17verifyConstraintsEN3WTF10PassRefPtrINS_16MediaConstraintsEEE", referenced from:</div><div style="margin: 0px 0px 0px 12px; text-indent: -12px; font-size: 11px; font-family: Menlo;" class=""> __ZN7WebCore21MockMediaStreamCenter26validateRequestConstraintsEN3WTF10PassRefPtrINS_25MediaStreamCreationClientEEENS2_INS_16MediaConstraintsEEES6_ in MockMediaStreamCenter.o</div><div style="margin: 0px 0px 0px 12px; text-indent: -12px; font-size: 11px; font-family: Menlo;" class=""> __ZN7WebCore21MockMediaStreamCenter17createMediaStreamEN3WTF10PassRefPtrINS_25MediaStreamCreationClientEEENS2_INS_16MediaConstraintsEEES6_ in MockMediaStreamCenter.o</div><div style="margin: 0px 0px 0px 12px; text-indent: -12px; font-size: 11px; font-family: Menlo;" class=""> "__ZN7WebCore21RTCOfferAnswerOptions6createERKNS_10DictionaryERi", referenced from:</div><div style="margin: 0px 0px 0px 12px; text-indent: -12px; font-size: 11px; font-family: Menlo;" class=""> __ZN7WebCore17RTCPeerConnection12createAnswerEN3WTF10PassRefPtrINS_29RTCSessionDescriptionCallbackEEENS2_INS_30RTCPeerConnectionErrorCallbackEEERKNS_10DictionaryERi in RTCPeerConnection.o</div><div style="margin: 0px 0px 0px 12px; text-indent: -12px; font-size: 11px; font-family: Menlo;" class=""> "__ZN7WebCore4toJSEPN3JSC9ExecStateEPNS_17JSDOMGlobalObjectEPNS_16RTCConfigurationE", referenced from:</div><div style="margin: 0px 0px 0px 12px; text-indent: -12px; font-size: 11px; font-family: Menlo;" class=""> __ZN7WebCore52jsRTCPeerConnectionPrototypeFunctionGetConfigurationEPN3JSC9ExecStateE in JSRTCPeerConnection.o</div><div style="margin: 0px 0px 0px 12px; text-indent: -12px; font-size: 11px; font-family: Menlo;" class="">ld: symbol(s) not found for architecture x86_64</div><div style="margin: 0px 0px 0px 12px; text-indent: -12px; font-size: 11px; font-family: Menlo;" class="">clang: error: linker command failed with exit code 1 (use -v to see invocation)</div></div><div class=""><div class=""><br class="webkit-block-placeholder"></div></div></div></blockquote><div> I don’t get these errors when I build, I suspect they will go away for you when you update your sources to TOT.</div><div><br class=""></div><div><br class=""></div><blockquote type="cite" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><div class=""><br class=""></div><div apple-content-edited="true" class=""><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">Is anyone used to turn the WebRTC code on and off?</div></div></div></div></blockquote><div><blockquote type="cite" class=""><br class=""></blockquote></div><div> WebKit’s WebRTC implementation is currently in a state of flux, moving from a platform API that maps closely to the RTC JavaScript API to a more abstract interface will make it easier to use different backend libraries. See bugs <a href="https://webkit.org/b/150165" class="">https://webkit.org/b/150165</a> and <a href="https://webkit.org/b/150166" class="">https://webkit.org/b/150166</a> for example.</div><div><br class=""></div><div>eric</div><div><br class=""></div><div><br class=""></div></div></body></html>