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

IRC Nick Time (GMT-7) Message
_vizZ 03:04 hello there :)
it's me again! ;D
this time i just wanna leave you a note ;)
i did some cross-browser tests today and i found out that the default ( generated and built basic project ) fb plugin crashes on the very first load in opera 9.5 ;)
yeah, i know it's a legacy browser but hey - "you just never know when a bug comes out of the hole" ;p
apart from that
i've tested it with the generated test page
btw, fb is again superior to any other solution i've tested as it works in opera 11.10
and that is where my other plugins failed
i mean, you can load them, but you can not call any function on the loaded object :/
in opera 11.01 everything works well
btw, have you guyz ever used QtBrowserPlugin? :>
i managed to create some cross-platform plugins with it ( Win, Linux, MacOS )
ofc, it is dedicated to Qt solutions ;)
and that is one of the solutions not working in Opera 11.10 ;[
;p
btw tax, i do remember my promise about some tutorials on Qt & FB
i have some work to do there in about 1-3 months, so i will provide some code samples for you all ;)
just be patient ;p
ok, back to work, over & out ;D
cxo 07:04 Hey guys. What is the cmake target called for my plugin­(Q) I want to add some of my libraries to the link.
(sorry my question mark key shows up like - É for some reason in here)
nomuna 07:04 I had the same problem... the plugin was for linux so I went to the X11 folder and edited the projectDef.cmake.
cxo 07:04 When I do target_link_libraries(${FBSTRING_PluginFileName} mylib) in the CMakeLists.txt it says that the target is not built in this project
nomuna 07:04 add after the
target_link_libraries(${PROJECT_NAME}
${PLUGIN_INTERNAL_DEPS}
)
your target_link_libraries. Like target_link_libraries( m ) //m is -lm.
I hope it helped...
cxo 07:04 Again it just says that my target is not built in this project
Oh you mean put that in the x11 specific folderÉ
My libs are common across platforms
How do you import variables set in gnu makefilesÉ
nomuna 07:04 It is a cmake thing. Doesn't have anything to do with Firebreath. Look at the documentation for cmake and see if you have cmake config file on your system for the library you are trying to add for the linker.
CMake generates Makefile for you...
So no reading from Makefile...
cxo 07:04 I think I want to have cmake build firebreath and then gnu make take over and build the plugin
nomuna 07:04 Yeah right... You call prepmake.sh .... etc. and you get Makefiles.
Bu the point is not to edit the Makefiles.
cxo 07:04 Yeah I know. I^d write my own makefiles separate from firebreath
nomuna 07:04 Why? You can use the Makefile (If you really need this) in the projects folder where Firebreath generated it for you...
so say I have s structure like this...
Firebreath plugin
I say
Firebreath/prepmake plugin build
and then in build folder I get a projects folder in which another folder with the name of the plugin i am working on. There is also the generated Makefile... You see what I am talking about?
cxo 07:04 Too complicated. I`ll have firebreath just build whatever it wants to. Then I`ll have make finish the job
nomuna 08:04 That's what I am telling...
you...
The library you added using the target_link_libraries should be listed in the CMakefiles/YourPluginName.dir/link.txt.
cxo 08:04 In the build directoryÉ I thought we`re arent supposed to touch anything in the build directory
(we arent)
nomuna 08:04 You wanted to work directly with the Makefile... That's where it goes...
Otherwise you use cmake to configure whatever it is that should go into the Makefile... UC?
I am just trying to tell you what happens as a result of running the cmake configuration and calling the generate script.
cxo 08:04 Oh I know that
What I`m saying is _I_dont_care_about_all_the_automagic_crap_that_cmake_does. After its done everything it wants to do and build everything it wants. I`ll build only my plugin using my own makefiles
nomuna 08:04 So I am saying if you are really dead set on your Makefile you could work with the generated stuff... Use versioning system is my advice.
cxo 08:04 oh i`m not going to touch the generated stuff
nomuna 08:04 So go to the generated projects/YourPluginName folder and play to your heart's content... Just use versioning system so that you can revert if "hit fits the shan"... :/
AFAIK
Oops... Away from Keyboard...
Grifo 08:04 Hi there
firebreath brand new user....
I completed the tutotial
r
but now I need some help on linking a library using cmake
(i would like to link ffmpeg to my plugin...)
any idea?
is someone there????
probably no...
NoAntzWk 09:04 Hi taxilian!
One question.... about cmake.
There are some easy way to add log4cplus to my plugin but only into debug's target?
taxilian 09:04 NoAntzWk: Not at present... If you figure out a way let me know :)
NoAntzWk 09:04 Ok... thanks! :)
taxilian 09:04 Cxo: the target name, as you can see by the target_link_libraries command, is ${PLUGIN_NAME}
Grifo: see the using libraries page on the wiki
!wiki libraries
FireBreathBot 09:04 8 results found. Note: Results limited to 8
"Using Libraries": http://goo.gl/cUVa6
"Re: Feedback": http://goo.gl/xZWWc
"Building on Mac OS X": http://goo.gl/iQ1mh
"Documentation To-Do": http://goo.gl/XzBGF
"FireBreath 1.5.0RC1 Released!": http://goo.gl/lppMa
"Helpful Links": http://goo.gl/vDlMu
"Ideas": http://goo.gl/7QuAp
"FireBreath 1.5.0 Released!": http://goo.gl/xzf0Y
taxilian 09:04 I will be back later
NoAntzWk 09:04 When I have a little time, I will try to develop a first version of Firebreather-28 (Abstraction for retrieving data and proxy authentication) on my GitHub branch. And will notify you :P
relevant 09:04 umm, talixian
My firefox is not invoking the plugin somehow.
Is there any way to debug/fix it?
jshanab_wcw 09:04 I had this alot. Start firefox, attach debugger to firefox. place break points as needed and drag in test page. You will find where it fails to load. Unless it is purely unable to fid a dll at load time, use dll dependency walker to ddebug that
taxilian 10:04 NoAntzWk: cool; did I already show you where there is some proxy detection code already in the firebreath codebase? it's the fallback code for if npapi can't/doesn't give you proxy info
relevant: "not invoking the plugin". what do you mean?
does it show up in about:plugins?
relevant 10:04 it does show up in about:plugins
but <object src="..." type="mytype"> doesn't invoke the plugin
taxilian 10:04 hmm. what OS?
taxilian 10:04 NoAntzWk: so I was thinking about it; if you have a reference to the HWND created on the other process, couldn't you use that to post messages like WM_PAINT for the child process to handle?
Grifo 10:04 the problem
is that
I'm not so used to cmake
I've never used it
but
if I understoord
the idea
is to modify the cmake
file
projectDef.cmake
to add my libraries
taxilian 10:04 could you try putting more than a few words on each line? like, a full sentence? it makes it lots easier to read
Grifo 10:04 so I added
find_library(FFMPEG_LIBRARY FFM)
include_directories(${FFM_INCLUDE_DIRS})
target_link_libraries(${PROJNAME}
FFMPEG_LIBRARY
)
but the question is:
when do I specify the path to ffmpeg library???
taxilian 10:04 if find_library worked then it found the path
in target_link_libraries you should be using ${FFMPEG_LIBRARY}, not just FFMPEG_LIBRARY
grifo: http://www.cmake.org/cmake/help/cmake-2-8-docs.html#command:find_library
also, FFM_INCLUDE_DIRS will only be a valid variable if you have defined it; find_library won't make it for you
Grifo: are you using 1.4 still?
grifo 10:04 yes
becuase the tutorial
was not updated for 1.5
taxilian 10:04 I would recommend you update to 1.5; it won't fix this problem, it's just got some nice updates
really? most things should be the same; which tutorial?
grifo 10:04 http://www.firebreath.org/display/documentation/Creating+a+New+Plugin+Project
for example
I didn't fine the fbgen.py
find
taxilian 10:04 it's there
that hasnt' changed
!findfile fbgen.py
FireBreathBot 10:04 Found 1 matching file(s) in the master branch. First 1 are:
fbgen.py http://goo.gl/mG4jw
taxilian 10:04 hmm. need to fix that in the bot
https://github.com/firebreath/FireBreath/blob/master/fbgen.py
grifo 10:04 downloading again the 1.5 version...
amackera 10:04 hey guys, sorry i've been awol for so long!
grifo 10:04 you're right
taxilian 10:04 lol. amackera! you're back!
grifo 10:04 probably I had some problems when moving the folder
Ok
switching to 1.5
but
taxilian 10:04 grifo: could be. you might consider just checking it out with git
grifo 10:04 going back to my question
find_library(FFMPEG FFM <ffmpeg_path>)
??
taxilian 10:04 grifo: no; if you're using find_library, you're telling it to search for the path. look at the docs for find_library that I linked you
you could also try using http://www.openlibraries.org/browser/trunk/FindFFMPEG.cmake
if it works, you would include it and it would look for FFMPEG for you and then set variables to tell you where they are
grifo 10:04 great
I will try with that
I'm sorry but I started yesterday
with this kind of developments....
one high level question
do you see any problems in using ffmpeg inside a firefox plugin created with firebreath to acquire and decode videos
??
taxilian 10:04 no idea; I haven't tried it
actually, come to think of it I know of people who have been able to make it use it
grifo 10:04 great
for example
I'm thinking about the coolirs plugin for firefox
that uses ffmpeg and openGL
cooliris
do you know it?
taxilian 10:04 nope
grifo 10:04 http://www.cooliris.com/
http://www.cooliris.com/desktop/
especially
http://stackoverflow.com/questions/725489/does-anyone-know-what-cooliris-was-developed-in
I'm trying to understand what are the possibilities of a firefox plugin
Download the latest beta (1.10) for Firefox. All files are install in the \User\AppData\Roaming\Mozilla\Firefox\Profiles\<default profile> folder. Search for cooliris19.dll, you will see its a cpp dll. use Depends.exe on that dll, you can see that it uses DirectX. – Shay Erlichmen Apr 8 '09 at 9:27 1 up vote flag For the media playback they use ffmepg. Just because something is cross platform doesn't mean it cross platform code.
taxilian 10:04 read http://npapi.com/extensions for info on what a browser plugin is
sounds like cooliris is not a plugin, but a XPCOM extension
which means it only works on Firefox
grifo 10:04 If I understood
cooliris is an extension (the button on the firefox GUI) that install also a plugin (that does the rendering)
since I can find the DLL on my machine after installing it
taxilian 10:04 cooliris19.dll is not a valid plugin filename, so it can't be a plugin
plugins have to start with np
on windows
grifo 10:04 ah ok
so what is it?
taxilian 10:04 to repeat myself, I would guess it is an XPCOM extension
however, please take a moment to read the link I sent you as that will help you understand the difference
grifo 10:04 reading it...
you're right
I found it
on my disk
C:\Users\Andrea\AppData\Roaming\Mozilla\Firefox\Profiles\p3lu5u0k.default\extensions\[email protected]
taxilian 11:04 it is possible that the extension has an npapi plugin in it as well; I don't know.
grifo 11:04 how can I search for it?
taxilian 11:04 np*.DLL
sorry, np*.dll
stuartmorgan 11:04 Their Chrome extension uses a plugin at least, so presumably the Firefox one does too
grifo 11:04 npcoolirisplugin.dll
C:\Users\Andrea\AppData\Roaming\Mozilla\Firefox\Profiles\p3lu5u0k.default\extensions\[email protected]\plugins
taxilian 11:04 well, there you go. they use an extension with a npapi plugin inside it
grifo 11:04 ok
so the extension manage the interaction with thw browser (the buttons, etc...)
while the plugin does the rendering?
taxilian 11:04 potentially
grifo 11:04 (I'm sorry for my stupid questions but before yesterday I never hear about NPAPI or plugins...)
taxilian 11:04 the plugin only affects the area of the object tag; it can also interact with javascript on the page
it cannot touch the browser itself, only the page
grifo 11:04 What I have to do is a plugin that get an RTSP live video stream and displays it
that's all
And I'm trying to understand
taxilian 11:04 that should be doable in a plugin, I would imagine
grifo 11:04 if it's feasible with a plugin
taxilian 11:04 don't know why not
grifo 11:04 great!
on a standard c++ console application I'm able to use ffmpeg to acquire and decode an RTSP stream
(it's easy)
I would like to know if using it inside a plugin adds some limitations
or it's pure c++ code execution
taxilian 11:04 it's pure c++ code excution, but keep in mind that you are running inside a browser process
so you may have permissions restrictions on accessing the disk
grifo 11:04 only the disk?
I'm not using the disk
since the plugin needs to connect directly to the camera
taxilian 11:04 possibly drivers as well; don't know. do some research in low integrity mode
grifo 11:04 ok
thanks
but for the rendering?
taxilian 11:04 on windows you get an HWND
grifo 11:04 do I have to use some specific libraries to render image inside firefox?
taxilian 11:04 and you need to be aware that the browser owns the lifecycle
grifo 11:04 usually I use
http://www.libsdl.org/
for the console application
taxilian 11:04 probably still useable; there will be some quirks, though
grifo 11:04 can you please provide me some good links
to undestand how rendering is done
inside a plugin?
cristcost 11:04 aaaa
Hello
taxilian 11:04 grifo: look on colonelpanic.net; there is an article on windows drawing
cristcost: hello; I need to drop out for a bit, but if nobody here can help with whatever you need I'll be back a bit later
grifo 11:04 taxilian
thanks for your help
ciao!
taxilian 12:04 back
starakaj 13:04 hey dudes
so
precompiled headers?
taxilian 13:04 nope
I looked into it
it would not be simple
extraordinarily non-simple, even
but there is a way to precompile the 4 main firebreath core libraries so that you dont' have to recompile them
starakaj 13:04 ah
taxilian 13:04 new feature in 1.5
totally undocumented
only I know how
starakaj 13:04 lol
taxilian 13:04 but if your'e willing to write it up on the wiki, I'll spill the beans ;-)
starakaj 13:04 open-source is just a sign of weakness after all
actually, first
taxilian 13:04 hehe. well, you could figure it out by reading the code if you wanted
starakaj 13:04 I guess I should have asked a real question
how can I use my OWN precompiled header?
taxilian 13:04 do a search for cmake precompiled headers
it's pretty non-simple, but it's doable
starakaj 13:04 k
that
right there
is the scariest sentence in all of software engineering
taxilian 13:04 yep =]
starakaj 13:04 possible engineering in general
taxilian 13:04 http://stackoverflow.com/questions/148570/using-pre-compiled-headers-with-cmake <— this is the best source of info on it that I've found
starakaj 13:04 thanx
taxilian 13:04 yw
starakaj 16:04 okay, this is surely a dumb question
but how do I get a keyboard even that's just a regular key
taxilian 16:04 !find PluginWindowWin
FireBreathBot 16:04 Found 2 possible matches. Displaying 2
/^PluginWindowWin::PluginWindowWin(const WindowContextWin& ctx)$/ (f) found in src/PluginAuto/Win/PluginWindowWin.cpp: http://goo.gl/NdqTe
/^ class PluginWindowWin : public PluginWindow$/ (c) found in src/PluginAuto/Win/PluginWindowWin.h: http://goo.gl/7GfMo
starakaj 16:04 oh, is it platform specific?
I can't just add a... well, I don't know if it's really called an event listener
but an event listener for a keydown and then work with that?
taxilian 16:04 !find WinKeyCodeToFBKeyCode
FireBreathBot 16:04 Found 1 possible matches. Displaying 1
/^ FBKeyCode WinKeyCodeToFBKeyCode( unsigned int wparam )$/ (f) found in src/PluginCore/Win/KeyCodesWin.cpp: http://goo.gl/yGGqC
taxilian 16:04 I'm trying to find it =]
starakaj 16:04 oh, lol, thanks
taxilian 16:04 I haven't actually needed to use keyboard events yet
so you can either use the windows key event, or I think the FBKEY stuff works on both mac and windows
but I don't know how it works well enough to know for sure how normal keys come through
possibly just as the ascii code
brb, gotta reboot into windows