IRC Log Viewer » #firebreath » 2012-01-02

IRC Nick Time (GMT-7) Message
someone-noone 05:01 jshanab_wcw: i've implemented mac video player. I also need win and linux version. I can give you some advices on how to implement it on any of this platform. Or even we can make a fair exchange if you will implement linux or windows version.
jshanab_win7 08:01 I have been trying to figure out how the MAC version of the BasicMediaPlayer works. Is it a builtin player that we are just providing callbacks for?
someone-noone 08:01 jshanab_win7: basicmediaplayer on mac it's just an example of using CoreAnimation, CoreGraphics and friends on mac
If you will be trying to draw video frames you need to implement more then there
BasicMediaPlayer is not a media player :)
it's just a name
jshanab_win7 08:01 ok, so it is not the same as the windows version? which uses a very high level directX rendergraph but does play video.
I did see opengl drawing in the mac version
someone-noone 08:01 it's the same in idea, but not in implementation :) Basically, you need CoreAnimation and OpenGL for this. But it's not so trivial
This is not well documented on … i spent month or even more trying to do this on mac :)
jshanab_win7 08:01 yeah I recently implemented an HLS server and found the apple doc to be beutiful but "vauge"
someone-noone 09:01 If you're building plugin for 10.7+ versions, then you may choose Core Video for solving such task (this is what i have done)
it's the best choice (i think). This method draws YUV422 frames with hardware accelaration
You may use it on 10.6 too, but only for YUV444 frames
jshanab_win7 09:01 OK, thanks. Can I feed it frames? or does it require a standard file format input?
someone-noone 09:01 You can feed frames. Frame could be RGB,RGBA,YUV. There are lot of defined and supported frame formats. But most of them don't work on 10.6
jshanab_win7 09:01 So I get to decode the H264 myself. Sounds like my current plugin is doing most the work already.
someone-noone 09:01 Yeah. That is i have done too. I'm using ffmpeg (libav*) for this
jshanab_win7 09:01 Thats what I am using.
But I am thinking of trying OpenMAX for a plugin for the redering side
And it will pull in hardware accelerated decode if avail. or so they say. Might make a great firebreath player
linearray 09:01 dear video experts: is there a non-GPLed h264 library?
someone-noone 09:01 Hm, interesting library. But i'm not sure that it could work with firebreath (with plugins)
linearray: for decoding or encoding?
linearray 09:01 decoding
someone-noone 09:01 LGPL is not okay too>
linearray 09:01 LGPL is fine
jshanab_win7 09:01 libavcodec
linearray 09:01 ah ok
someone-noone 09:01 yeah, libavcodec with —disable-gpl is best
jshanab_win7 09:01 I discovered that while libavcodec does not win any speed contests, it is fast enough and provides a better picture than some proprietary ones. I think this is two pass and the deblocking filter, but I haven't dug into it
someone-noone. Why would we NOT be able to use in a plugin ?
someone-noone 09:01 do you know how OpenMax is outputting video?
you need to draw on window (hwnd, gtk_window) or to graphic context (on mac, because on mac plugins are windowless)
jshanab_win7 09:01 Well it depends. It is from the openGL people so I am guessing it is a layer on top of that like SFML except the API also covers decodeing and encoding. From one description its is a lot of adapters for platform provided decoders/encoders
someone-noone 09:01 Yeah. Decoding,encoding is not a problem. Drawing onto browser space is a problem
Espacially, on mac :)
You need a mechanism of drawing onto hwnd\gtk_window\core animation . Does OpenMax provide it?
jshanab_win7 09:01 Right. I cannot even get xcode to work on My new MAC. some issue with latest version of LION and Xcode
linearray 09:01 what exactly is not working?
jshanab_win7 09:01 I really on just started reading on it. I think it will give you a surface given a handle for whatever platform you are on. They mention droid and other smartphones also. Just gonna have to give it a try
someone-noone 09:01 i could make you an offer. If you implement such task (drawing of frames) on linux or windows, i can give you a mac version.
jshanab_win7: let me know of your results… sounds promising, but i don't believe yet :)
jshanab_win7 09:01 linearray. it thows an assert in the xcode runtime during build.
linearray 09:01 I'm sure there is a way around that
taxilian uses that setup and it works for him
jshanab_win7 09:01 If I do figure out something, I will. I am thinking if there is any way to carve out the time I will create a new example for Firebreath that is an HLS client
someone-noone 09:01 i'm on mac lion. Xcode + firebreath = ok
jshanab_win7 09:01 I know. I don't have the mac powered up at the moment, but I found some blogs online and it is apparently only a conflict on the two newest versions of each, and only if they are both installed fresh. Sounds like something got left off the installer that the previous version had already installed on teh disk
linearray 09:01 did you follow my advice and reinstall xcode from the app store? :)
jshanab_win7 09:01 yes. Appeared to work for a minute then crashed with the same assert. I bookmarked a workaroud and I was planing on trying it when I get to the shop
yesturday I built the examples on the windows box as a baseline
So, I will catch all of you later. Past time for some Breakfast and I am out of coffee!
linearray 09:01 enjoy
someone-noone 09:01 I'm searching a plugin-developer for hiring. Is it okay, if i will be trying to this on this channel?
Don't sure that it will not annoy anyone
linearray 09:01 unless you repost it every hour
I guess it's fine :)
but also try the mailing list... more people there
someone-noone 09:01 i will do it not more than once per day
ok? :)
and thanks for advice about ml. That is a good idea
linearray 09:01 fine with me, but I'm not the boss
someone-noone 09:01 i will wait for the boss :)
taxilian 10:01 g'monring
jshanab_wcw 10:01 morning
taxilian. I have a question about that visual studio class diagram tool. You said you have used it. It looks pretty good but it will not let me drag some headers on to it, no error just doesn't drag. If I right click and choose show clas diagram it says "an item with the same key already exists" Have you seen this before, it is driving me nuts
taxilian 10:01 hmm. I haven't used it in a long time
I really don't remember
I was able to get a fairly decent diagram built pretty easily, though, if I remember
jshanab_wcw 10:01 Yeah pretty nice. but unfortunantly 75% of a diagram doesn't work to well :-(. OMG you should of seen the ReverseEngineer to visio. it was awful
taxilian 10:01 hehe
jshanab_wcw 10:01 maybe 2-10 out of 200-300 classes showed up
jshanab_wcw 11:01 taxillian. I figured out whats wrong. Any class that i cannot get added from the solution explorer, jsut go into class view and it drags fine. So far these are examples where the filename does not match the classname. Proably a C++ specific issue. Anyway, Just thought I would mention the work around.
taxilian 12:01 ahh
glad you got it working
taxilian 12:01 it's interesting to me that we get more and more people in here, and yet many of them never actually ask or say anything… =]
Courtney 12:01 Could be they're reading the docs ;) I'm new to firebreath and I thought it'd be good to have it opened while I read. If i get any questions I'll ask :D
taxilian 12:01 hehe
fair enough
and thank you for being one of the apparently comparatively few who actually read the documentation.
Courtney 12:01 thanks and no probs lol, it's a very interesting project
taxilian 12:01 we like it
Courtney 12:01 I figured best read before I make a fool of myself asking silly questions
taxilian 12:01 well you're doubly welcome, then :-P
jshanab_wcw 15:01 Taxillian. one more question.... (and if you believe that I have a bridge for sale) That VisualStudio diagram looks to me to be inheritence only? if I want to add composition or aggregation I have to draw it on the printout?
taxilian 15:01 hmm. I really don't know
jshanab_wcw 15:01 Well, I have looked and I cannot find any way. Can't export to viso, only an image. gotta finish in paint? LMAO
taxilian 15:01 heh
that's really weird; are you sure you can't save it and open it in visio?
I'd expect visio to be able to natively open that filetype
jshanab_wcw 15:01 There is a seperate viso menu item called reverse engineering that takes forever and doesn't produce anything usefull. I admit I didn;'t try to open the .cd file in visio, that is an idea
taxilian 15:01 now, this is microsoft, so there are no guarantees… but it seems to me silly to have such a pairing of products and *not* have them able to work with each other
jshanab_wcw 15:01 I guess they think it is covered with the "reverse engineer to viso" menu item. For the life of me I do not know why it doesn't work. They bought the top end multideveloper floating license. The whole ball of wax. like > 14K as far as I know. Ishould have all the bells and whistles
taxilian 15:01 really? that's weird; the MSDN subscription that comes with both that and everything else is only $3K or so
linearray 15:01 per developer :)
jshanab_wcw 15:01 We have the MSDN also. I don't know how much they paid, the microsoft site says just VS201 Premium version we have is >5K for single license
linearray 15:01 that's funny
taxilian 15:01 oh, right… multideveloper version
that would make it a lot more pricy
I'm currently without an MSDN license… I'll probably have to finagle one again when vs2011 (or 2012, whichever the do) comes out
I suspect my current employer would get me one if I really wanted one badly enough
but I don't want him to waste the money until I need it
jshanab_wcw 15:01 I guess I shouldn't be surprised, I just did a big comparison of about 10 pieces of software in the $2500 - 5K price range, cad programs and was surprisingly disappointing. All of them had major flaws or holes and wanted to sel the 15K version that, according to them, filled all the holes. I guess I expect to much!
taxilian 15:01 CAD programs are completely ridiculous
jshanab_wcw 15:01 Ad their concept of quality or complete software has fallen thru the floor
taxilian 15:01 this is another reason that Apple gains so much support sometimes… sure, they require $100 for a developer subscription (each for mac os and for ios) if you want to put stuff on their store, but the development tools themselves? free.
linearray 15:01 in the beginning MS won over many developers by giving away the dev tools for free
now apple does it
jshanab_wcw 15:01 I have heard a lot of people say that for c++ best to go back to VS2008. I would be afraid, very afraid for a newer version of VS for c++
taxilian 15:01 I've heard the same; TBH, I haven't had much trouble with 2010
I think it actually works better for me than 2008
either work fine, though
I may just be so used to working around quirks and such that I don't notice, however
the only C++ development I do is plugin related, so...
jshanab_wcw 15:01 I would LOVE to follow in Firebreath's footsteps and create a cmake system for all my code. Then I am not tied to VS so strongly
taxilian 15:01 it's a bit of a pain at first, but there are some definite advantages
I still want to rework firebreath's cmake from the ground up to make it more friendly with other cmake build systems
jshanab_wcw 15:01 It is weird, I have not figured out why sometimes it works great and sometimes it just gets confused and I have to restart it 3 or 4 times a day, totally random.
taxilian 15:01 FireBreath 2.0; I am contemplating what things I would want to change. the cmake structure is high on the list
probably the drawing model negotiation as well
jshanab_wcw 15:01 Wow, I love the way you have done it already. I was able to add many directories of my common code just by dropping a cmakelist.txt in the directory and re-preping
taxilian 15:01 well, and with an add_subdirectory command
what I'd like to do, though, is change the way the prep commands work
*maybe* even provide default batch files but no longer maintain real prep scripts, now that we no longer need special behavior on mac
so you'd run cmake on your plugin directory
and you'd set (either on the command line or in your CMakeLists.txt file) the location for FireBreath and include it
jshanab_wcw 15:01 Yeah, and a few includes too :-)
taxilian 15:01 you'd still have to build the same targets, etc
well, you'd include the PluginConfig.cmake file yourself; possibly you'd call a FireBreath macro that would include it and do some config magic to get everything where it is
I think we could keep it down to not many lines of firebreath-specific cmake commands, though
ecastro 15:01 Hi
jshanab_wcw 15:01 I may have missed a bit of your conversation, Everyone left and came back to the IRC
taxilian 15:01 netsplit
I think what you missed is:
> what I'd like to do, though, is change the way the prep commands work
> *maybe* even provide default batch files but no longer maintain real prep scripts, now that we no longer need special behavior on mac
jshanab_wcw 15:01 That is the first time i saw that.
taxilian 15:01 > you'd still have to build the same targets, etc
at that point you were back
ecastro 15:01 taxilian: Can I change or add argument to the HTTP header, like a Referred with some method of Firebreath
jshanab_wcw 15:01 Ah. So far I like the prep. i like the idea of being able to try GCC(mingW) or MS, or even the intel compiler
taxilian 15:01 ecastro: when you use browserstreams?
jshanab_wcw: that's not from the prep script, that's from cmake
you'd still use cmake
just you'd run it yourself, rather than having FireBreath's scripts run it for you
jshanab_wcw 15:01 someone-noone. I just saw your earlier comment on a linux media player. Definitly a gaol of mine
taxilian 15:01 that's really all the prep script does
jshanab_wcw 15:01 I took a look at the prep script. They are, it seems just a wrapper that makes for less typing. I guess the running of the to level from cmake could enable it's use form the gui
ecastro 15:01 taxilian: I'm using FB::SimpleStreamHelper::AsyncGet
to make a GET
but I wanna add the Referrer param into the HTTP header
taxilian 15:01 ecastro: those methods use the standard NPAPI stream APIs, which don't support custom header information
so the only way you could do it would be to implement the http access yourself using system APIs, curl, boost::asio, or something similar, in which case watch out for proxy servers
jshanab_wcw 15:01 Wow, This is why I just keep the channel up sometimes. I was gonna try that but I have acustomew header requirement. Curl it is!
ecastro 15:01 ok.... I'll use boost:asio to do what I want...
thanks taxilian
taxilian 15:01 one thing to look at them
there is a method on BrowserHost that you can use to detect the proxy
ecastro: make sure you are taking proxy into account unless you are 100% sure that you don't need it
jshanab_wcw 15:01 And...Have you used boost asio before? I fought it for a while and got it working but ended up redoing almost everything with curl. Boost::asio, at least on windows delivered very large chunks in bursts. If that is important to you at all run a test before you commit to one vs the other!
linearray 15:01 hehe asio
destroyer of productivity
taxilian 15:01 lol
linearray 15:01 even surpassing IRC and youtube
taxilian 15:01 brb
jshanab_wcw 15:01 I am doing video over Http so when I served out packets less than 8192, nad the layers below shipped them out in 1400 byte MTU chucks, It became a problem when boost asio reported data avail at 42 bytes then 64K, then 92K then 18 bytes and so on. CURL gave me a continuous stream of 1400 byte packets. (This was ASYN curl BTW
Grrrr. no print. I have to export it to paint. My distain grows daily
linearray 15:01 well, usually you can beat asio into submission
with one of the million read() overloads
e.g. if you only give it a 1400 bytes buffer it will return once it is full
jshanab_wcw 15:01 Man I spent a week and i finally said I will try CURL in one day I had it flying with 1/2 the CPU and smooth flow of data.
I thought that, but it still waits until it has a big chucnk then it runs quickly thru the small buffer fetching loop then builds up a large internal buffer then does it again. The delay was longer than the frame delay and would of required a big buffer on my end and thus add latency to my video
linearray 15:01 I see
jshanab_wcw 15:01 I was thinking it was a windows OS thing, but curl worked great
Maybe it is. Maybe curl bypasses some windows libraries and boost abstracts them. I judt got to the point where i had to cut bait and run
linearray 15:01 sure... I would have finished a lot earlier, had I used dumb BSD sockets
but now it works... robustly and nicely abstracted
jshanab_wcw 16:01 Well, i am heading home. I will catch you guys later. Wow, did it get cold quick today. News said wind chill temp of 0
linearray 16:01 and I thought it was cold over here
jshanab_wcw 16:01 I am still getting use to the weather here. 2 days ago it was 45 and in 3 days they say it will be 45 again. They have a saying around these parts: "If you dont like the weather, just wait 5 min" The second half is "and it will change to something else you don't like"
taxilian 16:01 hehe. they say that around here too
though lately it hasn't been all that interesting
I could use a little more of that global warming they talk about around here
linearray 16:01 we have pretty much of that this year
jan 3 and no snow yet
taxilian 16:01 we have no snow either, but it's plenty cold
linearray 16:01 here it's... 36? at midnight
taxilian 16:01 I assume you're converting that to F for my benefit?
linearray 16:01 yes indeed
taxilian 16:01 'cause otherwise that's sure warm =]
linearray 16:01 although you can probably handle C
taxilian 16:01 I lived in Russia for 2 years, remember… I am familiar with C
mostly with negative numbers C… :-P
linearray 16:01 but jshanab didn't :)
taxilian 16:01 lol
fair enough
linearray 16:01 during my stay in the US I even got a grasp of Fahrenheit
100 is hot, 80 is just right, 32 is freezing (literally)
cooking without a converter was fun though
taxilian 16:01 lol
linearray 16:01 425F? yeah, whatever...
taxilian 16:01 well, when I was in Russia I never had an oven that actually had a thermometer on it, so I never knew how warm it was
and that made baking *really* interestiung
however, since we didn't dare eat at other people's houses (the water was dangerous to us) and we lacked the funds to always eat out, we made our own food pretty much all the time
linearray 16:01 hehe most ovens are about 30C to 50C off
taxilian 16:01 lol
linearray 16:01 especially in the lower temperature range
well, the thermometer is off... not the oven
did you stay in moscow?
taxilian 16:01 no, I was in the Novosibirsk area
most of my time I spent in Omsk, but I spent a few weeks in Novosibirsk and between 6 weeks and 5 months in Krasnoyarsk, Irkutsk, Ulan-Ude, and Angarsk as well
linearray 16:01 most of these places I only know from cold-war era movies
taxilian 16:01 hehe. they are all good cities
and I have friends in each of them… it was really hard to come home, actually
linearray 16:01 something I've been asking myself for quite some time:
do people in utah really adhere to the Word of Wisdom?
regarding alcohol, tobacco, ...
taxilian 16:01 most of us, yes
and with such a strong subculture, there are those who pretend to but don't actually
linearray 16:01 interesting
taxilian 16:01 but it's the minority
a friend of mine has what he calls the 10% rule; 10% of any group of people don't actually live the way they claim to
so 10% of devil worshipers are probably really nice people ;-)
FireBreathBot 16:01 JIRA issue issue commented by victorabrash "Steps to sign plugin:
taxilian 16:01 but I have never tried a cigarette, never taken a drink of alcohol
nor have my parents and siblings, my wife or her family
linearray 16:01 I see
must be a healthy state
taxilian 16:01 Health insurance is definitely cheaper in Utah than it is anywhere else :-)
linearray 16:01 haha
taxilian 16:01 the thing is, if you never make those things part of your life it's really not hard to avoid them
linearray 16:01 well if you grow up in a society where these things are avoided
taxilian 16:01 though you have to be confident in who you are; when I travel I'm often offered coffee, beer, etc
granted; it's much harder when you live elsewhere. Mormons in Russia have a particularly hard time with that, since alcohol is such a common thing there
however, if your friends are really your friends, they'll respect your decision, wouldn't you think?
and there really are plenty of other things to drink =]
I mean, if I were to come and visit any of you guys I'm sure none of you would be offended if I didn't drink with you =] (well, or if I drank something nonalcoholic with you :-P)
linearray 16:01 of course not
taxilian 16:01 it's hard to be different, but it's just a question of deciding what is important to you
linearray 16:01 hehe, no use preaching to the choir
taxilian 16:01 =]
linearray 16:01 last time I checked Austria had the 4th largest alcohol consumption and the 2nd highest smoker rate in the OECD
taxilian 16:01 heh
that's one thing I really don't miss about Russia; the perpetual smell of tabacco everywhere and seeing drunk people laying under benches on the sides of the road
that was just depressing
linearray 16:01 I don't really know what it is about legal highs that make them so popular here
one thing I miss about the US is smoke-free restaurants
taxilian 16:01 don't look at me =] I have never understood any of that. To be honest, I hate taking prescription medications that make my mind fuzzy… the idea of not having full control of my mind frightens me
linearray 16:01 yeah I don't like that either
FireBreathBot 17:01 JIRA issue issue commented by victorabrash "To add an icon for the plugin, I do the following:
JIRA issue issue commented by richard "It would be pretty easy to copy the icns file to the correct place; I'd really like to find an au..."
JIRA issue issue commented by victorabrash "To build the DMG with a script, I did the following:
JIRA issue issue commented by richard "So the add_custom_command call should be pretty easy to use for your dmgcanvas; look at the examp..."