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

IRC Nick Time (GMT-7) Message
FireBreathBot 00:03 Commit f25ff87 on master by Richard Bateman: "Merge branch 'master' of"
Commit 01736d5 on master by Eric Herrmann: "fixed broken Mac build"
Commit 9bb33d8 on firebreath-1.4 by Eric Herrmann: "fixed broken Mac build"
taxilian 01:03 1.4.2 is released: http://npapi.com
FireBreathBot 01:03 JIRA issue issue commented by richard "I've done some more testing with this and I don't think there is anything we can do about it; I s..."
FireBreathBot 02:03 Commit 8647098 on master by Richard Bateman: "Added default ctags command"
taxilian 02:03 wanna see something awesome?
!find CallOnMainThread
FireBreathBot 02:03 Found 1 possible matches. Displaying 1
/^ typename Functor::result_type BrowserHost::CallOnMainThread(Functor func)$/ (f) found in src/ScriptingCore/CrossThreadCall.h:
taxilian 02:03 okay, I'm too easily amused. good night everyone
taxilian 10:03 hey rob
nitrogenycs_ 12:03 why is there GetProperty(int idx) in addition to GetProperty(std::string propertyName) in JSAPI?
I first thought it might be used with indexes, like when you do obj[1] instead of obj["1"], but apparently the string version of my code is only ever called
taxilian 13:03 nitrogenycs_: yeah, it should be for indexes
but the browsers don't all treat indexes the same
so some may not use int identifiers anymore
nitrogenycs_ 13:03 okay
I just tried safari
taxilian 13:03 haven't tested that functionality in awhile
safari is definitely one of hte ones that does it weird
nitrogenycs_ 13:03 it's ok, I was just a bit surprised
taxilian 13:03 what we should probably do is have FireBreath abstract that like it does on IE
feel free to file a jira issue
FireBreathBot 14:03 JIRA issue issue created by richard
just_another_use 17:03 hello!
Is it possible to create a video player with firebreath? I mean is it possible to render image data and play audio?
nitrogenycs_ 18:03 yes it is
taxilian actually wrote such a thing
jshanab_wcw might also know something, not sure though
dan2 18:03 hmm
something is off
I keep getting DllREgisterServer errors when I'm building my plugins on windows with firebreath
just_another_use 18:03 Thank you for reply. May i look some api or some place to start?
nitrogenycs_ 18:03 dan2: check if all the dependent .dlls of your dll are there
dan2 18:03 it's not that
it can't find DllRegisterServer
looks like a bug
nitrogenycs_ 18:03 just_another_use: there's and there once was a SimpleMediaPlayer example. You'll have to start from a window handle and then build your video player around this. If you want it the easy way, maybe you can talk to taxilian about contracting
just_another_use 18:03 I'm developing i p2p-video based application and i'm looking for way to port it into browser. I'm using such libraries: ffmpeg and libevent. Will they work with firebreath?
dan2 18:03 hey guys, where does the .def supposed to be included in the windows build system?
at the link stage right?
nitrogenycs_ 18:03 just_another_use I can't see why ffmpeg does not work with firebreath. Is your library open source?
dan2 18:03 there's no exported symbols in my dll :(
nitrogenycs_ 18:03 dan2: If you use the supplied cmake system with the fbgen generated plugin everything should work out of the box. At least it does for me.
dan2 18:03 bleh
that supplied cmake system is screwed up
I have it hacked together so I can do in source tree builds
just_another_use 18:03 No, my library(better to say application in my case) is proprietary. It is free for end user but it has commercial sense
dan2 18:03 hmm
something is really screwed up here
it's not including the .def file anywhere
and thus no exports
taxilian: you there?
taxilian 18:03 hey Dan
hmm. that is weird
dan2 18:03 where do you include the .def?
or tell cmake about it's existence
taxilian 18:03 1.4 or 1.5?
dan2 18:03 firebreath-1.4 I think
taxilian 18:03
dan2 18:03 god I hate these intree builds
taxilian 18:03 well, you could always upgrade to 1.5
dan2 18:03 isn't projectConfig autogenerated for each project?
taxilian 18:03 it is copied for each project in 1.4, yes
dan2 18:03 something is just off
I see the .def file being generated
but it's not being pulled
everytime I try to put in something to print out the variables and what it finds it gets overwritten by the annoying generator
taxilian 18:03 yeah, that's been changed in 1.5
just includes the file as needed
instead of regenerating it
is your RGS and RC file included in your project?
are you including ${GENERATED} in your project?
just_another_use: how familiar are you with what a browser plugin (NPAPI plugin in particular) actually is and how it works?
dan2 18:03 why do I need an rgs and rc file?
just_another_use 18:03 I've just started the way i could do it. I was looking on Native Client before. But it can't work not in google chrome browser
dan2 18:03 SET( SOURCES
just_another_use 18:03 I've just started to search the way *
dan2 18:03 taxilian: I think it may be a problem with an out of tree build, and I think it has to do with your use of relative paths
taxilian 18:03 dan2: wait; this is on linux?
dan2 18:03 windows
taxilian 18:03 okay, on windows you need the RGS files because they tell it how to install
and you need the RC file because it tells firefox about your plugin
dan2 18:03 -- Generated Dir: C:/Developer/workspace/msphonesdk-build-Debug-eclipse/Convers
-- Generated Files: gen/FBControl.rgs;gen/FireBreathWin.rgs;gen/
taxilian 18:03 dan2: that's quite possible. that's why I keep suggesting that you update to 1.5 where that should be either fixed or at least mostly fixed
and fixable
dan2 18:03 man...
I just want to fricken test this thing today
I hate doing upgrades
taxilian 18:03 for most it's not bad, for you it will likely be a pain
dan2 18:03 right
it's going to take another 3 hrs
taxilian 18:03 but what do you get when you print out ${GENERATED} in your CMakeLists.txt?
dan2 18:03 I'm not doing it today
just_another_use 18:03 If i understand right i will have an access to browser's object with firebreath. So the main problem if it will be possible to draw data and play audio. Also i'm interested in performance, because i want to be able playing HD video
taxilian 18:03 just_another_use: read
a browser plugin lives in an object tag; you can draw in the space that tag takes up
and you can use audio
dan2 18:03 taxilian: it isn't detecting shit
taxilian 18:03 performance depends on how you draw, which depends on what platform you're on
dan2 18:03 GENERATED isn't populated
in my CMakeLists.txt for the plugin
taxilian 18:03 dan2: then there is something wrong with how the projectConfig file is (or isn't) being included
if you can figure out why that is you'll have your answer, I suspect
dan2 18:03 how could it not be included?
taxilian 18:03 might just be included in the wrong scope for your plugin to have it
that was all a mess in 1.4
as you rightly pointed out
dan2 18:03 is it implicitly included in configure_file?
taxilian 18:03 so I fixed it =]
configure_file doesn't include anything
dan2 18:03 can I just include it right after configure_file is called?
taxilian 18:03 honestly don't remember :-P I'll go look
dan2 18:03 apparently that seems to be a bit better
taxilian 18:03 might be okay since you only have one plugin
just_another_use: what the performance is depends on your platform and how you draw; I have a video plugin that plays HD video and works fine, but it's not trivial to write all the renderers
just_another_use 18:03 Thank, you taxilian. I've read the article. So everything seems to be good for me. What did you mean about "how you draw"? Currently, i'm using SDL to render data. I get each frame with ffmpeg, convert it to YUV format and draw with SDL.
taxilian 18:03 what OS are you using?
dan2 18:03 bah!!!!
just_another_use 18:03 linux, windows, os x
dan2 18:03 can't get a break on this today
taxilian 18:03 just_another_use: you have different problems to solve on each platform.
dan2: seriously, I think you'll save yourself a lot of headache if you just update to 1.5
just_another_use 18:03 For example? I must use different mechanisms to render video?
taxilian 18:03 just_another_use: on windows you have it pretty easy, as long as you don't mind having a "windowed" plugin, which means that nothing else in the DOM can be over the top of your plugin
then you just get a HWND and you're good
dan2 18:03 man
taxilian 18:03 just_another_use: on Mac you should ideally draw either with CoreGraphics or CoreAnimation; CA only works on ff4, Safari, and Chrome, however
just_another_use: I still have yet to get any opengl rendering working on linux, though others have
dan2 18:03 I've never seen this type error in dependency walker before
taxilian 18:03 dan2: what error?
dan2 18:03 Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
where is CreateAsyncBindCtx defined?
taxilian 18:03 … no idea. never heard of it
just_another_use 18:03 hm, so the main problem is linux?
taxilian 18:03 just_another_use: err, no, that's just the only place I personally don't know how to do it
once you figure it out linux is probably no harder than windows
I'd say Mac is the hardest
.wiki Mac Plugins
!wiki Mac Plugins
FireBreathBot 18:03 8 results found. Note: Results limited to 8
"Mac Plugins":
"Building on Mac OS X":
"Mac Video Tutorial":
"Debugging Plugins":
"Building FireBreath Plugins":
"Deploying and updating your plugin":
"Creating a New Plugin Project":
"Helpful Links":
taxilian 18:03 check out the first link there
dan2 18:03 taxilian: it's interesting that you haven't heard of CreateAsyncBindCtx because you use it in your code, however it is another dll I have that can't seem to find it
taxilian 18:03 ahh, it's in the axstream stuff
I didn't write any of that
that would indicate that it's a winhttp api function, most likely
nitrogenycs_ may know
just_another_use 18:03 hm, looks like there is nothing hard there. I still can't understand what is the problem there?
dan2 18:03 man
something is really screwed up with this linking
it seems to think they're unresolved symbols in another dll that isn't even built in my project
taxilian 18:03 just_another_use: did you read this as well?
dan2 18:03 man I hate windows
taxilian 18:03 dan2: heh
dan2 18:03 windows is the only platform that can screw this kind of shit up
taxilian 18:03 every platform has stuff like that
you just know how to fix the other platforms stuff
dan2 18:03 no
I disagree
taxilian 18:03 I have a similar problem when I do linux stuff, simply due to unfamiliarity
dan2 18:03 windows is the only platform I've seen that corrupts the build itself
just_another_use 18:03 all platforms have their "FFFFUUUUUU"
dan2 18:03 I guess
but windows is the only platform I knwo of where sometimes you just need to wipe the whole build tree and it solves the problem
taxilian 18:03 nah, I've had that happen on linux too
and mac several times
dan2 18:03 on windows it's like 1 in 5 builds
just_another_use 18:03 the only thing i hate windows is that it's not *nix
i mean, if you're developer *nix is awesome with their console
dan2 18:03 just_another_use: using a dos prompt on windows is brutal
taxilian 18:03 dan2: really? I have very, very rarely had it happen
just_another_use 18:03 window's console is....piece of unuseful shit
taxilian 18:03 lol. I install cygwin and deal with its oddities rather than be stuck with a DOS prompt
dan2 18:03 I guess you've never tried to compile on samba shares or nfs shares on windows
guaranteed to cause build corruption
taxilian 18:03 sure haven't
I'll give you that; building on network drives is not a good idea on windows
just_another_use 18:03 mingw has MSYS, but it doesn't solve all problems
dan2 18:03 this whole situation wouldn't be so bad if I didn't have to use microsoft's linker and compiler
however, I did find something very interesting about msvc that gcc doesn't do as well
it can optimize intrinsics very very well
taxilian 18:03 I mainly wish it wasn't so darn slow
dan2 18:03 oh yes, it is that of course
just_another_use 18:03 *nix has awesome idealogy - everything is file. You can work with file, socket, pipe, device... but we have in windows? 150 different functions for each task where everything should be done in the same way
taxilian 18:03 really need to get FireBreath set up so that it can build statics for whatever is possible
dan2 18:03 taxilian: I've noticed that the whole filesystem on windows is just damn slow
taxilian 18:03 true
dan2 18:03 nmake takes 10x the amount of time to do what make does on linux for simply checking if the build is cmplete
taxilian 18:03 just_another_use: does that article help explain what I'm talking about with complexity?
dan2 18:03 f***
this whole rebuild didn't fix this
just_another_use 18:03 yes, thank you a lot. But all i need to support last version of mac. So i think Cocoa with CA is exactly what i need. Except ff case. But afaik, ff4 is nearly stable version
taxilian 18:03 okay
remember that you need to be able to call the invalidate function after you draw each time
just_another_use 18:03 what do you mean? after drawing i should to check if data was really drown? :D
dan2 18:03 aye
taxilian 18:03 just_another_use: no, after drawing you need to tell the browser that you drew
go read the article again
it's in there
pay particular attention to InvalidatingCoreAnimation
just_another_use 18:03 thank you, i will follow your advices. But at first i will need to start with firebreath's "hello world". And only after that starting to think how to solve render problems.
taxilian 19:03 very true =] but that will only take you a few minutes
build issues and drawing are a pain; getting a basic plugin up is not
also, keep in mind that dan2 is very particular about how his project needs to fit together so he's doing things the hard way :-P most don't have the kind of issues he's dealing with
dan2 19:03 aye
usually after I've sweared at this damn problem enough it resolves itself
just_another_use 19:03 I will keep it in mind :) I should to notice that firebreath is the project that i'm starting to love from first seconds: it's first project where i see such good web-irc live feedback, i received all information what i need in several minutes. Not in several hours as i do with NativeClient, for example, where it was really hard to find is FF supported or not.
taxilian 19:03 dan2: just be glad you don't have to deal with ActiveX
dan2 19:03 heh
taxilian 19:03 just_another_use: we try. I should note that the only way that continues is if users contribute and help pull the weight; I can't do it all myself =]
just_another_use 19:03 You are on right way
taxilian 19:03 also should be noted that it's usually quiet in here on weekends; I don't work Sundays and most don't work Saturdays
dan2 19:03 taxilian: mixing gcc dlls/libs with msvc is almost as abad as activex
just_another_use 19:03 i was quite surprised that there was someone on this channel
taxilian 19:03 yeah, that's probably true
just_another_use 19:03 2 dan2: why did you not use mingw+msys?
dan2 19:03 because you can't use mingw with activex
taxilian 19:03 just_another_use: FireBreath requires ATL, and you can't use ATL with mingw
not even sure if we could use it if we removed the ATL dependency
dan2 19:03 also 90+% of c++ libraries don't compile properly with mingw on windows, even though they'll be fine with msvc on windows and gcc on linux
taxilian 19:03 (and there is someone looking into that, htough I don't know how far he's gotten)
just_another_use 19:03 hm, i'm using mingw now and only thinks about to move on msvc in future as it can make additional problems. I was starting developing on mac, than i've easily rebuilt it for linux. Windows was the hardest one, but everything works fine with min-gw. At least as i wish.
also i see that my english at 3:00am is quite bad :D
taxilian 19:03 just_another_use: FireBreath won't build on windows with mingw
you can use visual c++ express edition (2008 or later), but you'll need to download the windows ddk
which is unfortunately huge
where are you located?
just_another_use 19:03 that is not a problem for me: i use libevent+ffmpeg at client side which can be build with msvc.
I live in Ukraine
taxilian 19:03 you speak Russian or Ukrainian?
just_another_use 19:03 both
dan2 19:03 omg
I actually got it fixed
taxilian 19:03 just_another_use: I actually speak Russian, but my Russian keyboard doesn't work across synergy
so I can't right now =]
if you get too tired, though, you could pop over to #firebreath-ru and talk to me there
just_another_use 19:03 and you are from?
taxilian 19:03 as long as you don't mind me answering in English
Utah, USA
dan2 19:03 so how does someone from Utah know russian?
just_another_use 19:03 ++
taxilian 19:03 hehe. wait, doesn't everyone?
dan2 19:03 umm no
taxilian 19:03 I spent 2 years in Russia
living there
it was "learn Russian or be useless"
so I learned Russian
just_another_use 19:03 did you like Russia?
taxilian 19:03 I loved the people I met there
other things some I liked some I didn't
but in general, yes
I was mostly in Novosibirsk area; Omsk, Irkutsk, Ulan-Ude, Krasnoyarsk
just_another_use 19:03 people everywhere are same. Someone is good, someone is bad. I mean did you love "people's idealogy"?
taxilian 19:03 hmm. I'm not sure I understand the question
just_another_use 19:03 living style
taxilian 19:03 I'm not sure I know how to even answer that =] I was there as a representative for my church, trying to help people to learn about God and make themselves better. There are some prevalent problems there that I tried to help people deal with that are cultural, and I definitely don't like those
because I have friends that I care about a lot whose lives were/are being destroyed by them
alcoholics who can't quit because it isn't polite not to drink at a birthday party or a holiday
but some of the very best people I know live in Russia, and I'd go back to visit them in a heartbeat if I had the time and money
you might say I have an interesting perspective =] There are things about the Russian culture that I deeply admire, and other things that I worry will destroy the people
just_another_use 19:03 I understand you
taxilian 19:03 I don't drink — I never have — but if I were ever tempted, my time in Russia would have convinced me otherwise =]
nirvdrum 19:03 Drinking is awesome!
That's my firebreath contribution for the week.
dan2 19:03 taxilian: are you mormon?
taxilian 19:03 at the same time, the Russian people have a strength that I can only hold in partial awe; the things that the country as a whole has gone through is absolutely beyond comprehension in many cases, but what has made it through is really amazing
dan2: I am
dan2 19:03 k
taxilian 19:03 nirvdrum: gee, thanks ;-)
just_another_use 19:03 hehe
nirvdrum 19:03 Heh.
This channel is too nice.
You need more asses in it.
just_another_use 19:03 i even know why it's happening)
nirvdrum 19:03 Okay, back to work I go.
taxilian 19:03 just_another_use: and contrary to what many of the dictionaries over there say, "mormon" really does *not* mean "many wives" :-P
I think that was one of the funniest things I'd ever seen… they actually have dictionaries in Russia that define "mormon" as "someone with many wives" or some such; not sure how it would translate
just_another_use 19:03 i was talking about "russian strength"
dan2 19:03 taxilian: shhh, that's what dictionaries over here say
taxilian 19:03 lol
taking care of one is enough for me, thanks… :-P
just_another_use 19:03 i don't know who told you that mormon is that "who has many wives" in russian, but it's totally false
taxilian 19:03 oh, I know that… but there really are dictionaries that define it that way
I have seen them =]
dan2 19:03 taxilian: how do I debug or get console style logs from firefox on windows?
just_another_use 19:03 anyway in Ukraine we are hating Russian as country and love them as people
taxilian 19:03 dan2: what logging mechanism are you using?
just_another_use: yes, I can completely understand that
dan2 19:03 taxilian: std;:cout ?
taxilian 19:03 dan2: won't work
unless you allocate a terminal, which is a pain and is not good for performance
also I can't find the code to do it anymore =]
you can use OutputDebugString
just_another_use 19:03 you can use fprintf(FILE,)
taxilian 19:03 if the debugger is attached, you'll see the results in the output window
yeah, logging to a file is another good method
FireBreath has log4cplus as a module that is easy to include, but with the way you're doing things I'm not 100% certain it would be so easy
it's pretty easy to configure that to log to a file, though
just_another_use 19:03 or even you can create your own "console widget" on your plugin and print all log data there.
don't know on how much it easy to make
taxilian 19:03 true; there is actually a htmlLog function on BrowserHost
!find htmlLog
FireBreathBot 19:03 Found 1 possible matches. Displaying 1
/^void FB::BrowserHost::htmlLog(const std::string& str)$/ (f) found in src/ScriptingCore/BrowserHost.cpp:
just_another_use 19:03 okay guys, i think i will go to sleep. Nice to meet you! I think this talk wasn't last and we will meet soon again.
dan2 19:03 taxilian: where does that print out to?
taxilian 19:03 the debug console
the output window in visual studio
dan2 19:03 the htmllog?
taxilian 19:03 oh, htmllog
or equivilent
dan2 19:03 not sure if firebug works when using xul toolbars
taxilian 19:03 can also be used to view OutputDebugString btw
yeah, it might not
good point
probably doesn't, actually
dan2 19:03 I've used OutputDebugString before
nitrogenycs_ 19:03 you can also connect to some system pipe or whatever it was to read outputdebugstring :)
taxilian 19:03 if you really wanted to use cout, you could play with this:
but it's a pain
dan2 19:03 k
added some debug stuff
we'll see how this does
I must note
the javascript funciton calls from the plugin on windows are MUCH SLOWER
than on linux
I'm noticing seconds of delay..
taxilian 19:03 seconds? that's weird
shouldn't be that slow
dan2 19:03 something is jacked
taxilian 19:03 nowhere near that slow
dan2 19:03 I'm not seeing any errors in the javascript console
but, this works on linux..
maybe I need a release build
but then I don't have debugging do
damn it
dan2 20:03 taxilian: remember how I said that boost::call_once with the jsapi was a good idea?
taxilian 20:03 hehe. not so much?
dan2 20:03 well it screws up the threading crap on application teardown
taxilian 20:03 ahh
that stinks
dan2 20:03 resetting the shared ptr in static deinitialize seems to fix it
taxilian 20:03 makes sense; if you don't, it gets cleaned up in DllMain, which doesn't allow you to stop thread
taxilian 21:03 git pull request
FireBreathBot 21:03 There are no open pull requests in firebreath/FireBreath
taxilian 21:03 !find onpluginloaded
FireBreathBot 21:03 Could not find any tags matching onpluginloaded
taxilian 21:03 !find onPluginLoaded
FireBreathBot 21:03 Could not find any tags matching onPluginLoaded
taxilian 21:03 !find onPluginLoad
FireBreathBot 21:03 Could not find any tags matching onPluginLoad
taxilian 21:03 hmm
oh, yeah
!find onPluginReady
FireBreathBot 21:03 Found 1 possible matches. Displaying 1
/^ virtual void onPluginReady() {};$/ (f) found in src/PluginCore/PluginCore.h:
taxilian 21:03 !find onpluginready
FireBreathBot 21:03 Could not find any tags matching onpluginready
taxilian 21:03 hmm. should probably make that case insensitive