IRC Log Viewer » #firebreath » 2011-02-17

IRC Nick Time (GMT-7) Message
mital 01:02 taxilian: up ?
taxilian 01:02 yep
unfortunately
mital 01:02 I was trying to add commandline param "has_window" ... the taking input and parsing part is done ... now i need to do the code change (removing "#" in pluginConfig.cmake ... while I was doing this i came across Template class which derives from string.Template.. I am not able to properly understand it
how does it work ?
taxilian 01:02 sorry, which file are you looking at?
mital 01:02 I am looking at gen_templates.py in fbgen folder
taxilian 01:02 ahh
mital 01:02 line 10
taxilian 01:02 http://docs.python.org/release/2.5.2/lib/node40.html
more up to date: http://docs.python.org/library/string.html#string.Template
mital 01:02 so basically I don't exactly what this... I have a variable plugin.has_window.. if its value is "yes" then I want to remove the # from set(FB_GUI_DISABLED 1)
taxilian 01:02 to be honest, I'm not sure what the easiest way to do that is
I didn't write fbgen
mital 01:02 this guy just replaces all @(param) to your given param value
hmm ok
taxilian 01:02 right; which works pretty well, actually
we used to use cheetah, which was much more flexible
but people kept having problems getting it installed
you could make some sort of search and replace delimiter
mital 01:02 hmm
taxilian 01:02 #IFVAR(has_window)
mital 01:02 this would be a special case then ... actually u r right we have to handle this separately ... i can't generallize it
taxilian 01:02 use a regex to find anything matching that, check the variable referenced, and replace it with either "" or "#", where # is the character(s) before the IFVAR
or something like that
well, if you used a regex you could maybe generalize it
but you'd have to add it as a feature
"commented out if expr not true"
and then you could either have the comment char(s) be whatever is before IFVAR or have a second "parameter" to IFVAR
for example
#IFVAR(has_window) set (FB_GUI_DISABLED) would get replaced with either "set (FB…" or "#set (FB..."
just depends on how flexible you want it to be
at that point you may just want to add some form of simple if statement
maybe there already is such a thing in string.Template, not sure
mital 01:02 hmm ok
taxilian 01:02 http://stackoverflow.com/questions/1336786/example-of-subclassing-string-template-in-python is interesting, though not as useful as I'd like
mital 02:02 i am not able to understand how AttrDictSimple(dict) works... if i get it right i think i can fix this....
taxilian 02:02 it's just a dict that you can access members with "." syntax
i.e. obj.bob == obj["bob"]
mital 02:02 so what does line 28 is setting ?
taxilian 02:02 [("%s_%s" % (obj.__class__.__name__.upper(), k), obj[k]) for k in obj.keys.keys() if hasattr(obj, k)] is a list comprehension
so for each key in obj.keys it will generate ("%s_%s" % (obj.__class__.__name__.upper(), k), obj[k])
and put it in an attrdict
so in other words the key will be <classname>_key and the value will be obj[key]
mital 02:02 ok it also puts its value as obj[k] right ? i just need to change the value of PLUGIN_has_window'
taxilian 02:02 yes
mital 02:02 can i hardcode this behavior ?
may be this is not right way to do this
taxilian 02:02 as long as it's clean
doesn't have to be perfect
just decent =]
mital 02:02 hmm ok let me try
taxilian 02:02 this is one reason I haven't added a lot of customization to fbgen
it's just difficult to do well in a lightweight console script
mital 02:02 I can see PLUGIN_has_window as the key in the "dict" but when I do dict['PLUGIN_has_window'] it throws KeyError
http://docs.python.org/release/2.5.2/lib/typesmapping.html this guy doesn't describe how to get value for given key
done
should I checkin to my branch
taxilian 02:02 yeah, check it in to your fork and I'll look over it
mital 02:02 we will do the removal of events later
taxilian 02:02 I may have some suggestions for you later, if you don't mind
before I pull it in
mital 02:02 yeah...
i am sure there would be things which I would have overlooked...
taxilian 02:02 maybe, maybe not; just making sure you know it's a possibility =]
mital 02:02 yeah sure...
https://github.com/mital/FireBreath/commit/a05edd8e971faa524207e582cf6984cd80f9245e
hey sorry i have commited the print statements as welll.. removing them in next commit
:/
taxilian 02:02 no worries
I can always squash it when I pull it in
mital 02:02 i have added --has-window... is that ok ?
taxilian 02:02 that part looks good
I'd still like to find a cleaner way to do the conditional
I'll talk it over with the guys who wrote it
see if they have any suggestions
mital 02:02 okei
taxilian 02:02 will be tomorrow, since it's 2:30am here now =]
mital 02:02 yeah np
should I give u a pull request. ?
taxilian 02:02 nah, this is good
mital 02:02 or let me know your suggessions ... i will fix it that way and then will give u pull request
kewl
taxilian 02:02 sounds good
mital 02:02 globalPluginInitialize() will be called once per page ? or globally only one time ??
taxilian 02:02 globally only one time
mital 02:02 hmm ok
taxilian 02:02 onPluginReady is called once per instance
(there could be multiple instances per page
)
mital 02:02 so this time I got pluginLoaded alert. first and then after couple of seconds I got globalPluginInitialize() called
javascript does not wait for our plugin to be initialized
right ?
taxilian 02:02 what platform?
no, it does not
mital 02:02 windows / firefox
taxilian 02:02 there is something odd going on, then
what is calling pluginLoaded?
because the plugin can't get there, particularly on firefox, wtihout staticinit getting called first
mital 02:02 so if javascript calls any of our method before globalInitialized then we would have some problem.
taxilian 02:02 you don't understand… before that gets called there isn't anything to call
mital 02:02 hmm got that... i was pointing to wrong method... its another static initialize call which is called by my method
sorry
taxilian 02:02 yeah, that makes more sense
mital 02:02 so if I consider chrome ... the static initialize would be called once per page
taxilian 02:02 no
the static initailize is called once when the plugin module is loaded
chrome loads the plugin in a single process for all pages
it's just a seperate process from the rest of the page
mital 02:02 ok
taxilian 03:02 well, finished my homework so I need to go to bed
3am
good luck
mital 03:02 night !!
jshanab_wcw 07:02 Anyone know WTF I do to make my plugin acceptable to IE8. It asks ok to run every time. Every dll and the msi is signed with a valid verisign cert, regkeys for preapproved have been adeed as well as allowed domains/*
Raffaello 07:02 hi
i'm new to firebreath and i have a little question..
i need to retrieve the url of the page in which the plugin has been loaded
is there a way to get it from my Plugin class or should i have to pass it from JS?
_neilg_ 08:02 Raffaello: I don't know that you can get it from your plugin class. Personally I'd hand it in through JS...
jshanb_wcw: Are you sure the plugin DLL is properly signed? Also, how is it registering itself in the registry? In HKLM or HKCU?
jshanab_wcw 08:02 I am gonna answer my own question. It is almost comical. I posted on the wiki a comment on the debuggin plugins. DLL is properly signed with the new sigining arch taxilian developed yesturday and i tried HKLM and HKCU. It was the standard testing procedure we use dragging a html page to the browwser. IE8 detects it comes fromt he hard drive and locks me down.
neilg_ 08:02 Oh, yes, that's 100% true - I'd forgotten about that until now
It's crazy - but I'm glad it's solved for you now
jshanab_wcw 08:02 It works great with that little fix "<!-- saved from url=(0013)about:internet -->" added to top of test page, puts the page back in the internet zone
neilg_ 08:02 Oh, weird. I did _not_ know about that though. Would have been useful to know!
jshanab_wcw 08:02 Gotta test in internet zone for plugins anyway. Probably should just add it to the template for FBControl.htm
funny article from someone about it: http://www.pelennorfields.com/matt/2005/08/17/workaround-local-machine-zone-lockdown/
neilg_ 08:02 Right, I agree with that - especially if it's the only way to test locally
jshanab_wcw 08:02 I also listed the link to microsofts IECTT tool, very nice for discovering what is wrong with a plugin
neilg_ 08:02 Hmm, that sounds like a useful tool!
Raffaello 08:02 thanks neilg
neilg_ 08:02 No problem
Raffaello 09:02 another quick question :)
what does RefreshEvents stand for?
i need to know when the browser window is resized..
i thought to use this event but it seems like it is not fired
neilg_ 09:02 I believe that's for when you need to update what's being displayed by your plugin
Raffaello 09:02 sorry
i mean ResizedEvent
i wanted to say ResizedEvent
taxilian 09:02 ResizedEvent is for when the plugin is resized
There is no hook for browser window resized
You could try getting it from the Dom onresize
jshanab_wcw 09:02 Good morning taxilian
taxilian 09:02 Raffaello: To get the page URL is easy. Check tips and tricks on website
Morning
Look at the top of examples/FBTestPlugin/test.HTML
Raffaello 09:02 thanks a lot!
dan2 09:02 morning
taxilian, I'm getting some brutal compiler warnings from your latest firebreath-1.4 branch
taxilian, http://pastebin.com/8LyxJpd3
taxilian, umm
in the lines in question
we definitely need to fix this
this isn't kosher
you should be using boost::enable_if
and dynamic_cast
kryssi 09:02 Hi guys, I didn't found any documentation on how to make HTTP POST request from firebreath, can you help me?
Hi guys, I didn't found any documentation on how to make HTTP POST request from firebreath, can you help me?
taxilian 09:02 I am driving. Will be at a computer to answer Qs in 30
kryssi: Currently you can't
kryssi 09:02 taxilian: thanks
taxilian: That's very limiting, is it planned for some near release?
jshanab_wcw 09:02 kryssi. why not just add in a curl project. keep things cross platform
kryssi 09:02 jshanaab_wcw, I was thinking about some solution like that but it would be nice to have feature
jshanab_wcw: also using 3rd party API complicates sessions and user authentication
taxilian 09:02 kryssi:you are welcome to implement it. I will get to it eventually, but have other more important things currently
ok, I'm at a computer now
easier to type
dan2: looking at it, give me a few
kryssi: I would definitely like to add POST support, but it hasn't been a priority for me because I don't currently need it
dan2 09:02 it's a pretty straightforward thing to fix with enable_if
taxilian 09:02 I'm trying to figure out what code this is referencing; I've never seen this error, what caused it?
also, I didn't write this code =]
well, part I did
but I'm still trying to figure out where the source of this warning tree is
dan2: yeah, I'm not sure what the "thing" you want me to fix is; where did this come from? nobody else has reported this issue and I've never seen it
Raffaello 10:02 bye!
taxilian 10:02 Raffaello: good luck
dan2 10:02 taxilian, the strict aliasing rules. This is pretty bad code I must admit in this section. You woudl be much better off using enable_if
taxilian 10:02 I have no idea which section you're talking about, since these warnings reference about a dozen different lines
I take it strict aliasing rules are disabled by default?
okay, so is this theoretically referring to the reinterpret_cast calls?
hmm. I think I see
dan2: so you're saying to use boost::enable_if instead of using the if (sizeof...) on the cast functions
dan2 10:02 umm
comparing anything by using typeid() is bad
bad
kryssi 10:02 bye, thanks for info taxilian
taxilian 10:02 dan2: in this case it is the best option
dynamic cast cant' be used
you'll find that the same holds true for boost::any
dan2 10:02 why can't dynamic_cast be used?
taxilian 10:02 because the pointer is opaque
dan2 10:02 void*?
taxilian 10:02 the original class, btw, was cdiggins::any (before we messed with it) which you can find with a google search
yes, because it allows any type
there is no way to preserve type information
dan2 10:02 that may be true, but it isn't very important in this case
since you knwo what type you want out
taxilian 10:02 right
but if it isn't that type, then you can't convert it to that type
you can't use dynamic_cast on a void*
the whole point of cast is to say "I know it is this type, so re-type the value and give it to me"
similarly convert_cast has to then check to see if it is a type it understands -- messy, but unavoidable
taxilian 10:02 dan2: I can try using enable_if though to see if it'll clear your strict aliasing error; it's just hard to know if it makes any difference since none of my compilers give me those warnings
dan2 10:02 I take it you're not using gcc-4.5
taxilian 10:02 if it doesnt' ship by default wtih any of the distros that I use, I'm not using it =]
dan2: so is the problem that it doesnt' like simply that we're using reinterpret_cast to go to and from a void*? the more I look at this the more I don't think this is fixable without completely reworking how the variant class works
and strict aliasing is probably a good thing 99% of the time, but this class is doing what it does quite intentionally
dan2 10:02 give me a few and I'll look at it again
taxilian 10:02 ok
dan2 10:02 taxilian, the class could be much much better if it did do template specialization at least just for poitners
taxilian 10:02 I'm open to suggestions, as long as they don't fundamentally break the code
like I said, I didn't write the class, I just extended it
I've tried to find better ways to do it several times but I always end up finding a reason that they don't work
whereas this works well and actually outperforms boost::any (or at least it did several versions ago, I haven't benchmarked it lately
http://www.codeproject.com/KB/cpp/dynamic_typing.aspx
neilg_ 10:02 Hey! So there's an issue with the 1.4 branch of FB which I've fixed locally
taxilian 10:02 impossible! my code doesnt' have bugs
you may have found a random feature, however
neilg_ 10:02 (It may only happen when somebody uses their own boost)
taxilian 10:02 which we could change if you want
neilg_ 10:02 I think we should ;)
taxilian 10:02 well, tell me about this feature you found and we'll see
neilg_ 10:02 So axPluginObjects.cpp doesn't include boost/scoped_array.hpp but it's used by the templated function getProperties in fbcontrol.h which it calls
taxilian 10:02 huh; I'll never understand why include trees like that sometimes behave differently on different systems
neilg_ 10:02 Yeah, GCC will parse templated functions whether they're called or not but MSVC ignores them until they're referenced
taxilian 10:02 true
neilg_ 10:02 That seems to be the behaviour I've noticed
taxilian 10:02 but it builds for me on all platforms
neilg_ 10:02 Weird. So maybe it's because I'm providing my own boost somehow?
taxilian 10:02 wouldn't think that would matter
unless it's an older version than we're using and they've added that include to another file we include
or something
still, easy enough to fix
neilg_ 10:02 That's true, you're using boost 1.40 and I'm using boost 1.44
taxilian 10:02 actually, I'm using boost 1.45
neilg_ 10:02 Really? Huh. Weird. (Messages appeared saying boost 1.40 until I passed the parameter giving it the version 1.44)
FB_GitHubBot 10:02 FireBreath: master Richard Bateman * 8a1d034 (1 files in 1 dirs): Added missing include - http://bit.ly/eq93CE
taxilian 10:02 must have been something else on your machine
FB_GitHubBot 10:02 FireBreath: firebreath-1.4 Richard Bateman * 8a1d034 (1 files in 1 dirs): Added missing include - http://bit.ly/eq93CE
neilg_ 10:02 I'm also having issues because I must have been using a pre-release of 1.3 and I can't get it to compile yet. I'm thinking I may just generate a different project and figure out the differences that way
taxilian 10:02 what compile errors?
neilg_ 10:02 Oh, huh! I fixed them. Okay, never mind!
I had to delete the build directory and regenerate one last time
Just regenerating didn't work for me
taxilian 10:02 happens sometimes
neilg_ 10:02 While I have you though can I ask just one thing? The projects that CMake generates is setting the Character Set to be "Use Unicode Character Set". Do you know how I can change this?
It's a problem for me because TCHAR is then wchar_t and I have libraries that want TCHAR to be char
I can change it myself but I want to do it the CMake way. Been burnt before!
taxilian 10:02 you should be able to change it just for specific projects
but the firebreath projects will probably not build if you change that
you could always undef UNICODE in the headers that you need it to be different for
neilg_ 11:02 Sure, that just gets me into a horrible mess. I'd prefer to change it for all the generated projects (I'd be surprised if that made FB not work anymore!) but maybe that's what I have to do
Damn you TCHAR, damn you
taxilian 11:02 you're welcome to try it
let me know if it works
neilg_ 11:02 For sure
taxilian 11:02 if it does you could add a cmake param to disable the UNICODE define
neilg_ 11:02 That's what I'm thinking
Not sure how to do that, that's what I was just looking at
saiaman 11:02 hello everyone
neilg_ 11:02 I'm not sure whether it's set_target_properties or not
taxilian 11:02 saiaman: howdy
neilg_: it's a define
probably in cmake/buildconfig
neilg_ 11:02 Thanks, I'm going to look at that!
FB_GitHubBot 11:02 FireBreath: firebreath-1.4 Richard Bateman * a1038ca (3 files in 2 dirs): Attempt to fix the multiple GlobalPluginInitialize call bug (#143) - http://bit.ly/dSbbDR
FireBreath: master Richard Bateman * a1038ca (3 files in 2 dirs): Attempt to fix the multiple GlobalPluginInitialize call bug (#143) - http://bit.ly/dSbbDR
taxilian 12:02 anyone here using linux that could test that fix for me?
kalev? =] haven't heard from you in awhile
jshanab_wcw 12:02 Wouldn't you know this is the first year in about 10 I am in windows not linux, all my linux machines are at home, some still in boxes. I could give you remote access :-)
taxilian 12:02 he
heh. I have linux machines
I just don't have a good dev environment set up right now
jshanab_wcw 12:02 Yeah, me too. I had a nice Distcc cluster going for my Kernel development, but most of the machines are still in boxes in the garage. But I just used commandline and the kate editor for linux (kernel development has it's own build system)
jshanab_wcw 13:02 Now that I am almost done with my player, they have rediscovered flash around here and are considering scraping the plugin and using flash. Is there a good reason flash should be used/avoided. This is to view 8-20 videos at once on a web page.
taxilian 13:02 yeah; for that many videos it uses way too much CPU
jshanab_wcw 13:02 frame level viewing and buffering in memroy are the first 2 Questions that come to mind
neilg_ 13:02 Also: Adobe. That would be my main argument against using Flash. Though it's a slightly biased one. ;)
taxilian 13:02 it depends on what you're doing; flash's video technology is really sub-par, but flash is installed everywhere
I honestly think it probably won't perform well enough to let you play that many videos simultaneously
but you could try
jshanab_wcw 13:02 That was my first guess, but on windows flash is not as bad as on mac and linux, I was told they just did a test. 12 cameras, 6 encrypted. I just found out flash 10. something is using GPU accelerations. I do not know that much about why flash was or is slow
taxilian 13:02 their performance on mac has improved
but overall performance still sucks compared to other much better technologies that I've worked with
jshanab_wcw 13:02 NO acceleration on mac and linux, very sub-par! Maybe some on mac now? What is "sub-par about it, do you know?
I tell you, my plugin performance is not so great at the moment, All the H264 30FPS decoding
taxilian 13:02 CPU utilization up twice what it is with Move Network's player, doesn't perform as well on older hardware, video scaling not as good
of course, the video player I'm comparing it to is ahead of it's time still and it was created years ago… it's pretty slick
jshanab_wcw 13:02 I will look at it. thanks
taxilian 13:02 unfortunately it's a closed player; you can't use it without subscribing to Move's services
and they're not interested in small contracts
jshanab_wcw 13:02 we are not small, our p[roject is not.
taxilian 13:02 Move pioneered the concept of adaptive bitrate playback
jshanab_wcw 13:02 I am fearfull about using closed software, we want to add features later and that may limit us.
taxilian 13:02 yeah; Move targets more IP-TV type stuff
however, as much as I'd like to see you do a big project with FireBreath, if Flash will do what you need it might be worth looking at
much less work to maintain
jshanab_wcw 13:02 We are doing security cameras, I think we may have some different features and focuses than some players out there.
taxilian 13:02 quite possibly
also I question whether or not flash can do live streaming from your cameras
jshanab_wcw 13:02 That I have tested and it requires a server on the other end serving RTMP. I have tested with the free CRTMP server. we are testing WOWZA for our production location now. Also latency from the cameras is an issue. we had to re-configure wowza for lower latency
I also wanted to add CUDA or iSTREAM to the mix, perhaps thru OpenCL to use the GPU to do most of the decoding work :-)
taxilian 13:02 Well, the nice thing about using wowza is that you could stream to the iphone as well
but yeah, it'll be much higher latency
jshanab_wcw 13:02 yeah. That is what really got there attention
taxilian 13:02 if you haven't seen it yet this could also be useful: http://smoothstreaming.code-shop.com/trac
jshanab_wcw 13:02 Thanks
jshanab_wcw 14:02 taxilian. I get this error "heat.exe : warning HEAT1108: The command line switch 't:' is deprecated. Please use 't' instead." just before the WiX Toolset harvester has stopped working dialog when it is done signing all the dependent dlls and is signing th npMVSArchivePlayer.dll (I think). It is now consistent, but it seems to still work
taxilian 14:02 yes
I can't fix it
because if I do it breaks WiX 3.0
jshanab_wcw 14:02 oh. Do I need to update WiX?
taxilian 14:02 you're using 3.5 or 3.6 if you're getting that warning
3.0 didn't support the new syntax
jshanab_wcw 14:02 :-)
taxilian 14:02 and 3.5 complains with the old syntax
no-win
so I use the old syntax because even though it complains, it still works
neilg_ 14:02 So, back to getting things working... lol
PluginEventSinkPtr
Are my plugins meant to inherit from this?
taxilian 14:02 your plugins are meant to inherit from PluginCore… which inherits from that, yes
neilg_ 14:02 I just wanted to be sure. In which case: weird. My plugin inherits from FB::PluginCore and then tries to create a browser stream - it used to pass in "this" but now it takes a shared_ptr
So how do I make a shared_ptr from my instance?
taxilian 14:02 shared_from_this
()
neilg_: you might want to look at SimpleStreamHelper, though; depending on what you're doing that might be a simpler alternative
neilg_ 14:02 Thanks - Visual Assist threw me off by not filling that out for me so I figured I was doing it wrong. Damnit. Should have tried to compile first...
SimpleStreamHelper? I'll take a look!
Thanks
FB_GitHubBot 14:02 FireBreath: firebreath-1.4 Richard Bateman * 1feec51 (2 files in 2 dirs): Fixed some link issues on linux - http://bit.ly/fbHZwK
taxilian 14:02 http://www.firebreath.org/display/documentation/class+FB+SimpleStreamHelper+AsyncGet
performs a GET request and calls the supplied function when it returns
with the data it got
does anyone know of any outstanding issues that need to be fixed in the 1.4 branch that I haven't gotten to yet?
I'm hoping to put out RC1 today
neilg_ 14:02 Nope, I've only just started upgrading ;)
jshanab_wcw 14:02 Sure is working great here.
neilg_ 14:02 It's not been too bad so far as it happens, the breaking changes list is pretty good
saiaman_ 14:02 taxilian : but simplestreamhelper on firefox can't passe the header referer no?
taxilian 14:02 I dont' know what it will pass as referrer
if anything
but no, we can't control that
NPAPI doesn't allow us to
saiaman_ 14:02 yeah thats the fact and firefox strips referer header :(
it's sometimes a bad thing
got to go everybody, see you :)
taxilian 14:02 have fun
FB_GitHubBot 15:02 FireBreath: firebreath-1.4 Richard Bateman * 8cdcef6 (3 files in 2 dirs): Added assert that globalinit not called twice - http://bit.ly/fkLGbL
FireBreath: master Richard Bateman * 8cdcef6 (3 files in 2 dirs): Added assert that globalinit not called twice - http://bit.ly/fkLGbL
taxilian 15:02 I think that's all the known issues for B4… I think we're ready for RC1
sabotaged|wk 15:02 that /usr/bin/lipo failed error on mac builds
anyone ever come up with any ideas whats going on
taxilian 15:02 no… it seems to go away when you build agao
again
neilg_ 15:02 What error is that?
taxilian 15:02 but it'd sure be nice to figure out how to fix it
neilg_ 15:02 Huh
I'm running the prep script like so:
firebreath\prep2008.cmd .\projects .\build "-DWITH_SYSTEM_BOOST=1" "-DBOOST_ROOT=..\..\external\boost" "-DWITH_DYNAMIC_MSVC_RUNTIME=1" "-DBoost_USE_STATIC_LIBS=off" "-DBoost_ADDITIONAL_VERSIONS=1.44" "-DBOOST_ALL_DYN_LINK=1"
Importantly: Note the "-DBOOST_ALL_DYN_LINK=1"
This isn't getting added to the FB projects - but used to be!
sabotaged|wk 15:02 taxilian: you have firebreath building on build servers right? i'm just worried about the issue cropping up on a mac buildserver
taxilian 15:02 yes
it builds fine on the build server
build.firebreath.org
sabotaged|wk 15:02 so you never see the issue?
hmm
taxilian 15:02 I do, when I'm developing
but building again makes it go away
sabotaged|wk 15:02 why do you think it never crops up on the buildserver?
taxilian 15:02 I don't know
sabotaged|wk 15:02 ok i guess i'll see what happens when i get this on a buildserver
neilg_ 15:02 What is the error you're seeing?
I've seen (and fixed!) so many Mac errors in the past 3-4 months...
FB_GitHubBot 15:02 FireBreath: master Richard Bateman * f8a15d2 (1 files in 1 dirs): Fixed issue 145: crash on IE - http://bit.ly/dNVGpa
FireBreath: firebreath-1.4 Richard Bateman * f8a15d2 (1 files in 1 dirs): Fixed issue 145: crash on IE - http://bit.ly/dNVGpa
sabotaged|wk 15:02 neilg_: during the final build steps, i think after or around linking
some error about running /usr/bin/lipo
if you rebuild it usually goes away
neilg_ 15:02 It will be linking, lipo is used to create the fat binaries
sabotaged|wk 15:02 sometimes it takes me 10 rebuilds to work though
what's a fat binary
neilg_ 15:02 A fat binary is a binary that can (and usually does) contain code for multiple CPUs
Traditionally on the Macs this means PowerPC, x86 and x64
sabotaged|wk 15:02 ah
taxilian 15:02 in our case by default it means x86 and x64
ok; if nobody has any other concerns, I think I'm going to release 1.4RC1
neilg_ 16:02 Go for it! When I've got everything working properly again in 1.4 I'm switching to the mac. If there are issues there I'll look into them
FB_GitHubBot 16:02 FireBreath: newmacwindows Richard Bateman * 26b2b7b (1 files in 1 dirs): Fixed issue #144
FireBreath: newmacwindows Richard Bateman * df07e7a (9 files in 3 dirs): Refactor to inline functions that should be inlined
FireBreath: newmacwindows Richard Bateman * f54acef (1 files in 1 dirs): Fixed build error on linux
FireBreath: newmacwindows Richard Bateman * ca92d4a (2 files in 2 dirs): Fixed typos
FireBreath: newmacwindows Richard Bateman * 49c6167 (1 files in 1 dirs): Reverted syntax change that broke WiX 3.0 support
FireBreath: newmacwindows Richard Bateman * a75e529 (1 files in 1 dirs): Added firebreath_sign_plugin macro
FireBreath: newmacwindows Richard Bateman * 6e93d0e (2 files in 1 dirs): Updated sign macros
FireBreath: newmacwindows Richard Bateman * 52e08b0 (1 files in 1 dirs): Enabled WiX for vs2005, fixed msgs
FireBreath: newmacwindows Richard Bateman * 29bd2a9 (7 files in 4 dirs): Several WiX improvements, including template
FireBreath: newmacwindows Richard Bateman * 60fda7f (2 files in 2 dirs): Updated fbgen templates for Wix upgrades and signing
FireBreath: newmacwindows Richard Bateman * 8a1d034 (1 files in 1 dirs): Added missing include
FireBreath: newmacwindows Richard Bateman * a1038ca (3 files in 2 dirs): Attempt to fix the multiple GlobalPluginInitialize call bug (#143)
FireBreath: newmacwindows Richard Bateman * 1feec51 (2 files in 2 dirs): Fixed some link issues on linux
FireBreath: newmacwindows Richard Bateman * 8cdcef6 (3 files in 2 dirs): Added assert that globalinit not called twice
neilg_ 16:02 There is the issue where I can't make it use boost dynamically but that's not a blocking issue IMO
taxilian 16:02 agreed; I have no idea what would cause that, btw
neilg_ 16:02 Me either. I'm looking into it, I mentioned it here in case you'd heard about it before
Would you mind if I added a CMake param to do it?
Similar to how WITH_DYNAMIC_MSVC_RUNTIME works?
taxilian 16:02 wait… you know that passing in -D… on the prep script only passes it to cmake, right?
it doesnt' automatically make a preprocessor define
neilg_ 16:02 That's strange then because the build system right now passes -D to CMake which automatically creates the preprocessor define (that's how I currently link against boost dynamically)
I thought that was the whole point... :o
taxilian 16:02 no, those -D commands define variables in camke
cmake
but yeah, if you want to create such an option in cmake I'm okay with that
taxilian 16:02 FireBreath 1.4 RC1 is out! http://npapi.comhttp://www.firebreath.org/x/ggQh
jshanab_wcw 16:02 taxilian. I got 12 cameras in a web page from 30fps to 3 fps 720P to CIF all scaled to 400x300 using 50% CPU
taxilian 16:02 with flash?
I guess 3fps might be slow enough to make that possible
jshanab_wcw 16:02 No, My firebreath plugin. All H264 decodeing with avcodec
taxilian 16:02 I usually deal with full-motion NTSC
ahh, not bad
that's not so surprising to me, then =]
if it's your plugin
I'll admit that I'm a little biassed against flash video, though
how are you rendering?
if you don't mind me asking
jshanab_wcw 16:02 RIght, but the security camera world is weird. People want 12 cameras on their dsl connection
I am Using SFML. the thought was that it will work on Linux,Mac, and Windows
I tried GDI+ and then tried SDL but it gave me fits. So I tried SFML and it is easy to use.
Now i need to add some HW acceleration :-)
taxilian 16:02 interesting; I will have to look at SFML
that's where it gets… fun…. =]
have to admit, the improvements list for 1.4 is pretty impressive
now if anyone hasnt' moved to 1.4 yet, it's now an RC… please please please move now!
jshanab_wcw 16:02 The only issue i have is that it is on openGL and he chose to use RGBA, but the decoders all put out YUV. that is 4bytes/pixel vs 2 bytes per pixel. DirectX lets you sent YUV direct to the card. I found a way to fix SFML using a fragment pixel shader.
taxilian 16:02 DirectX will only allow you to use YUV on certain cards
so be careful of that
some cards even support it on mac w/ OGL but won't work on windows with dx
hmm. actually, I was using YUY2 when I had that problem, but I *think* that YUV has the same issue
jshanab_wcw 16:02 DirectX would tie me to windows, so i wanted to avoid it, but the way the plugin has a win.lin,and mac dierectory i was gona let performance dictate the decision
taxilian 16:02 how hard was it to integrate SFML with firebreath?
might it be worthwhile to create a tutorial on doing it?
jshanab_wcw 16:02 20 min
and 4 hours to learn that you MUST link to the lib built with the same version of visual studio as the dll was built with or you will have random results!
taxilian 16:02 lol. yes, that would do it
would love to see an example project using SFML
jshanab_wcw 16:02 it is like libC versions
I get the hint. Maybe I could create a subset example. I don't know if I can. Won't know until after the "scrap and start over" meeting
taxilian 16:02 if you find some time =]
jshanab_wcw 16:02 what would be a goodd example, playing a video or drawing something in opengl? I think the video is probably the norm
taxilian 16:02 video might be too close to what you're doing at work; I don't want any concerns with your company feeling like you're giving away proprietary code
but just drawing something simple in opengl would be fine
something easy just showing that you can do some UI
and then we'll try to get it working on all platforms
jshanab_wcw 16:02 Yeah the video example would depend on too much anyway, like the rtsp consumer and the decoder
taxilian 16:02 right
part of the reason I have done so little with UI is that I worked on the DX9 renderer at Move Networks and that's a little too close to things that I may know some proprietary things about doing
definitely wont' be writing a video player
though Move is now using FireBreath, which is awesome
jshanab_wcw 16:02 yeah. I always get a bit of a chuckle. Companies hiring you specify years of experiance and companies you work for specify you can't take it with you. Somewhere in there is a good XKCD comic
Hey, that is resiprosity at it's best
taxilian 16:02 lol
yeah
there are some at Move who are mad at me for starting FireBreath because they claim that I "took the framework I wrote there and open sourced it". Of course, the architecture isn't anything near the same and it was a complete cleanroom implementation, but they've never actually looked at the code so they wouldn't know
so they're trashing my name to anyone they can (not sure why? doesn't seem to hurt them any….) and telling people that i'm not capable… but then they decided to use FireBreath anyway. :-P
none of them have said anything to me directly, though, so there is no way to figure out what is behind it. ahh, well
jshanab_wcw 16:02 The politics of a medium to large company is what surprized me the most about my first SE job
taxilian 16:02 yeah; that is one nice thing about being a contractor is that I don't see hardly any politics at Facebook =]
though I'm sure they are there
jshanab_wcw 16:02 Actually, SFML has a video player as an example in a single page, it reads from a file. If that file was on the server, i suppose wrapping there player example in a FB plugin could even be a video. HUmmm I will think about it, gotta run.
taxilian 16:02 cool
cya
sabotaged|wk 22:02 any info on which browers create minidumps when a plugin inside them crashes?
taxilian 22:02 all of them, if configured correctly
at least on windows
sabotaged|wk 22:02 ok thats good
taxilian 22:02 do some research on configuring dr. watson
sabotaged|wk 22:02 oh well i know you can setup 3rd party tools to monitor for crashes, and make dumps
but by default do the browers make dumps themselves? like with crashpad or somethin?
g
taxilian 22:02 do some research on what dr. watson is and how to configure it
particularly as it relates to crashdumps
sabotaged|wk 22:02 you can set it as a debugger to generate crash dumps when any app crashes, right?
taxilian 22:02 yes
sabotaged|wk 22:02 my question was whether any of the browers themselves have crash dump factilities built in. so that you don't need something on a system level setup
i know firefox has that reporter for its own crashes, right?
taxilian 22:02 firefox and chrome at least do
but what they give you isn't particularly useful
sabotaged|wk 22:02 why's that
taxilian 22:02 no debug symbols for your binary
and they don't let you download the dmp file itself (as far as I can tell)
sabotaged|wk 22:02 wouldn't you build your binary yourself and keep the debug symbols?
taxilian 22:02 yes; but since you can't get the .dmp file from the browsers (in any way that I have yet found; there might be a way that I don't know) it doesn't help you
sabotaged|wk 22:02 ok
i wonder what would happen if you tried to add something like breakpad to a plugin?
taxilian 22:02 I've considered it
the problem is that you'd likely run into conflicts with the browser's
sabotaged|wk 22:02 yeah
taxilian 22:02 you can clobber their crash handler, of course, but it's hard to say what would happen
prem 23:02 hai
taxilian 23:02 hey
long time no see
prem 23:02 ya..
i got firebreath to encase my COM control
taxilian 23:02 awesome =]
prem 23:02 no no.. i mean it loads without crashing.. earlier it used to crash the plugin..
but i still can't seem to access the APIs..
i went thru the example.. the control in the example is built using vb6, right?
taxilian 23:02 I think so
when you say you can't access the APIs, what do you mean?
prem 23:02 in the example.. the APIs from the control are called from the APIs of the plugin..
suppose i have an API to draw a circle in my control.
i can expose an API in the plugin, and from that API call the api of the control..
taxilian 23:02 does your COM control expose it's methods through IDispatch?
prem 23:02 its VC++ in visual studio 2008.. it uses ole, right?
taxilian 23:02 uh… OLE is a standard, not a "supported by this, not by that"
prem 23:02 i'm not very experienced in this.. just started work abt 9months ago..
taxilian 23:02 but you need to make sure you have a dual interface or the methods used by the example won't work
yeah, COM is a beast
prem 23:02 it uses the macro BEGIN_DISPATCH_MAP
taxilian 23:02 not certain if that means anything or not
prem 23:02 how can i know if it uses idispatch?
taxilian 23:02 I'd have to look at the class; I'm not sure how you can tell on a normal contorl
control
are you using ATL?
prem 23:02 no MFC
taxilian 23:02 then I wouldn't know
I've never written a control with MFC
prem 23:02 oh.. i'll just have to keep working on it..
so what's new with firebreath?
taxilian 23:02 1.4RC1 is released
prem 23:02 aha.. good..
prem 23:02 hows the work with facebook going?
taxilian 23:02 going pretty well; should find out if I will be continuing or not sometime in the next two weeks
Jiancong 23:02 Hi there.
taxilian 23:02 hello
I don't think I've seen you here before
welcome
Jiancong 23:02 Yeap...
Thanks. I've just join this room.
Recently start to using FB to startup a new project...
So.... :-)
taxilian 23:02 =] hows it going so far?
Jiancong 23:02 Yeap... We met a problem when we try to get the window ID of each plugin.
taxilian 23:02 linux?
Jiancong 23:02 I hope we can get the window ID of parent in Chrome on Linux...
But I found FB dosn't export such kind of func to customer.
taxilian 23:02 most likely the closest you can get is https://github.com/firebreath/FireBreath/blob/master/src/PluginAuto/X11/PluginWindowX11.h#L55
Jiancong 23:02 From the FB source ,there is a such kind of func in PluginWindowX11
taxilian 23:02 getBrowserWindow()
Jiancong 23:02 Let me see. :-)
taxilian 23:02 if that's not it we probably can't get it
Jiancong 23:02 Thanks a lot. Will come back if I met questions:-)