mozilla :: #media

20 Mar 2017
00:00mattwoodrowjya: Hmm, so looking at GetPictureRegion, it seems like when the change from 300->304 happens, wed still compute 300 for the size we use
00:01mattwoodrowLike mImageSize and ConfigureForSize() would be unchanged
00:02jyaAnd that's a bad thing?
00:02mattwoodrowNo, its a good thing
00:03mattwoodrowI think it means we can go with the previous plan of setting the size during Init()
00:03mattwoodrowif we do happen to get a stream_change, then we can ignore it (and maybe assert that it is indeed a no-op for the values we use)
00:06jyaSorry, it's quite late here, and I'm not sure I follow what you're saying. Will reconnect tomorrow first thing
10:45padenotSingingTree, yeah it's built in
12:34padenotpehrsons, ping
12:58jesupbenc: yeah, 10000 is pretty huge in practice. 1 second is not unreasonable for a time limit though; though I might ask for a keyframe before it gets to that point. In an SFU situation, though, keyframes are extra expensive since everyone gets them, so fast-forward recovery-by-retransmit is more preferred than in 1:1
12:59jesup10000 packets may be less extreme if you're talking 4K video on a Gbps LAN
13:00fippojesup: mreavy: any plans to hook up the urn:3gpp:video-orientation header extension? or shall I file an issue
13:02jesupfippo: yes, but I don't think a bug is filed on it yet. Feel free to do so. Probably after we land 57. 99% targeted to mobile use, but only avoids processing (somewhere) in certain orientations, so much of the time it doesn't matter a lot
13:05pehrsonspadenot: pong
13:07bencjesup: thanks
13:11jesupbenc: on the other hand, 100Mbps with 1400 byte packets is only ~7100 packets per second. 100Mbps would be a pretty darn high rate.... 10Mbps is far more reasonable for 4K, or even 15Mbps perhaps. So the limit is perhaps an order of magnitude above anything remotely practical. And perhaps that's ok, though I'd set it lower
13:14padenotpehrsons, so, are the MediaStream from a remote PC considered cross-origin ?
13:15pehrsonspadenot: no, normally not
13:15padenotpehrsons, have you been able to analyse a remote stream using Web Audio API ?
13:15padenotfor example
13:15padenotwe have reports that this does not work
13:16pehrsonsI'm pretty sure that has worked
13:16pehrsonsdon't we have tests for that?
13:16padenotI don't know
13:17pehrsonsthere's this bug where it's flagged cross-origin before dtls is connected (yeah, the stream gets exposed before that...)
13:18padenotwould that prevent it from working ?
13:18padenotmaybe we do log a message or something ?
13:18padenotsometimes we seem to log a message and then something changes and it works
13:18pehrsonsthere would normally be a warning in the log, and then when it's connected things should start working
14:02* sheppy still can't get DTMF code to work. Just tried it in dev edition; no go.
14:13mreavysheppy: talk with dminor about DTMF
14:14sheppymreavy: Yeah, I've been talking with dminor and jib about it for a few days.
14:14sheppyWe left off Friday with me running into a crash problem in Firefox that had to be debugged.
14:14sheppy(unrelated to media)
14:15mreavysheppy: hmmm... what are you trying to do?
14:15* mreavy is at an offsite so I may go quiet for extended periods this week
14:15sheppymreavy: I'm just working up sample code to use on MDN that shows briefly how to use DTMF. But not even jib's samples actually work on my computer for some reason.
14:28dminorsheppy: I just checked and the sample at "works for me" in nightly.
14:29sheppyYes, that one works for me. But jib's various fiddles, and my code based off the one you just linked to, don't. We're confused by it. :)
14:41achronoppadenot: could you try to repro bug 1343920? Fix works for me but not for the tester
14:41firebot FIXED, Headset unplugging/plugging results in audio playback despite video being muted
14:41padenotachronop, will do
14:42sheppyHm. The sample gets farther along if I use addStream instead of addTrack... hm.
14:42* sheppy tweaks the code to not use tracks if available, just to see what happens.
14:46sheppyHm, no change.
14:48padenotachronop, so, I think their STR are incorrect
14:48achronopwhat do you mean?
14:49padenotachronop, they seem to want us to click play to "resume" the video at some point
14:49achronopwhat about STR from Bug 1345049#c18 (should be the same)
14:49padenotbut youtube videos are autoplay and they don't say to pause
14:52padenotyeah, can't repro on this 2016 macbook
14:52padenotachronop, ^
14:52padenotit works fine, and I remember I could repro using the same steps, before you fixed it
14:52achronopthanks! (10.12 I guess)
14:54padenot10.12.3 yeah
15:14jyamattwoodrow|away: unfortunately, simply calling ConfigureVideoFrameGeometry when MF_E_TRANSFORM_STREAM_CHANGE was called didn't help. It makes for some very weird artifacts. like in this particular test case, a small corner with a video over a big green square. The resolution is obviously not yet set somehow
15:16jyare-reading your comment about GetPictureRegion returning the right size, I had removed this code in the existing change. As we no longer used ConfigureVideoFrameGeometry
15:21padenotachronop, I think %zu is okay on VS2013 and VS2015
17:09fipposheppy:!topic/blink-dev/0aTOUhS0wCY -- if its not on MDN it doesn't exist! :-)
17:11sheppyfippo: replied :D
17:55ngfippo: ping
17:56fippong: pong
17:56ngfippo: In I don't seem to be getting a gUM prompt in Fx on Windows (10) without a camera.
18:07mstangejesup: oops @ - looks like I noticed the bug when I added the thread name, filed it, and then forgot about it
18:07firebotBug 1324903 DUPLICATE, IdentityCryptoService::GenerateKeyPair creates a thread and never shuts it down
18:08fippong: let me check...
18:09fippong: ugh. fall-out from a change earlier today
18:10ngfippo: no worries, thanks for looking
18:11ngfippo: my friends pointed the finger at me when it wasn't working last night for them, so I thought I would just pass it on :p
18:24bencwhat is the nack sender side buffer on firefox?
18:25benchow many packets does it keep to respond to nack?
18:36drnobenc: I dont think that is Firefox specific. Im pretty sure that is code. jesup ^ ?
18:43bencdrno: probably code. I've found the dropped nack buffer.
18:43benclooking for the sender side retransmit buffer
19:01fippong: classic case of "hrm... all the tests continue to work" (i don't know a way to simulate only a audio or video device). fix incoming...
19:25sheppydminor: So... I have this example I've thrown together for DTMF. For me, it works in Chrome but not in Firefox. I've tried it in Firefox both with and without allowing it to use addTrack() [see line 51, where I've disabled the code to check for it, so it uses addStream() instead.
19:26sheppydminor: Does it work for you in both Chrome and Firefox? I get quite different output in the log box; the Firefox log never does any ICE candidate exchange at all, unlike on Chrome, where candidates are exchanged.
19:27sheppyOn Chrome, the log is:
19:27sheppyOn Firefox, it's:
19:47dminorsheppy: sorry for the delay, your example works for me in both nightly and Chrome.
19:47sheppydminor: what the...
19:48sheppydminor: are there any settings you can think of that might break it?
19:48drnosheppy: Im slowly getting concerned that you have some ICE problems on your machine
19:48sheppydrno: Yeah....
19:48sheppySome examples are working, but not others.
19:48dminorsheppy: it appears your connection is not being established, as drno says
19:49dminorso you're not even getting to the part where dtmf could fail for you :)
19:49sheppyRight, it's not a DTMF failure, you're right.
19:49sheppyI'm trying to think of what might cause ICE to fail to exchange candidates.
19:50sheppyEach side does offer or answer as appropriate, and sets that as its local and the other's remote, and sends the SDP along... what I don't get is why that's the only thing that gets exchanged.
19:50drnosheppy: can you send me a clean copy of the about:webrtc from one of the failures?
19:50sheppydrno: yeah, give me a few minutes
19:51drnosheppy: it sounds like your PeerConnection dont even generate ICE candidates that would result in nother further getting exchanged, and therefore also the connection not being established
19:51drnosheppy: which OS is that on?
19:51sheppymacOS 10.12.4 beta
19:52drnosheppy: BTW your fiddle work for me in Chrome and Fx 54
19:52drnoon macOS 10.12.3
19:53drnoHopefully you are not the messenger which tells us that Fx ICE is completely broken on macOS 10.12.4 :-O
19:53sheppySame thing for me on 10.12.3 too.
19:53sheppyDoesn't work there either.
19:53drnoso yeah if you could open about:webrtc. click the buttons to clean out all the logs from previous attempts
19:54drnothen run your fiddle and send me a copy of the resulting about:webrtc page please :)
19:54sheppyDoing this in tandem with a meeting, so time slicing :)
19:57sheppydrno: do I need to start debug mode or aec logging or just do a connection and then share that stuff from the resulting log under session statistics or...?
19:57drnono debug mode, not aec logging
19:58drnojust the conneciton log at the bottom and the session statistics should be enough initially
19:58sheppyyep okay
19:58drnoso basically just hit save page :)
19:58sheppythere's nothing.
19:58sheppyat all.
19:59drnoso even the session statistics section doesnt show anything?
20:00jesupsheppy: content process crashed and restarted?
20:00sheppyWhich is weird, because I'm creating offers and setting local/remote descriptions on both ends and all... weird.
20:00sheppyjesup: No crash or anything, no... why?
20:00jesupMaybe this is an issue with multiple content processes...
20:00drnosheppy: are you catching errors from the setting the local/remote descriptions? ;) :)
20:00sheppydrno: yes
20:00sheppyno errors
20:01drnoit behaves as if you have disabled webrtc. but then I would expect you get JS errors left and right
20:01sheppyAt least I went through a period of having to debug failed setLocalDescription and whatnot...
20:01sheppydrno: And other examples work fine.
20:01sheppyOnly one, actually, that I've found so far.
20:04drnosheppy: and what shows the logging from the fiddle itself?
20:05sheppyThat's the entire console from it
20:06drnosorry I did not mean the console I meant your JS logging into the DOM space on the right hand side
20:06sheppyThat's the link
20:07sheppyIt looks almost as if it's not doing trickle ice, so it never sends icecandidate events.
20:07sheppyICE state goes to gathering, then eventually complete, without actually exchanging anything.
20:08drnoit switched from gathering to completed way to fast
20:08sheppydrno: yeah
20:08sheppyWhat I don't get is why.
20:08drnofor me it starts gathering between offer and answer
20:09drnobut gathering only finishes after the answer shows up in the log
20:09sheppyOn my Chrome, it never changes to "gathering"
20:09drnoI think Chrome does not support the gathering state properly
20:09drnodoes it help if you add a STUN server to the PeerConnection?
20:11drnosheppy: BTW same here my Chrome never shows any ICE gathering state updates
20:11sheppydrno: I don't know... would have to find one :)
20:11sheppydrno: OK
20:11fippodrno: i just shipped that in canary
20:11drnosheppy: hold on...
20:15drnosheppy: try this:
20:15sheppyNo change.
20:15sheppyOh wait.
20:15sheppyCandidates did get added eventually.
20:16sheppyThe DTMF never played, but the candidates came in
20:16sheppyIn the console: "ICE failed, add a TURN server and see about:webrtc for more details"
20:16sheppyabout:webrtc still shows nothing.
20:16sheppyAh, reloading it helps
20:19jesupabout:webrtc isn't live; need to reload it to see changes
20:19sheppyyeah, I'm an idiot :)
20:19sheppyTrying my original one again first here.
20:19drnookay. so if you get candidates with my modified version, but not without it, then you must have one of the IP restriction prefs set
20:19jesupIf we put a 'Reload' button on it, it would be more obvious
20:20sheppyOn mine, here's the connection log:
20:20drnojesup: ^ sounds like a bug report :)
20:21sheppydrno: sure does
20:21drnosheppy: I would be more interested in the logging from your fiddle again :)
20:21sheppyThat was my fiddle.
20:21sheppyYours is way longer, with many more errors. :)
20:21drnooh now I get what you are saying
20:22sheppydrno: yours is:
20:22sheppyOK, not errors. Just longer.
20:23sheppyWhat's interesting is that the statistics look about the same.
20:23drnosheppy: can you please open about:config and search for peerconnection
20:23drnoand check if you have any modified values in that list?
20:24sheppyYeah, two... which might be the issue. I dunno why they're changed, either.
20:24drnoI suspect that you have toggled is true, and media.peerconnn -- yes.
20:24* sheppy turns those back to normal.
20:24sheppyWonder how that happened...
20:24sheppyI bet it was doing a test of something way back and I forgot to turn it back.
20:25drnodid you ever play around with an add-on which shows you peerconnection usage or something like that?
20:25drnoor that :)
20:25* drno crosses fingers that it works now
20:25sheppyWell... it works, in that the tonechange events fire.
20:25sheppyI don't hear tones, but the events fire.
20:25sheppySo that's progress.
20:26drnoat least it connected! :D
20:26sheppyThat was like 9 business days wasted because of a borked preference. :)
20:26drnothat means we need better logging :)
20:27sheppyohh hm
20:34drnosheppy: just to confirm you had AND toggled?
20:34sheppydrno: Yes
20:35drnothat is pretty deadly combination if you dont have any STUN or TURN servers configured :)
20:35drnowe should probably add a log warning about that combination
20:47sheppyI suspect I had it set that way to test a specific issue back when I was last working on this stuff, and forgot to fix it.
20:47sheppySomeone told me I should hear tones in Firefox when doing DTMF, but I don't. I do in Chrome though.
20:48sheppyOther than that, things are working great.
20:52ngYeah, audio hallucinations are a sign of having done too much DTMF.
20:53fippong: fixed, thanks!
20:53fippo(and I also killed ugly code along the way)
20:53drnofippo: can you share the patch file for that please?
20:54ngfippo: any time
20:56drnosheppy: not hearing tones playing is again in your famous fiddle?
20:57sheppydrno: yeah
20:58drnosheppy: I hear tones in Fx 54
20:58sheppyActually, I don't get them in any that I try.
21:01fippodrno: its too painful :-p
21:02sheppyWhy does Firefox hate me? I give it love. I write nice things about it. I've given it 11 years of my life, and this is how it treats me!?
21:04sheppyHm, is there some kind of volume setting for DTMF?
21:04cpearceanyone know how to make mach clang-format format a changeset that isn't the tip? I `hg up` to a changeset, and then run `mach clang-format`, but it's changing things that I didn't touch in my current changeset (but I did change those lines in other changesets which are not yet applied to my working directory).
21:04drnosheppy: I did not touch anything. Just regular head phones
21:04cpearcejya: ^^ ?
21:07jyacpearce: I nver use mach clang-format
21:08jyaI don't see how you could use clang-format on any commit without rewriting history..
21:08jyawith git I would use rebase interactive and edit each commit manually
21:09cpearcejya: I use `hg evolve` and sometimes `hg histedit` which do history rewriting.
21:09cpearcejya: I've figured out the problem; kentuckyfriedtakahe used "-r tip^" in the mach command instead of "-r .^"
21:09jyai also don't trust to use mach clang-format, instead I use Visual Studio (Code or Studio) with the clang plugin, and I apply it manually on the selection
21:11* sheppy still finds it slightly weird that candidates can keep coming in even after the connection is established :)
21:12cpearcejya: I am going through and clang formatting my stack of patches in bug 1315850... not looking forward to the merge conflicts!
21:12firebot NEW, [EME] Implement ChromiumCDM as native GMP API
21:12fipposheppy: trust me, this is much better than chromes behaviour to stop gathering when the connection is up...
21:12sheppyfippo: :)
21:12cpearcejya: but I think clang-format is useful. sometimes I despise its indentation however.
21:12sheppyfippo: It totally makes sense given what I know about WebRTC, it just looks so weird in logs. :)
21:12jyacpearce: hence why I don't use
21:14cpearcejya: I'm confused. I thought you were going through formatting dom/media? Or do you mean that you only apply it selectively where you like it's formatting?
21:15jyacpearce: I am..
21:15jyabut not using ./mach clang-format
21:15jyaand as I mentioned above, I apply it selectively on text. I always do it manually
21:16jyagoing over every single line
21:16cpearceI see. I won't feel bad about discarding the changes that I don't like then. It's not the same workflow as you, but its functionally equivalent.
21:17jyathe other thing was that clang-format in mozilla mode, isn't 100% per the coding standard
21:17jyai also dislike how it cuts the arguments before cutting the return type
22:06sheppyHm. What do I have to do at the end of a call to get the mic in use icon to stop flashing? :)
22:06sheppyI've closed the RTCPeerConnection, set the audio element's srcObject to null, called stop() on the audio...
22:16cpearcegerald: I'm confused by your review comments in bug 1315850 patch 1. Are you saying that the protected methods of PChromiumCDMChild that ChromiumCDMChild overrides become public (instead of protected like in the base class) because PChromiumCDMChild is publicly inherited?
22:16firebot NEW, [EME] Implement ChromiumCDM as native GMP API
22:16cpearcegerald: If methods are protected in the base class I'd expect the overrides to be protected too. is that not the case?
22:17geraldcpearce: I'm saying the original (pure?) virtual functions were public, so they should stay public in derived classes.
22:17geraldcpearce: Oh, they were protected? Good then :-)
22:18cpearcegerald: ok cool.
22:18cpearceFor a minute there I thought I might have to learn something.
22:26geraldcpearce: Sorry, it was my time to learn something!... However I see in other places, that overrides of some protected Recv... functions were made public! E.g.:
22:26geraldNot sure it's as bad though, to expose more than what was in the superclass.
22:27cpearcegerald: ok. I'll file a follow up to fix those.
22:27geraldcpearce: P5? :-P
22:30cpearcegerald: bug 1349007
22:30firebot NEW, Some GMP overrides of protected methods are public
23:21drnojesup: FYI I just had a 1:1 call with the A/V sync issue
23:23drnojesup: the other side was a MacBook Pro on macOS sierra, Fx 53. He was using earplugs.
23:24jesupdrno: Ok. Whose video lost sync? I assume video was no delay, audio increasing delay?
23:24drnoAn interesting observation was that he pointed out that he had moved the call into its own window. That is something which we havent payed attention to so far.
23:24drnoWhen he spoke to me video and audio drifted further and further appart
23:24jesupI vaguely remember someone reporting something like that, but maybe not.
23:25benc1jesup: I had A/V sync issue in Firefox
23:25drnoI did not wanted to hassle him with the debug instructions from Paul. But maybe the observation regarding the new window is something to follow up on on Wed
23:26benc1but I've found that I don't respond to nack properly so it might by SFU bug. I'll keep testing
23:26jesupbenc1: that could mess things up; I don't think that's the problem we're hunting here
23:26jesupdrno: AFK dinner, will be back later
23:29benc1jesup: makes sense
21 Mar 2017
No messages
Last message: 4 days and 16 hours ago