IRC Log Viewer » #firebreath » 2011-03-16

IRC Nick Time (GMT-7) Message
taxilian 00:03 .findfile src/scriptingcore/jsapi\..*
FireBreathBot 00:03 TypeError: not enough arguments for format string (file "/home/richard/phenny/", line 186, in call)
taxilian 00:03 .findfile src/.*/JSAPI\..*
FireBreathBot 00:03 TypeError: not enough arguments for format string (file "/home/richard/phenny/", line 186, in call)
taxilian 00:03 .findfile src/.*/JSAPI\..*
FireBreathBot 00:03 Found 2 matching file(s) in the master branch. First 2 are:
taxilian 00:03 .findfile FBTestPlugin
FireBreathBot 00:03 Found 25 matching file(s) in the master branch. First 5 are:
taxilian 00:03 .findfile FBTestPlugin\.
FireBreathBot 00:03 Found 2 matching file(s) in the master branch. First 2 are:
taxilian 00:03 .findfile projectDef.cmake
FireBreathBot 00:03 Found 8 matching file(s) in the master branch. First 5 are:
genarek 06:03 Hi, I remember finding a way to write to the browser statusbar from inside a NPAPI Plugin. I can't remember anymore where it was or if it was in firebreath docs somewhere. Anybody knows how to do this?
Ed___ 06:03 hi
Anyone seen problems with NPAPI BrowserStreams ignoring the dont cache directive?
First request I see is requested from the server, but subsequently the server does not see a request until I clear the browser cache.
I do see that IE added the no-cache directive to the headers, but this is not present for firefox or chrome requests.
anyone know if this is an NPAPI limitation?
Ed___ 06:03 Anyone know if NPAPI supports non-cached stream requests? Works in IE :(, but not in Firefox or Chrome..
nitrogenycs 06:03 you can append some varying parameter to the url, e.g. ""
Ed___ 06:03 sure, I can work around by randomizing the url.
just wanted to check whether this is expected or a bug..
nitrogenycs 06:03 but the GetUrl in npapi works the same way as in the normal browser
I think it's a bug on the server side
Ed___ 06:03 second request doesnt get to server
nitrogenycs 06:03 if you do a GetURL the server should still receive a request
then it should not answer with a 304
Ed___ 06:03 first request does not include the non-cache directive..
nitrogenycs 06:03 if the file has changed
I think it doesn't have to, but I am no guru
your server needs to return a Cache-Control header
Ed___ 06:03 I could try it that way too..
In IE, I do see a cache directive in the request and every following request.
Just trying to understand whether this is a limitation of NPAPI, or a firebreath related thing..
nitrogenycs 06:03 yes, you can set the request headers with the activex streams implementation. unfortunately you cannot control the request headers with npapi :(
Ed___ 06:03 Ah yep. So looks like that might be the reason. That is what I was looking for.
nitrogenycs 06:03 these are the functions we can use to pull the url thourgh npapi and none of them features a field for headers :(
Ed___ 06:03 That is what I figured, just didnt know exactly what to look for.
That's cool. I can just ensure I randomize the URL as you suggested. Probably best anyway..
nitrogenycs 06:03 see also:
Ed___ 06:03 Nice one nitrogenycs; I think that pretty much covers it.
FYI: Wireshark confirms a local cache hit rather than a request and a 304..
nitrogenycs 07:03 I guess you need the must-revalidate thing then
it seems to tell the client to ping the server each time about the status
I thought that's what would always happen by default, but obviously not
there's also the no-cache and max-age thing
Ed___ 07:03 Hi nitrogenycs; Dropped out there second. What is the must-revalidate?
I guess if I am requesting non-cache, it makes sense to try as much as possible to force that..
nitrogenycs 07:03 there seem to be quite a few ways to send the cache-relatd headers
there's expires
and no-cache
and the must-revlidate
Pragma: no-cache
Ed___ 07:03 indeed.
nitrogenycs 07:03 I am no expert in http headers and caching, you might need to look round a bit
Ed___ 07:03 the server-side is fine. i just need to avoid the local cache.
nitrogenycs 07:03
section 14.9.4 lists quite a few options
ahh no
that's for the client side
Ed___ 07:03 but if we cant set headers via NPAPI, then all these dont help.
nitrogenycs 07:03 yeah, I just saw
but there must be a reason why the browser is not asking the server again
Ed___ 07:03 ah I see; you mean force the server to declare it as non-cachable.
nitrogenycs 07:03 yes
If the server tells the browser "you can cache this forever" then the client won't make a new request of course
and that might be the behaviour you're seeing
Ed___ 07:03 Yeh, pretty sure I can solve it that way. Or a randomized URL.
nitrogenycs 07:03 there seem to be ways for the server to tell the client to re-request each time
yeah, random urls do the same
Ed___ 07:03 I should be able to set that on the server no problem.
a tweak to a .htaccess I am sure..
That's fine anyway. Just wanted to verify there wasn't anything more I could do on the client/plugin side.
Thanks for the answers.
nitrogenycs 07:03 :) np, I wish npapi had support for headers
I could've used them in more than one occasion
Ed___ 07:03 I can see it might be a security issue, but frustration nonetheless
nitrogenycs 07:03 hmm, why do you think it might be a security issue?
Ed___ 07:03 well, phishing / privacy
add any old headers with private info. maybe they decided that rather than police it, just prevent it..
dunno. just trying to see why they might have no included it..
nitrogenycs 07:03 hmm, your plugin can always put data into the url as well. Or it could just use curl to send the headers as it likes to...
Ed___ 07:03 yes, fair enough
or fire up a completely independent request themselves.
yes. pointless
nitrogenycs 07:03 they moment people install your plugin they are doomed ^^
Ed___ 07:03 ha ha! you discovered my plan..
nitrogenycs; Thanks again for the help and pointers. TTFN
taxilian 08:03 FireBreathBot: tell gerarek the setstatus function in NPAPI is deprecated and doesnt work on all browsers, sok we dont support it
FireBreathBot 08:03 taxilian: I'll pass that on when gerarek is around.
dan2 09:03 morning guys
taxilian, your fixes did seem to fix the problem
going to go grab some breakfast
taxilian 09:03 dan2: glad to hear it. I'm about to head to work, will be online afterwords
neilg_: I am far too easily amused...
.findfile Win.cmake
FireBreathBot 09:03 Found 1 matching file(s) in the master branch. First 1 are:
taxilian 09:03 =]
neilg_ 09:03 Heh!
Have fun :)
nitrogenycs 09:03 haha, the "tell" thing is too cool
taxilian 09:03 FireBreathBot: tell nitrogenycs: I can't take credit for "tell"; it came with the phenny ircbot that I'm using. (and our extensions are at
FireBreathBot 09:03 taxilian: I'll pass that on when nitrogenycs is around.
neilg_ 10:03 FireBreathBot: tell neilg_: You did this!
FireBreathBot 10:03 You can tell yourself that.
neilg_ 10:03 Aw. :(
taxilian 10:03 FireBreathBot: tell neilg_: sucker
FireBreathBot 10:03 taxilian: I'll pass that on when neilg_ is around.
taxilian 10:03 the next time you say something he'll tell you
neilg_ 10:03 Oh?
FireBreathBot 10:03 neilg_: 16:22Z <taxilian> tell neilg_ sucker
neilg_ 10:03 Bah!
nitrogenycs 10:03 lol
FireBreathBot 10:03 nitrogenycs: 15:57Z <taxilian> tell nitrogenycs I can't take credit for "tell"; it came with the phenny ircbot that I'm using. (and our extensions are at
nitrogenycs 10:03 :)
he's a bit late
taxilian 10:03 he only relays the message when he sees them say something, it seems
nitrogenycs 10:03 ahh ok
taxilian 10:03 so that you know they are really there, I imainge
nitrogenycs 10:03 ok
taxilian 10:03 brb
blazevit 11:03 Hi guys. I am wondering how to pass -ext WinNetFxExtension to wix through firebreath cmake files
I have a plugin that uses .NET presence checking available in wix 3.5 (since my plugin is dependent on .net)
in order to use this, I need to add another extension parameter (-ext WinNetFxExtension) to candle and light tools
and I can't seem to do that without modifying the firebreath source files
Any hints?
taxilian 11:03 hang on, I'm in a meeting
blazevit 11:03 ok
jshanab_wcw 12:03 taxilian. I heard you were working on a video player for multiple streams. Id like to ask a few Questions. (can be offline)
taxilian 12:03 you may ask questions; I will answer if I can, when I can; blazevit is still waiting for me to help him with wix
almost done
jshanab_wcw 12:03 ok, ping me when you are done, no rush.
taxilian 12:03 blazevit: which command needs the extension parameter?
!findfile wi..cmake
.findfile wi..cmake
FireBreathBot 12:03 Found 2 matching file(s) in the master branch. First 2 are:
taxilian 12:03 blazevit: is the add_wix_installer function; it looks like there are WIX_CANDLE_FLAGS and WIX_LINK_FLAGS
which you can set before you call add_wix_installer to add flags
jshanab_wcw: feel free to ask when ready; I may be a little slow at responding is all
jshanab_wcw 12:03 I was writing a player based on live555 and libavcodec and it was being a pain, so we are trying libvlc instead. (1 level up) I was wondering what kind of libraries or arch you have, we have a decent amount of latency with libvlc
blazevit 12:03 taxilian: it says in the docs that i need this for both light and the original FireBreath sources -ext WixUtilExtension and -ext WixUIExtension are added throught EXT_FLAGS in cmake/win.cmake...
I cannot set EXT_FLAGS in my own cmake files as the variable is reset in win.cmake
setting WIX_LINK_FLAGS works... I just hope it's future proof :)
accodring to the name I would expect to pass this via EXT_FLAGS (as default extensions are)
taxilian 12:03 it should be
I don't plan to change it
jshanab_wcw: we have our own video streaming protocol; we use h.264 and AAC currently, but we used to use VP7
jshanab_wcw 12:03 What are the benifets of your own protocol, I think I am giving up all my statistics, reverse play by frame and random access to anywher in the video.
taxilian 12:03 jshanab_wcw: are you familiar with the concept of Adaptive Bitrate HTTP streaming?
jshanab_wcw 12:03 taxilian. I have heard of it, but it slips my mond at the moment. Is that for smooth bandwidth throttling
taxilian 12:03 kinda; the company I'm working for actually pioneered the technology; it's been doing it for about 6 years now. It can adjust the profile (bitrate, resolution, etc) of the video frames to make the best use of your available bandwidth
no buffering, etc
actually makes it possible to watch live video online without waiting for it to stop and buffer all the time
jshanab_wcw 12:03 Sounds awsome
taxilian 12:03 it's actually pretty amazing; Microsoft copied it with SmoothStream, Adobe with their HTTP Adaptive stuff, and apple's adaptive video stuff for ipad and iphone, but nobody else has managed to make it work at nearly the same quality
after I left the company I spent 6 months trying to do similar stuff with those other technologies; it's just not there yet
now I'm back contracting for them
they're using FireBreath going forward
this is where I learned plugin stuff, actually
jshanab_wcw 12:03 very nice. Is this plugin for sale?
taxilian 12:03 unfortunately, no. it's a pretty closed system
also requires special encoders
jshanab_wcw 12:03 ok, thanks. It does sound like you are either transcodeing or have special hardware. I want to do something similar using openCL or CUDA
taxilian 12:03 it's a little more complicated than that, but we do have to transcode it ahead of time into the correct format, correct parameters, etc, so that it can be segmented in 2 second chunks
and 11 to 14 different profiles
jshanab_wcw 12:03 Wow, taht is a small chunck and a lot of profiles.
taxilian 12:03 every two seconds it may or may not change profiles mid-stream
also useful for trick play -- seek to a particular place, just need to get the right streamlet
there is obviously a whole lot of "magic" going on behind the scenes
but that's the basics
blazevit 12:03 taxilian, thanks a lot for your help.
taxilian 12:03 blazevit: glad I could help; would you mind adding that to the wiki for the next person?
either under the wix section or in tips and tricks, probably woudl be the best places
jshanab_wcw 12:03 I was working to the GOP level for h264, it is just a lack of hardware acceleration at this point that kills me.
taxilian 12:03 jshanab_wcw: the other thing that could kill you for h264 is the licensing fees
!wiki wix
FireBreathBot 12:03 8 results found. Note: Results limited to 8
"WiX Installer Help":
"Deploying and updating your plugin":
"Building on Windows":
"Re: Potential Installer Improvements":
"Documentation To-Do":
"FireBreath 1.4.0 Released!":
"Using FireBreath":
"Re: Potential Installer Improvements":
jshanab_wcw 12:03 licensing fees? I thought that was gone indefinitly for Decoding
taxilian 12:03 certain types of entities it's free 'til 2014, last I heard
but if it's commercial at all (flash and silverlight qualify) you have to pay for it
jshanab_wcw 12:03 low end security cameras are puting out ultra-simpole h264 streams, mostly so they can put "h264" on the box
taxilian 12:03 right; but when you charge for the hardware, it's easy to include a cheap "per-camera" license fee in the price
when you're deploying a plugin and have to pay a small fee for every *install* (not computer, install), it gets pricy
jshanab_wcw 12:03 The fees are on encoding. What happens when you use something like x264, open source?
taxilian 12:03 there are serious legal issues with x264
jshanab_wcw 12:03 humm. I thought the spec was wide opena nd anyone could implement it. I would be satisfied if the @@#@# manufact put out a valid stream. mine was [7 8 5][1][1][1]...[781][1]... where the second key frame is being taged as type 1 :-(
taxilian 12:03 take a look at
jshanab_wcw 12:03 thanks
taxilian 12:03 yeah, you're already deeper into the implementation than I have gotten
I'm not 100% sure the info there is all valid, but it looks close from a *very* quick look
I'm not an expert, just know the things I've heard around here
jshanab_wcw 12:03 well with the live555, which is a pull system, I had to get each frame, aggregaste and send to decoder. I was loosing 1/2 of every second because a 1, the size of a key frame, following the 7 and 8 was "invlaid and dropped
taxilian 12:03 heh. fun
jshanab_wcw 12:03 I thought it was a decoding problem for a week, I have no hair left
taxilian 12:03 yeah, I hate dealing with crap like that
jshanab_wcw 12:03 Espicailly cause I could not find help. h264 is so vauge on the net
doxygen does not cut it
taxilian 12:03 yeah
jshanab_wcw 12:03 I mean, it can, but bad doxygen is just autogenerated bad documentation
blazevit 13:03 taxillian I've partially documented the case in Wix Installer Help but cannot complete/format the contribution
something is off with confluence
can't get into wiki markup mode
can't login after I've logged out :(
taxilian 13:03 blazebit: I'll try it
huh. I'm having similar issues; very strange. thanks for mentioning that
I might have to wait 'til tonight to fix it :-/
blazevit 14:03 yeah, my thoughts exactly... I'll try to update later too
jshanab_wcw 14:03 Only if the moon is full ;-)
taxilian 15:03 I'm working right now, so I don't have time to try to figure out why confluence is suddenly acting weird :-/ thanks for being willing, blazevit
I'll try to fix it tonight
dan2 17:03 taxilian, man I need some JS help
how do I grab the top level browser window through a callback from the plugin
e.g. event
taxilian 17:03 you are using frames?
stuartmorgan: Any idea why Chrome on 10.5 would return false for all "do you support drawing model ...."?
stuartmorgan 17:03 Should only return false for original CA
taxilian 17:03 but ICA should work?
stuartmorgan 17:03 Yes
taxilian 17:03 hmm. it seems to be returning false for all of them
need to add more log statements, verify something else isn't happening; but it hit the fall through for "everything returned false" branch of the code
stuartmorgan 17:03 Maybe only the CA define was set in FB?
taxilian 17:03 works fine on 10.6 box, same binary :-/
stuartmorgan 17:03 I haven't actually set up any unit tests for negotiation so it's theoretically possible that it broke
But I can't imagine nobody would have noticed
taxilian 17:03 does seem a bit strange
stuartmorgan 17:03 And that code doesn't really change
Plus, it's pretty straightforward
taxilian 17:03 I'll let you know what we find; just wanted to check to see if you knew something that might save us time =]
stuartmorgan 17:03
Not much room for mistakes there...
taxilian 17:03 thanks! saves me time trying to find it
dan2 17:03 taxilian, opening new xul dialogs... need to grab the toolbar's plugin instance
taxilian 17:03 dan2: hmm. not really certain, in that case; there might be a window.parent
dan2 17:03 tried that
hasn't worked so far
neither has
stuartmorgan 17:03 taxilian: if you only have your USE_COREANIMATION and USE_QUICKDRAW set, you'd get the behavior you are describing
taxilian 17:03 yeah, we figured that out just now
because you're pretending not to support QUICKDRAW
stuartmorgan 17:03 Yes
taxilian 17:03 fair enough; thanks
that helps a lot
stuartmorgan 17:03 I'm not clear on why you have separate defines for the two CA modes, btw
Isn't FB supposed to abstract the invalidate call?
taxilian 17:03 I'm not either; probably will fix that
it should
stuartmorgan 17:03 I worry that as is, a lot of people will not use ICA out of ignorance/oversight
which would be a shame, perf-wise
taxilian 17:03 right
I'm having a hard time convincing Eric to use it, and I'm not sure why :-P
but we'll switch to use it and update it in FireBreath
with ICA... do we draw and then call invalidate, or do we invalidate and then it calls us to draw?
stuartmorgan 17:03 draw and then call invalidate
I may remove original CA support without warning, if that helps convince him. The same is true of Firefox, given that they seriously discussed allowing only one or two whitelisted plugins to use it
taxilian 17:03 lol
so with original CA support, are you just using a timer and pulling the bits out?
stuartmorgan 17:03 Yes
taxilian 17:03 so why does it matter if we draw and then your timer pulls it vs we draw and tell you to pull it? (questions from Eric)
also, what is the frequency that timer runs at?
stuartmorgan 17:03 Do you draw 100 times per second all the time?
It's a 100Hz timer
And we have to run it all the time
If you pause your movie, it's still running
If you are showing a static image in a layer, it's still running
taxilian 17:03 the question is then raised "if the screen refreshes at 60hz, why refresh the CALayer more than that?" =]
stuartmorgan 17:03 (Frankly the original CA spec should never have existed.)
taxilian 17:03 but your point is taken =]
stuartmorgan 17:03 I forget offhand why we picked 100
I think it was to avoid potentially always being a full cycle behind, but it's been a while
taxilian 17:03 ahh
stuartmorgan 17:03 I didn't put a lot of effort into tuning it because we don't want anyone using it
taxilian 17:03 heh
stuartmorgan 17:03 I didn't add enforcement to the negotiation because I didn't want to end up with plugins trying to use QuickDraw in Chrome
taxilian 17:03 AGL works quite nicely in Chrome, btw :-P
stuartmorgan 17:03 But if I find that new plugins are deliberately not using the right model, thus hurting performance in non-Safari browsers, I'll revisit that decision
Users should not have to suffer for the fact that Apple created a drawing model that only they can implement out of process
taxilian: you mean negotiation QD? It really doesn't
taxilian 18:03 actually, we've done a lot of tests... it seems to work quite well. performs well even
don't know why
stuartmorgan 18:03 Are you showing video?
taxilian 18:03 yes
30 fps or so
stuartmorgan 18:03 Then you are testing the wrong configs, or your videos are small
taxilian 18:03 LOL. 720p 4mbps frames? live television?
I wouldn't call that small
I'll look into it more and let you know
maybe they haven't tested it on the older boxes
anyway, I gotta run now
stuartmorgan 18:03 Users reported unwatchable QuickTime performance on 10.5
taxilian 18:03 thanks for your help!
stuartmorgan 18:03 I had to add a horrible second code path to make QT livable for 10.5 users
taxilian 18:03 I'll let you know what we find out; of course, we're planning to use ICA for chrome anyway (I think), but always nice to know what options are and how they do
taxilian 21:03 nirvdrum: finally got jira and fisheye integrated
nirvdrum 21:03 sweet
taxilian 21:03 blazevit: anybody's guess why, but the wiki seems to be working correctly now
nirvdrum 21:03 And they just released new versions of everything :-R
taxilian 21:03 hehe
nirvdrum 21:03 :-P even
taxilian 21:03 yeah, I noticed
I'm using the RC of fisheye and jira, I think
but confluence I'd really like to update
just scared to update a live site like that
any idea how integration between confluence and jira works? what you can do?
nirvdrum 22:03 I haven't done it in years.
But I used to do it so I could embed jira queries in Confluence pages.
It'd generate that nice table.
Mostly for milestone tracking.
Confluence upgrades tend to go pretty smoothly. JIRA upgrades are a pain in the dick.
taxilian 22:03 hmm. will have to try the confluence upgrade
the latest round of atlassian systems (judging by crowd, jira, and fisheye that I just installed) have some much better integration options
would be nice to have
maybe would perform better too is a little slow
nirvdrum 22:03 Bumping the thread count and/or heap size tend to speed it up.
taxilian 22:03 I will try that
going to try an upgrade first
(with a copy of the live data)
that way the worst that happens is I lose someone's edit when I upgrade
but I get email notifications on that, so I could redo it if needed
taxilian 22:03 hmm. well, so much for that idea
at least I backed it all up first
nirvdrum 23:03 Heh.
Man, I need to get some sleep.
Hopefully this scotch will get me through the night.
taxilian 23:03 lol
so I have it up and working... except it isn't authenticating against crowd properly
so I disabled crowd but turns out the users aren't in confluence anymore
so there are no users
nirvdrum 23:03 I've never used crowd, so you're on your own for that one :-)
taxilian 23:03 kinda annoying, actually
nirvdrum 23:03 Most I've done is had Confluence auth from JIRA.
Dunno if they even support that anymore.
taxilian 23:03 they do
but I couldn't import the users into jira from confluence
nirvdrum 23:03 I may have backed it with ActiveDirectory at one point, but I don't really recall.
taxilian 23:03 so I had to set up crowd
nirvdrum 23:03 Crowd also cost $1,200 for the license the last time I really set everything up :-P
taxilian 23:03 lol
nirvdrum 23:03 These $10 licenses are wonderful.
taxilian 23:03 well, open source licenses... =]
nirvdrum 23:03 When I ran my last company, despite there only being 3 of us, I dropped probably $15k on their products.
taxilian 23:03 ouch
nirvdrum 23:03 Nowadays that would cost me about $30 and it'd go to charity.
Actually, that's what I'm doing for mogotest.
Yeah. It was pricey, but they were the best tools for the job.
taxilian 23:03 yeah
I have to admit that this works really well
nirvdrum 23:03 JIRA was really the only issue tracker I could get my wife to use :-P
taxilian 23:03 when it works :-P
and if management won't use it, it's useless... =]
nirvdrum 23:03 It can be obtuse for sure.
But nothing even comes close to Confluence.
Search indexing Word docs and auto-saving entries were killer features.
Heh. Yeah, I forced a little slave labor out of her.
She would have quit if she had to use bugzilla.
taxilian 23:03 I wouldn't blame her
sweet... now I've completely broken it
nirvdrum 23:03 Heh.
taxilian 23:03 well, good to know I can still roll back to the old one easily enough
taxilian 23:03 lol. I started over, did everything again... and it seems to have worked this time
hey... the UPM works now...
nirvdrum 23:03 I'm out. Time to crash.
See ya.