|IRC Nick||Time (GMT-7)||Message|
|mital||01:02||taxilian: up ?|
|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|
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
|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||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
#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
|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'|
|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
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
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 =]|
hey sorry i have commited the print statements as welll.. removing them in next commit
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
|taxilian||02:02||will be tomorrow, since it's 2:30am here now =]|
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
|mital||02:02||globalPluginInitialize() will be called once per page ? or globally only one time ??|
|taxilian||02:02||globally only one time|
|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
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
|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
|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|
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
|taxilian||03:02||well, finished my homework so I need to go to bed
|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/*|
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||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|
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
Look at the top of examples/FBTestPlugin/test.HTML
|Raffaello||09:02||thanks a lot!|
taxilian, I'm getting some brutal compiler warnings from your latest firebreath-1.4 branch
in the lines in question
we definitely need to fix this
this isn't kosher
you should be using boost::enable_if
|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
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
|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
comparing anything by using typeid() is 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|
|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
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|
|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
|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|
|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
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
|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
|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
|neilg_||11:02||I'm not sure whether it's set_target_properties or not|
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 :-)|
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.|
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||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|
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
|taxilian||14:02||and 3.5 complains with the old syntax
so I use the old syntax because even though it complains, it still works
|neilg_||14:02||So, back to getting things working... lol
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?
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!
|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|
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
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 :)
|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
|neilg_||15:02||What error is that?|
|taxilian||15:02||but it'd sure be nice to figure out how to fix it|
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|
it builds fine on the build server
|sabotaged|wk||15:02||so you never see the issue?
|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
|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
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|
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?
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|
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
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.|
|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?
|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?|
|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
|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|
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
|taxilian||22:02||you can clobber their crash handler, of course, but it's hard to say what would happen|
long time no see
i got firebreath to encase my COM control
|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
are you using ATL?
|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||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|
I don't think I've seen you here before
Thanks. I've just join this room.
Recently start to using FB to startup a new project...
|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.|
|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|
|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:-)|