From XiphWiki
Jump to navigation Jump to search

This is was the first HyperFish meeting. Alot of people showed up and alot of dissonance between various project goals, but good connections resulted from it.

--- Log opened Wed Nov 24 18:58:35 2004
18:58 -!- FishLogger [~root@rp1.lightlink.com] has joined #Xiphmeet
18:58 -!- Topic for #Xiphmeet: Welcome to the Xiph.org meeting and discussion channel | Next montly meeting at 23:59 GMT December 1 : http://wiki.xiph.org/MonthlyMeeting200412 | log of the last meeting at http://westfish.xiph.org/~giles/200411_meeting.txt
18:58 -!- Topic set by rillian [] [Thu Nov  4 00:44:44 2004]
18:58 [Users #Xiphmeet]
18:58 [ AndrewBachmann] [ FishLogger ] [ j^    ] [ philk   ] 
18:58 [ Arc           ] [ foolip     ] [ kfish ] [ van_peru] 
18:58 [ derf_         ] [ illiminable] [ murdos] [ zaheerm ] 
18:58 -!- Irssi: #Xiphmeet: Total of 12 nicks [0 ops, 0 halfops, 0 voices, 12 normal]
18:58 -!- Channel #xiphmeet created Tue Oct 12 06:06:00 2004
18:58 -!- Irssi: Join to #Xiphmeet was synced in 1 secs
18:58 -!- [freenode-info] please register your nickname...don't forget to auto-identify! http://freenode.net/faq.shtml#nicksetup
18:59 < Arc> ok
19:00 < Arc> so quite a few of us have come, so lets start with a brief (one-line) into each, including what we want to contribute to these kinds of projects
19:00 -!- ozone [~pan068@c211-30-78-105.belrs2.nsw.optusnet.com.au] has joined #xiphmeet
19:00 < ozone> greetings
19:00 < AndrewBachmann> alphabetical?
19:00 < Arc> in any order. :-)
19:00 < illiminable> morning ozone
19:00 < ozone> you're up zen? :}
19:01 < philk> Hi there!
19:01 < ozone> or you haven't gone to bed yet ...
19:01 -!- SebastianG [~yay@c-180-198-23.bi.dial.de.ignite.net] has joined #xiphmeet
19:01 < Arc> my name is Arc, I'm involved with development, especially around libogg2, and am interested in contributing more to getting this ready for "primetime"..
19:01 -!- MikeS [~msmith@CPE-144-137-38-92.vic.bigpond.net.au] has joined #xiphmeet
19:01 < AndrewBachmann> ok, I'm from the haiku project (formerly known as OpenBeOS)..  I wrote a ogg plugin for our media framework, based on libogg.  I'm interested in helping to ensure the library addresses my issues with that. :-)
19:02 < Arc> others?
19:02 < illiminable> I guess this is me... my names zen (is this an AA meeting ?)... i work on the directshow project and associated windows stuff.
19:02 < zaheerm> im from the gstreamer project, i have created the caster livecd thats ome of you may have seen, and do streaming for the local mosque in various forms..mp3, ogg (vorbis audio) and experimentinf with  ogg (theora/vorbis) with flumotion
19:03 < j^> im j, i wrote the jackplugin for ices-kh and ffmpeg2theora, right now im working on some theora tools related for media distribution
19:03 < illiminable> ozone: yeah not often i'm waking up at this time... "There's an 8 o clock in the morning now?"
19:03 < ozone> hi, i'm from the annodex project (www.annodex.net).  we're working on metadata in multimedia, particularly web-like metadata, such as annotation and hyperlinking of video and audio.  i'm also working on the xine media player, and dabble in videolan
19:03 < philk> I'm working on the Vorbis RTP spec and implementation.
19:04 < MikeS> Hi. I'm Mike Smith. I wrote much of vorbis-tools and icecast, and help out with lots of other things. 
19:05 < Arc> ok we're missing some people but i guess they're idle.. 
19:05 < kfish> i do annodex stuff, and wrote some wrappers for xiph libraries (liboggz, libfishsound), wrote the sound editor sweep, and random stuff in xine etc.
19:07 < Arc> ok
19:07 < Arc> (others can greet as we're going along..)
19:08 < Arc> so the purpose of this meeting is to *begin* forumulating a vision and roadmap for where we'd like to see Xiph in a year (two years, etc)
19:08 < SebastianG> hi! i don't wanna be rude (not greeting) but I guess I've not much to contribute ;)
19:08 < Arc> lots of different ideas, some which work together, some that don't, and not everyone on the same page
19:09 < Arc> (SebastianG: everyone has something to contribute :-))
19:09 < Arc> so the question of "where are we at in a year" is pretty broad, I'd like to start with something fairly small: the overall Ogg framework
19:10 < Arc> I've already layed out what I'd like to see in a year on the wiki, so how about someone else start with this
19:10 -!- DanielWH [~chatzilla@m09105e42.tmodns.net] has joined #xiphmeet
19:10 < ozone> what's the wiki page?
19:10 < DanielWH> hello
19:10 < Arc> wiki.xiph.org/HyperFish
19:11 < AndrewBachmann> http://wiki.xiph.org/HyperFish
19:11 < kfish> ok Arc, I'm very much looking forward to libogg2 documentation
19:12 < Arc> kfish: what do you want to see as a result of that documentation being available?
19:12 < kfish> but i'd like some clarification on what liboggstream is supposed to achieve
19:12 < Arc> ah ok.
19:12 < illiminable> Well, for me... within 1 year, i'd like a commercial quality sdk to be available for windows. And ogg support to be on more than 1 million windows machines
19:13 < AndrewBachmann> I'm primarily here for liboggstream too
19:14 < Arc> (answering kfish's question briefly): Real, Quicktime, etc have media frameworks around their formats.  Not only does it handle codec stuff automatically, that is, no direct software support needed by the application, but also "auto-downloads" plugins for codecs you don't yet support
19:14 < DanielWH> My name is Daniel Holth, I wrote a wrapper for theora that lets you decode it from within Python, it is now really easy to do things like turn frames of theora into png images. I really like programming in Python and C++
19:15 < kfish> Arc, ok, so you're talking about decode/playback; for which I'd offer that ensuring support in the existing frameworks (gstreamer, DirectShow, QuickTime, as well as xine, mplayer, videolan etc.) should be our priority
19:15 < DanielWH> I also wrote a nice wrapper for doing libshout from C++ and Python, and a prototype theora streaming function for icecast + shout.
19:15 < Arc> so the goal is a library, similar to VorbisFile but for all Ogg files, part of the libogg2 package, which supports this on a variety of different levels.. from "just handle the codec, thanks" to "please do all IO for me, oh and btw, please output it to my video/soundcard too if you would.."
19:15 < ozone> Arc: you are suggesting to turn ogg into a media framework?  there are a few around which already exist ...
19:15 < zaheerm> Arc: how is the auto-codec downloading stuff meant to work on non-windows platforms (ie all the multiple architectures (distributions) around
19:15 < illiminable> Just a point on oggstream... it is somewhat redundant, since directshow already does all this stuff, and it's tried, tested and stable.
19:16 < MikeS> Arc: Can you explain why it's useful to invent a whole new framework, rather than produce production-quality implementations of ogg (and the xiph codecs) within the existing frameworks (as, for instance, illiminable is doing on windows/DShow)?
19:16 < zaheerm> and gstreamer on other platforms...
19:16 < Arc> I think everyone just answered their questions with eachother's questions.
19:16 < MikeS> Hrm. It looks like other people asked my question faster than I managed to :-)
19:16 < Arc> multiple parrellel implementations.
19:16 < DanielWH> I would like to ensure the theora wrapper is finished as the theora api finishes.
19:16 < AndrewBachmann> I was hoping oggstream would be a "bigger, better" version of liboggz
19:17 < AndrewBachmann> which is hardly a media framework :-)
19:17 < kfish> AndrewBachmann, sure :)
19:17 < Arc> it's not a media framework as in gstreamer. it's designed for Ogg.. gstreamer is much more
19:17 < AndrewBachmann> such a thing would be useful for gstreamer, dshow folks, etc.
19:17 < MikeS> Arc: the point is integrating with platform services, which is absolutely _critical_ for widespread adoption on desktops. oggstream might be useful on its own, but gets us no closer to proper system integration. Isn't this, then, a step in the wrong direction?
19:18 < ozone> Arc: question is, who's going to use an Ogg-only media framework, when other perfectly good ones exist?
19:18 < ozone> i.e. what's the motivation for the project?
19:18 < Arc> hold up :-)  everyone's asked the same question, let me answer it :-)
19:18 < illiminable> and the other frameworks support ogg and all the other media formats (ie directshow)
19:19 < MikeS> illiminable: You said something on the lists that suggested that large parts of your directshow code isn't directly tied to directshow - implying that it'd be very useful as a base part of implementations for quicktime, gstreamer, etc, etc. Would you be able to elaborate on that a little? Or tell me I'm totally confused, if that's the case...
19:19 < Arc> every existing framework, because we've lacked something like oggstream/oggfile, have ended up building their own Ogg support seperate.  every framework has it's own quirks, and as new codecs are deployed, they must be released for each.
19:19 < illiminable> I would imagine for non-windows something like gstreamer (which is directshow like) would be a good place to implement without re-inventing the wheel
19:20 < AndrewBachmann> I think we've already got at least three or four wheels around for doing OggStream-type stuff
19:20 < AndrewBachmann> it'd be better if we all had one, I think :-)
19:20 < kfish> Arc, so, for example, the approach i took with liboggz was to make a simple Ogg mux/demux library that fits into the demux stage of existing frameworks
19:20 < Arc> ok let me give a scenario
19:20 < AndrewBachmann> I'm talking about what MikeS referred to
19:20 < illiminable> mikes: Well... where possible, if it didn't really need to be tied to directshow it's not... and in some places where it is, it was just for simplicity and could be factored out
19:20 < Arc> we have this new video format, Dirac, which we want to integrate with Ogg.
19:20 < illiminable> So yeah... a lot of it could easily be reused.
19:21 < Arc> ok.  We need to integrate it with gstreamer, and libavcodec, and this, and that, oh and Real has to have their own implementation because they're not going to depend on any of those because they have their own..
19:21 < illiminable> dirac will soon be in ogg... i've been working with the dirac folks a bit ! :)
19:21 < MikeS> Arc: right. I think we agree with you on that - that doing all the ogg support stuff 10 times over is a bad idea. However, your vision for oggstream seems to be as an end-to-end solution, but what people actually seem to want is a '80%' solution, so they can write the other 20% to plug it in to existing frameworks. Why isn't that the goal?
19:21 < Arc> MikeS, that is the goal.
19:22 < zaheerm> Arc: theres a dirac plugin in gstreamer
19:22 -!- kjoonlee [~kjoonlee@] has joined #xiphmeet
19:22 < Arc> OggStream is generic.  it's small.  it fits with libogg2 quite nicely.  
19:22 < SebastianG> dirac ? wow ... how's decoder performance currently,  illiminable ?
19:22 < zaheerm> Arc: helix guys will not use another framework
19:22 < AndrewBachmann> ok Arc, I want to ask a simple question.. do you see OggStream as giving me a codec identifier, with which I go find the codec myself, or do you see it as "automatically" finding the codec for me?
19:22 < ozone> Arc: sure, and it won't fit with any of the existing media frameworks out there
19:22 < ozone> thus rendering itself to be doomed
19:22 < Arc> its the plugins which give it flexibility, and apps/frameworks can choose to use it at any level
19:22 < illiminable> not good ! I'm waiting for their 0.5 release before i continue, as there were a few api issues with the previous one
19:22 < kfish> Arc, a single API that allows generic media decode is not "simple" and sure as hell doesn't "fit within libogg2"
19:23 < MikeS> Arc: well, it doesn't seem to be. Your description makes it sound neither generic nor small. 
19:23 < kfish> however, it is quite feasible to build on top of libogg2 to make an API, or set of complementary APIs
19:23 < Arc> AndrewBachmann: how would an application know which codec it's looking at without detecting it first?
19:23 -!- Atamido [~Atamido@user-0ccsqgl.cable.mindspring.com] has joined #xiphmeet
19:24 < Arc> kfish: actually, it is.  and it' for encode/streaming/etc too. :-)
19:24 < zaheerm> Arc: my opinion is to push ppl oin each of these frameowrks' projects to make sure they have adequate ogg support..rather than creating a new one
19:24 < Arc> take a look at the OggStream wiki page, the application api
19:25 < Arc> all this is doing is processing data of different kinds between plugins. it's the standardisation of those plugins that's important
19:25 < ozone> Arc: you are rewriting an entire media framework
19:25 < AndrewBachmann> Arc I don't understand your response... is it the first or the second thing I mentioned?
19:25 < illiminable> i agree with zaheerm... since most things will want to support more than just ogg, so using the same framework as they'll use for their other types will stop them needing to implement once for everythign else and once for ogg... which will mean many people just won't do it
19:25 < ozone> if you want to do it properly, you will be walking down the path of gstreamer/directshow
19:25 < MikeS> Arc: ok, can you answer this: why won't your 'oggstream' have the same problems as 'vorbisfile' does - that everyone who wants to integrate with basic platform services can't use it, because they all have different models of how various bits must interact?
19:25 < ozone> libxine is _really_ simple in comparison to gst/ds, and even it's more than complex enough
19:25 < zaheerm> Arc: maybe even having "xiph" helpers on each project's developer list :)
19:25 < illiminable> yeah... the whole 'circuit', 'source', 'codec' 'output' thing is basically directshow
19:26 < Arc> MikeS: flexibility in the i/o plugins.
19:26 < illiminable> arc: most of the frameworks have changable io plugins already
19:26 < Arc> illiminable: it's difficult not to be, when you look at it, without being overly rigid
19:27 < Arc> illiminable: so it's not very difficult for them to deploy a new one if the existing one isnt working for them
19:27 < ozone> Arc: feel free to write one, then tell us it's not difficult :)
19:27 < MikeS> Arc: this sounds an awful lot like "oh, that's merely a trivial matter of implementation, we can ignore it at this point" - and ignores the complexities that you actually find when you try to do this. Things like dshow and gstreamer have actually tackled these problems - and look how complex they are!
19:27 < Arc> ozone: I'm working on it. :-)
19:28 < illiminable> that's what i mean... it was a good idea thats been well tested... i don't see the need to reimplement it when directshow + gstreamer does this and covers all platforms pretty much
19:28 < ozone> Arc: put it this way, it's several orders of magnitude more complex than liboggz
19:28 < illiminable> And they are conceptually simple... but implementation wise deceptively complex
19:29 < AndrewBachmann> yeah, I want at most a single order of magnitude of complexity over liboggz :-)
19:29 < zaheerm> also these frameworks are unlikely to use any of the fancy features of the framework...they would use the lowest level possible
19:29 < ozone> ask kfish how easy it was to implement liboggz, and perhaps you'll get a slightly different answer than you expect
19:29 < j^> illiminable quicktime right now is the big missing platform, verry important for media production
19:29 < Arc> illiminable: can you give an example
19:29 < MikeS> Are we better off trying to have a more structured, more organised group trying to do platform-specific implementations, with (possibly) large amounts of shared code, along the lines of liboggz?
19:29 < zaheerm> these frameworks being gst/dshow
19:29 < ozone> j^: agreed
19:29 < ozone> MikeS: also agreed
19:29 < zaheerm> j^: there are vorbis plugins for quicktime right?
19:29 < AndrewBachmann> I think so MikeS
19:30 < AndrewBachmann> I've seen ogg-vorbis streams in quicktime
19:30 < zaheerm> im sure i played an ogg in itunes
19:30 < zaheerm> ogg/vorbis audio file i mean
19:30 < illiminable> Well... directshow is already done... and that does most of the hard stuff, like "sych", the graph architecture etc... but it's still taken me nearly a year to get an almost stable set of codecs. If i had to do the directshow backend too... i hate to think how long it would take
19:30 < AndrewBachmann> I mean, ".mov" file with ogg/vorbis stream [not a .mov file with vorbis stream]
19:31 < ozone> zaheerm: yeah, but i think MikeS means things beyond just vorbis decoding (e.g. encoding, theora support, etc)
19:32 < Arc> illiminable: are the directshow plugins ready for effects codecs?
19:32 < zaheerm> ozone: yah i know...didnt know what the plugin that provided vorbis gave...decoding i know, may have given encoding 
19:32 < MikeS> Maybe the first step is just to create an appropriate mailing list (for _ogg_, not for vorbis or theora or... - up till now, most of this sort of discussion has been on the theora list), and actually get all the relevent people to join and participate - discuss strategies, etc? 
19:32 < kfish> as for the approach of separate libraries -- liboggz wants libogg2 support, and we were discussing a companion libfishvideo library to abstract out video encoding/decoding, similar to libfishsound
19:33 < AndrewBachmann> that sounds good MikeS
19:33 < Arc> kfish: the major issue i have with the liboggz implementation is you assume audio/video.  there's no place for effects codecs and no place for non-av codecs
19:33 < ozone> MikeS: yep!
19:33 < ozone> i like the mailing list idea
19:33 < illiminable> arc: No... there is a rough and ready subtitle renderer... but the project is getting fairly large now... so i'm basically prioritising my time to things that are most used/most important/most wnated.
19:34 < Arc> illiminable: are your codecs drawn from seperate plugins, such that they can be dropped in like puzzle pieces and implemented without retooling your whole kit?
19:34 < illiminable> And for the moment, making the support for the AV 'good' i feel is more important than putting time towards something new
19:34 < MikeS> I think this gets back to our ongoing process issues - the core xiph group is (as far as I can tell) seen by outsiders as being insular and uninviting - and our unix backgrounds have tended to annoy away all the windows people.  So we don't have much in the way of discussion with all these people. Obviously, this is a problem.
19:34 < illiminable> arc: please explain ?
19:35 < AndrewBachmann> it seems okay to me MikeS, but I'm neither unix nor windows folk :-)
19:35 < kfish> MikeS, that sounds better than the usual random cross-posting :)
19:35 -!- SebastianG [~yay@c-180-198-23.bi.dial.de.ignite.net] has quit ["ChatZilla 0.8.31 [Mozilla rv:1.4/20030624]"]
19:35 < Arc> ok. say I want to implement a MNG overlay codec.  it would need to grab the output of a video codec, modify it, and output a new video stream
19:35 < Arc> how does this codec get integrated with the directshow system you've designed
19:35 < kfish> Arc, liboggz certainly doesn't make any assumptions about the data being audio/video -- quite the opposite
19:35 < ozone> arc: yes, that's exactly the way directshow/gst work
19:36 < MikeS> AndrewBachmann: well, it seems to be what happens - the (for example) windows developers get annoyed because we use cvs (well, now svn) and want patches sent... and we're not very tolerant of the fact that they just don't work that way. So we keep turning off people who would otherwise be happy to help. 
19:36 < AndrewBachmann> I think a MNG overlay code would output the overlay image, and then each platform is going to write an overlay plugin that can take overlay images (from any overlay codec) and overlay them
19:36 < Arc> kfish: when I speak "liboggz system", im refering to the combination of liboggz/libfishsound/libfishvideo
19:36 < zaheerm> Arc: frameworks allow u to plug compatible elements together
19:36 < illiminable> arc: basically derive a new filter from my abstract classes, setup the media types for input and output, write a transform function.
19:37 < zaheerm> Arc: so it would allow u to connect a theora encoder to an mpeg4 decoder, but itd allow u to connect a an audio source to an audio effect to a vorbsi encoder
19:37 < j^> Arc libfishsight is the plan i think
19:37 < Arc> illiminable: how is such a thing deployed. does it require modification to your code, is there a way the user can download such a thing automatically, etc
19:37 < DanielWH> I think it would be much better for the framework to run some hardware overlay function on some codec that was giving it, say, one video and five language overlays?
19:37 < MikeS> Arc: note that it's common for video hardware to directly support overlays of various types, so this is something you really DON'T want in common code.
19:38 -!- jack [~jack@i.cantcode.com] has joined #xiphmeet
19:38 < DanielWH> "the framework
19:38 < kfish> arc: as opposed to liboggz/libbollox for handling Ogg Bollox non-AV data format :)
19:38 < ozone> i move to have this discussion struck from the agenda, and run with mike's idea (set up a mailing list)
19:38 < DanielWH> meaning QuickTime or something.
19:38 < DanielWH> but the APIs for the existing codecs are depressingly non-uniform.
19:38 < MikeS> kfish: Please do not invent a codec called Bollox. 
19:38 < Arc> hold on
19:38 < Arc> this isn't a decidion making meeting
19:38 < Arc> this is for brainstorming
19:38 < kfish> ok, the other item on the agenda was libogg2
19:39 < illiminable> Arc: Right now, no... but that's ust because i haven't been ready to commit to an api yet, but it really just needs a bit of code added to the demux to translate a start packet to a directshow media type. It was designed to allow this... but i haven't exposed it, because i don't want people to use it until i can be sure i have covered all the bases and i'm not going to create trouble for my self with versioning
19:39 < Arc> having a ogg/hyperfish/etc mailing list is all well and good but we're not here to make decidions about whats going to happen, but share information and ideas with eachother
19:40 < DanielWH> good idea. new api with better documentation and crystal clear memory management semantics sounds like a good idea to me.
19:40 < AndrewBachmann> it might be a good idea for people from different frameworks to post their desires on the wiki?
19:40 < Arc> here's what I want to see
19:40 < DanielWH> libogg has all sorts of strange do-this invalidate-that things that make using it w/o segfault hard.
19:41 < AndrewBachmann> true DanielWH
19:41 < Arc> when it's time to implement Dirac, we have one (1) plugin written for it.  cross compatable. illiminable's directshow uses it, gstreamer uses, xmms uses it, mplayer/xine use it..
19:41 < illiminable> I can only speak for myself... but i probably won't be using this new oggstream thing... since i've basically already done this work, and in a language that's more windows friendly, ie C++ / .NET langauges
19:41 < DanielWH> so experimenting is hard, and you just have to painstakingly copy the order of operations from vorbis-example-program.c
19:41 < MikeS> yeah. libogg is good for two things: encoding, and decoding, and doing it fast. It's not developer-friendly, and it's a real pain for doing more complex things like editing files.
19:41 < kfish> DanielWH, which for example are exactly the kinds of things liboggz prevents the user from doing
19:41 < DanielWH> yes
19:41 < AndrewBachmann> or seeking!
19:41 < DanielWH> I like liboggz.
19:42 < AndrewBachmann> ditto
19:42 < DanielWH> if we rewrote it with the words Xiph and Different Licence.txt it would be far more acceptable to the Xiph community, if I understand correctly.
19:42 < Arc> I believe the functionality of liboggz belongs in libogg2.
19:43 < kfish> liboggz? it's under the same license as xiph stuff, just different copyright holder
19:43 < zaheerm> Arc: to do a cross compatile dirac plugin will be difficult..each framework just wraps libdirac and its done
19:43 < MikeS> DanielWH: I think the Xiph community is actually quite happy with liboggz. That said, we'd love to have it as a more official part of our software. What's the license on it
19:43 < illiminable> the problem with "cross-compatable" is although C and C++ are cross-compatable... the coders on the platforms have difference wants... a C library may be cool for *nix... but very few windows programmers use C... almost all app programming on windows has been object oriented for a long time
19:43 < MikeS> ?
19:43 < Arc> kfish: that's asking for a dual-copyright if integrating with libogg2
19:43 < MikeS> oh, kfish answered that
19:44 < Arc> kfish, also, is liboggz built to support discontinuous bitstreams
19:44 < DanielWH> I enjoyed writing Python wrappers that went through a C++ wrapper I also wrote, and wound up liking the C++ wrapper at least as much.
19:44 < DanielWH> of libshout
19:45 < kfish> Arc, liboggz certainly supports metadata streams :)
19:45 < AndrewBachmann> I think anything that oggz does should also be supported by oggstream somehow
19:45 < Arc> kfish: but does it understand their unique granulepos handling in regards to seeking/streaming
19:45 < kfish> Arc, it correctly handles the ogg granluepos mux semantics
19:45 < zaheerm> p[ardon my ignorance but what do you mean by discontinuoys bitstreams
19:45 < MikeS> illiminable: I think that's something we can talk through on the lists. Whether C++ is acceptable, or if C wrappers of C++ code is acceptable, etc. The more code we can share, the better...
19:46 < Arc> zaheerm: continuous bitstream is one which has one piece directly after another, ie, audio and video
19:46 < Arc> discontinuous, for example, would be a subtitle format where each packet starts irregularly and has variable duration, prehaps even overlapping
19:46 < zaheerm> MikeS: C++ wrapping C is cleaner than the other way
19:46 < zaheerm> Arc: understood
19:47 < kfish> ok, who can set up ogg-devel?
19:47 < illiminable> mikes: i think that's one of the things that has made it scary for windows programmers, is all the libraries are C. Even C++ is getting used les for apps in favour of .NET, this will be moreso on the next version of windows where the entire API will be managed code.
19:48 < kfish> ogg-dev@xiph.org i mean
19:48 < zaheerm> illiminable: then the ideal situation is if there was a C library and a C# library with a C++, python, perl wrapper of the C library
19:48 < Arc> zaheerm: and who is writting all these?
19:49 < zaheerm> Arc: no idea im just saying the ideal situation
19:49 < illiminable> But i mean you get to a point where you have several levels of nesting... in a lot of cases, it's just as easy to write it in C++ as it is to wrap and handle marshalling.
19:49 < Arc> how about like we have now.. C library with C++ wrapper
19:50 < Arc> we already have a python layer, py-ogg2.
19:50 < Arc> oh kfish py-ogg2 is a really good way of seeing how things work in libogg2 before docs are written. 
19:50 < Arc> we should have libogg2 docs by the end of the month
19:51 < zaheerm> illiminable: u just said that the windows ppl will use .net anyway in a few years...so writing an official .net ogg library would be  ideal
19:51 < kfish> arc: that would be great
19:51 < zaheerm> illiminable: theres already a c++ wrapper as Arc said
19:52 < illiminable> zaheerm: It's already underway ! But like with other things, i want to stabilise apis before i expose them to the masses.
19:52 < Arc> ok I want to share my vision now that things have died down a bit
19:52 < illiminable> And like i said... i've already written all this code already, so i'm not seeing any incentive for me to do it all again with another API
19:53 < kfish> arc: i visited monty recently (with ozone) and we discussed making libogg2 backwards compatible to libogg -- are you up for coding that?
19:53 < Arc> personally, and this isn't ment to offend anyone, I could care less about non-Ogg formats.  xine/mplayer/gstreamer/etc serve a purpose, but they're not part of what im concerned about
19:54 < Arc> kfish: i don't think that's possible.  see the work I did to port theora for an example
19:54 < kfish> arc: monty agreed and we discussed the implementation strategy, i'm just looking for someone who knows ogg2 internals well enough to help carry it through
19:54 < Arc> I care about making Ogg codecs easily deployable, that being, when we want to add a new codec we do so by compiling it and adding it to an autodownload list (along with license, etc)
19:55 < illiminable> This vision is really only a few months away on windows arc :) ie auto-download etc.
19:55 < Arc> kfish: I don't believe it can be done.  you would have to explain how such a thing is possible...
19:55 < Arc> illiminable: yes but that is windows.
19:56 < kfish> ok, i'll post to ogg-dev about it, as soon as MikeS sets up the mailing list ;-)
19:56 < zaheerm> Arc: the point lots of ppl here wer emaking is that the frameworks which are used 90% of the time by app writers etc. wont use the high level features of such a framework....
19:56 < ozone> would be similar on the mac if a proper quicktime plugin was implemented
19:56 < illiminable> true... just a mere 90% of computer users :)
19:56 < Arc> that's not macosx (quicktime) or linux (gstreamer/mplayer/xine/etc)
19:56 < ozone> as for unix, choose a media framework and let it do it for you
19:56 < MikeS> kfish: I can't. I'll get ralph to, or someone else who can, as soon as possible.
19:56 < kfish> MikeS, ok :) i'll go get some coffee anyway ...
19:56 < DanielWH> ogg2 and ogg1 depending on how new the code is, with a discriminator in the struct to allow them to be muxed together? is that what you mean?
19:57 < Arc> illiminable: i'm not devaluing their accessability to this, but it's just windows.  it's not macosx, it's not gnu/linux
19:57 < ozone> MikeS: schweet, thanks
19:57 < kfish> DanielWH, no, the format is the same, just api cleanup really
19:57 < MikeS> kfish: bring me one, too! :-)
19:58 < MikeS> I'll send out an email to the lists I can think of when it's set up, and please invite anyone else who might be interested to join!
19:58 < zaheerm> Arc: i think what will happen is that you will have to write the plugins for the frameworks directx, gstreamer, quicktime, helix etc. for ppl to even think of using this api
19:58 < Arc> zaheerm: what I've been expressing is that those features that 90% of the time wouldn't be used are seperate plugins, not part of the core
19:58 < illiminable> arc: true... but all it takes is one person to take it by the balls and just get on with it :)
19:58 < MikeS> Arc: yes, and windows is a critical platform for us. Absolutely critical, regardless of whatever pseudo-political viewpoints you have.
19:59 < Arc> MikeS: and again I'm not discounting Windows, but we certainly shouldn't concentrate on it as our core offering.  we'd loose our base within the free software community, which is shakey at best
19:59 < Arc> Xiph is not seen as core, it's seen as "another one of those groups"
19:59 < illiminable> mikes: yes... regardless of what people think about windows... it's the one platform that .ogg is not well known on... and it's the biggest... you're preching to the converted on *nix
20:00 < MikeS> Of course, we have no intention of concentrating on it as as _sole_ implementation target, but it's crucial to our long-term success.
20:00 < MikeS> That's why we all love illiminable :-)
20:00 < Arc> illiminable: I disagree.  Linux users are not "converted", a vast majority if them continue to use mp3 and divx.
20:00 < zaheerm> Arc: thats due to existing media
20:00 < kfish> Arc, yeah, but at least all the media software on linux already supports ogg
20:00 < kfish> ALL OF IT
20:01 < zaheerm> Arc: and hardware mp3 players being prevalent....
20:01 < MikeS> kfish: untrue. My copy of mpg123 won't play vorbis very well.
20:01 < illiminable> Arc: I think the bigger question is why... i'd contend it's because most of these files were encoded on windows
20:01 < Arc> kfish: not all. some. and most only supports Ogg Vorbis.
20:01 < kfish> MikeS, :-P
20:01 < illiminable> And these are the preferred types to use on windows.
20:01 < Arc> try sending xmms a chained vorbis/speex file and you'll see the problem
20:01 < Arc> let me give you an example of where oggstream is going to come in use:
20:01 < Arc> Xinloe.
20:02 < Arc> I have implemented this damned piece of code more times than I can count, now.  The code to detect Ogg codecs and parse granulepos for seeking/etc
20:02 < ozone> Arc: that's because you don't use a media framework :)
20:02 < Arc> it's all in Python, using py-ogg2, and can now properly display a stream (muxed/chained) in it's various components and lengths
20:02 < Arc> ozone: any generic media framework is not going to expose information about Ogg.
20:02 < kfish> arc: ok, so you're in the same situation i was two years ago before i started liboggz/libannodex hacking :)
20:02 < zaheerm> Arc: GStreamer, xine, vlc, mplayer, helix player all play ogg files (at the bare minimum both theora and vorbis)...in the case of gstreamer theora, vorbis, flac, speex etc. inside ogg can be decoded and encoded 
20:03 < ozone> Arc: err, yeah they will
20:03 < Arc> I'm not talking about playing Ogg files.  I'm talking about editing them, moving them around, streaming them
20:03 < illiminable> somedirectshowfilter->QueryInterface(GIVE_ME_OGG_INFO);
20:03 < ozone> yeah, media frameworks do those things too
20:03 < Arc> ozone: really?  I'm going to be able to grab Vorbis packets from gstreamer to crop and recombine a stream?
20:03 < zaheerm> Arc: why not...try using marlin
20:03 < DanielWH> crop vorbis?
20:04 < kfish> Arc, out of the ogg demux, sure
20:04 < kfish> that's the whole point of separate demux and decode -- you can do stuff like that
20:04 < ozone> Arc: err, yeah
20:04 < kfish> and then you can route it through a framework with effects and editing and stuff
20:04 < ozone> what do you think all the numerous video editors on windows/mac are written with?  all their own code from scratch?
20:04 < kfish> and oh lookie -- the frameworks already exist!
20:04 < zaheerm> ARc: gstreamer can give u access to the raw vorbis u need if u want it
20:05 < Arc> ozone: those editors work on decoded information.
20:05 < Arc> I dont want to decode then re-encode, I want to use the information as it is but repack it
20:05 < illiminable> directshow even has a whole buch of editing services interfaces... for advanced editing (and i haven't had the time to play with)
20:05 < kfish> Arc, so you want to do compressed-domain effects?
20:05 < Arc> amoung other things, yes
20:05 < zaheerm> Arc: gst-launch-0.8 filesrc location=blah.ogg ! oggdemux ! vorbisdec ! yourelementhere ! oggmux ! filesink location=newfile.ogg
20:05 < kfish> Arc, that's nice, I used to work on compressed domain mp3 stuff a few years ago
20:06 < zaheerm> sorry remove vorbisdec
20:06 < zaheerm> if u want the vorbis frames
20:06 < zaheerm> replace vorbisdec with audio/x-vorbis as the filtercaps...
20:06 < kfish> Arc, until we realised it was a waste of time really, and inflexible
20:07 < zaheerm> kfish: but preserves encoded quality
20:07 < illiminable> arc: What pumps out of my demux is ogg packets... you can connect whatever you want to it and use the packets just like you were using libogg/z
20:07 < kfish> zaheerm, sure, it's ok if all you're doing is cut/paste editing :)
20:07 < zaheerm> kfish: yah
20:07 < Arc> illiminable: you mean ogg pages, right?
20:08 < illiminable> no packets... but i am going to write a version with pages... which makes certain operations easier
20:08 < MikeS> Arc: I doubt he does; it wouldn't be demuxing if it were outputting pages
20:08 < zaheerm> Arc: what we are trying to say is media frameworks give you a whole load of control as to what you want...and have been doing for ages
20:08 < ozone> Arc: a proper media framework will permit what you want to do
20:09 < ozone> in the case of directshow, need to write some code so that (as illiminable said), it pumps out ogg pages rather than packets
20:09 < AndrewBachmann> my demux demuxs to packets
20:09 < Arc> and which one can be supported by Xiph (ie, by default does not include any patented systems or codecs)
20:09 < ozone> an ogg muxer can just take those pages on an input pin and remux them without looking at what's inside
20:09 < AndrewBachmann> I think I did pages at one point but it just didn't work
20:09 < Arc> oh and, let's add, doesn't encourage the use of
20:10 < zaheerm> Arc: look at how gstreamer is packaged in fedora
20:10 < Arc> zaheerm: that's how its packaged. I'm talking about default.
20:10 < kfish> liboggz demuxes to packets or pages as desired ...
20:10 < zaheerm> Arc: also as of gstreamer 0.9, the plugins tarball is going to be split into compeletely free tarball and "suspect" tarball
20:11 -!- DanielWH_ [~chatzilla@m09105e42.tmodns.net] has joined #xiphmeet
20:11 < zaheerm> Arc: gstreamer itself comes with no codecs...gst-plugins package is the one containing everything, and its being split up to free and not necessarily free
20:11 < zaheerm> so xiph can support gstreamer
20:12 < kfish> that would be a great way to go!
20:12 < DanielWH_> bye now
20:12 < Arc> kfish: Monty had a plan for deploying libogg2.  it included an infrastructure release, OggFile, and a complete "everything from this point on is libogg2"
20:12 < kfish> later DanielWH!
20:12 -!- DanielWH_ [~chatzilla@m09105e42.tmodns.net] has left #xiphmeet []
20:12 < zaheerm> gstreamer also has excellent python bindings
20:12 < kfish> Arc, yeah, thankfully the new plans are more realistic though :)
20:12 < Arc> what I would like to talk with you about is integrating the functionality of liboggz with libogg2 so to remove a seperate dependency layer, since it's pretty much required for working with Ogg
20:13 < Arc> kfish: I still don't see how you're going to provide backward compatability
20:13 < Arc> I would have to see how the different objects and function calls worked together
20:13 < Arc> if it were possible and I understood it, yes, I could do it.
20:13 < kfish> ie. gradual transition to libogg2, and a suite of complementary libraries for demux/decode and encode/mux
20:13 < Arc> (at this point, I'm probobally more familiar with the code than Monty is since last I talked to him he had said that he was going to have to relearn it all)
20:14 < kfish> Arc, ok, so the first step is to rename the conflicting type names, ie. ogg_sparse_packet in libogg2
20:14 < kfish> instead of conflicting witht the ogg_packet type in libogg
20:14 < Arc> kfish: eep, you're killing me.. what?
20:14 < kfish> it's a symbol rename arc, that step isn't so hard ...
20:15 < Arc> ok go on
20:15 < kfish> and the next step is to put in support for libogg ogg_packet and related function calls
20:15 < kfish> through a non-zerocopy compatability layer
20:15 < Arc> (libtheora and py-ogg2 aren't things i intended to have to change again)
20:15 < kfish> just a bit of search and replace :)
20:15 < Arc> ok except things work differently
20:16 < kfish> yeah, so the function calls and types which clash are to be renamed in libogg2
20:16 < Arc> im not sure if monty explained this, but the buffers aren't there anymore. the app cant grab them. and there's no clean "do this only when the application requests it" code.
20:16  * illiminable is glad about now he wrote his own demux :)
20:16 < zaheerm> illiminable: :)
20:17 < Arc> so in other words, libogg2 is going to have to work overtime to keep those buffers working.
20:17 < AndrewBachmann> it'd be nice to have some links to all the framework ogg code
20:17 < MikeS> illiminable: libogg2 is only this complex because it needs to be ridiculously memory-efficient. Different constraints... ;-)
20:17 < Arc> zerocopy is also faster.
20:17 < Arc> its not complex. it's really not. its actually quite simple.
20:17 < Arc> just dont look under the hood.
20:17 < AndrewBachmann> zerocopy is incompatible with all frameworks, I suspect
20:18 < kfish> the compatability layer doesn't need to be so memory-efficient -- it's for compatability in existing situations, like frameworks
20:18 < AndrewBachmann> one-copy could be compatible
20:18 < kfish> yeah, so that's what we'll work towards
20:19 < kfish> so that we can have a smooth transition to libogg2 support
20:19 < kfish> and encourage an optimisation path
20:19 < kfish> without breaking existing apps
20:19 < Arc> kfish: libogg1 and libogg2 can exist side by side on the same system
20:19 < Arc> so how is this helping matters?
20:19 < Arc> the only thing we haven't done is allow theora/vorbis/etc to be compiled for each
20:20 < MikeS> kfish: right. zerocopy is nice for some cases, painful for others, and essential for some (like hardware mp3 players that have almost no memory)
20:20 < kfish> as soon as you fix the symbol clashes, libogg1 and libogg2 will be able to be linked into the same app, which is currently not possible
20:20 < Arc> that doesn't matter since you cant exchange the objects
20:20 < kfish> and once libogg2 is backwards compatible with libogg1, we can deprecate libogg1 and just encourage libogg2 installation
20:20 < illiminable> mikes: maybe... but my core C++ library isn't a memory hog... i doubt it's much less efficient memory wise.
20:21 < illiminable> It's only the directshow parts that take liberties with memory allocation
20:21 < Arc> kfish: i dont see how this helps matters at all.  an app either supports libogg1 or libogg2.  there's no interoperation between ogg_page objects from the two versions
20:22 < Arc> the codec is what's important.
20:22 < kfish> Arc, indeed, that's exactly the problem
20:22 < Arc> kfish: that's not a problem tho
20:22 < j^> Arc it helps installing libogg2
20:22 < Arc> a single app is either going to use libogg1 OR libogg2.  there's no reason to support both at the same time
20:22 < j^> it helps porting and app, since libogg2 is installed by default
20:22 < MikeS> illiminable: I wasn't suggesting it was - libogg2 was designed for situation where having one copy of the data for the original page(s), and one copy for the demuxed packet(s), wasted too much memory. I doubt you avoid that case; it's pretty painful (because you end up having the packets be discontinuous in memory)
20:23 < kfish> Arc, it becomes a problem as soon as you encounter frameworks where different plugins use different libraries
20:23 < kfish> or, when you want to make a theora/speex player for example
20:23 < kfish> or something that supports both tremor and speex
20:23 < illiminable> mikes: yes, the original parsed packet is passed through, it parses directly to packets and doesn't copy unless you tell it to.
20:23 < Arc> kfish, speex doesnt care if its libogg1 or libogg2.
20:24 < kfish> in any case, the lack of compatability is an existing design problem with a clear path to resolution
20:24 < Arc> vorbis is the only codec needing conversion
20:24 < j^> Arc in python its possible to import ogg and ogg2, right now i have some scripts that are using both
20:25 < Arc> which raises the issue again that we have 3rd party frameworks using Ogg but without any interaction with us.  to deploy, we have to go through them
20:25 < kfish> libspeex provides/expects contiguous buffers
20:25 < illiminable> mikes: anyway... pretty much irrelevant to the discussion at hand ! :)
20:25 < MikeS> illiminable: true. 
20:25 < Arc> kfish: exactly, and you have to copy this buffer with libogg2's bitpacker.
20:25 < Arc> there's no way around this that either jmspeex or monty could find
20:26 < zaheerm> Arc: thats why i suggested if xiph have xiph-friendly ppl in these projects its easier to communicate through
20:26 < kfish> Arc, ok, it's not "an issue", it's the reason the rest of us have been working to integrate ogg framing and codecs in existing frameworks?
20:26 < kfish> it's an opportunity :)
20:27 < Arc> zaheerm: I am looking at it from a different approach.  We need to reconstitute Xiph with new developers and get some lifeblood going, because we're sliding, bigtime.
20:27 < kfish> Arc, well there's certainly some vapourware floating around ;-)
20:27 < zaheerm> Arc: maybe its time to tell the different projects that you want to work with them, but would like their help too
20:28 < Arc> in my view, these seperate implementations have evolved out of Xiph, which really should have done this in the first place, not having an Ogg framework in place.
20:28 < kfish> Arc, gstreamer should have come out of xiph?
20:29 < Arc> so gstreamer, mplayer, xine, videolan, ffmpeg, quicktime, and directshow all implemented seperatly
20:29 < kfish> anyway, i wholly agree that we should encourage more formal co-operation with framework developers
20:29 < Arc> kfish: no.  gstreamer does what gstreamer does.  it's not Xiph
20:29 < illiminable> Xiph should focus on what it's good at... and leave the frameworks to the dedicated projects
20:29 -!- DanielWH [~chatzilla@m09105e42.tmodns.net] has quit [Connection timed out]
20:29 < zaheerm> Arc: I dont thik thats the right view to have...yes they should have all been able to just cut and patse good quality code and just connect it together to consytitute the relevant plugins
20:30 < illiminable> and work together to mutual benefit
20:30 < Arc> zaheerm: no, not cut and paste. we should have had a framework in place for them to take verbatim
20:30 < AndrewBachmann> i think that we should start from: "look at all the people who have written seek algorithms for ogg -- why?"
20:30 < Arc> that's where the idea of i/o plugins come in
20:30 < zaheerm> Arc: but thinking that these frameworks would have wrapped another over-complicated framework is not the right way of thinking...
20:31 < Arc> ok, take gstreamer for example. there could be a specific "gstreamer" input/output plugin which is built to glue oggstream and gstreamer together
20:31 < kfish> Arc, yes, I/O plugins, and their interaction with seeking, are the most important parts of liboggz
20:31 < kfish> and it's crucial that frameworks can take advantage of these
20:31 < Arc> kfish: i agree.
20:31 < Arc> I'd love to pull liboggz as part of this
20:32 < Arc> I want oggstream to be a toolkit that frameworks can use, to whatever level they want or need
20:32 < Arc> have it distributed without any plugins beyond prehaps file, http, and a general callback mechanism
20:33 < zaheerm> Arc: explain to me this I/O plugin thing
20:33 < illiminable> One of the things is... it's hard to be everything to everybody... all the frameworks have their quirks... and sometimes being forced to particular api is really painful... the framewokrs have their own public apis so it doesn't matter what happens inside
20:33 < Arc> zaheerm: see http://wiki.xiph.org/OggStream
20:34 < Arc> illiminable: exactly. thats why they implement their own OggStream plugins to interoperate with themselves.
20:34 < kfish> so, a convenience library needs to be able to interact with the I/O plugins in a framework
20:34 < kfish> for example, directshow, or gstreamer, has i/o plugins
20:34 < Arc> yes.
20:34 < zaheerm> Arc: I think toolkit is a better word than framework...
20:34 < kfish> so, an ogg library needs a layer to interact nicely with that, ie. http://www.annodex.net/software/liboggz/html/oggz__io_8h.html
20:34 < Arc> ok, then call it toolkit.
20:34 < Arc> Monty called this a framework.
20:34 -!- K`rai [~xor@m195-243.dsl.tsoft.com] has joined #xiphmeet
20:34 < AndrewBachmann> Arc, each framework wants to have an OggStream plugin, and a separate Vorbis plugin, and a separate Theora plugin, etc.
20:35 < Arc> this is all basically Monty's idea for OggFile.  I'm just using a different name because 1) I hate the way VorbisFile is designed, no offense to Monty, and 2) because I'm not going to steal his name for it
20:35 < Arc> AndrewBachmann: why would each framework want a seperate Vorbis plugin
20:35 < zaheerm> Arc: what if gstreamer wanted to analyse raw vorbis audio only for example
20:35 < Arc> that's universal
20:35 < Arc> zaheerm: then gstreamer requests "vorbis" data vs "pcm"
20:36 < Arc> OggStream doesn't know what "pcm" is - that's an important distinction.
20:36 < AndrewBachmann> because if you want to put vorbis into quicktime container, you want a separate vorbis plugin
20:36 < zaheerm> Arc: no, this vorbis audio did not come in an ogg container
20:36 < AndrewBachmann> then the quicktime plugin connects to the vorbis plugin
20:36 < Arc> it only knows that it's the labeled type and it has these values and, by golly, these other pieces of software sure seem to know what they're doing with it
20:36 < illiminable> arc: I'm just saying trying to have a common api, isn't always the best approach because you end up trying to hack around it when your framework requires it... most of the proposed oggstream stuff is in the frameworks already... so writing another layer to duplicate this doesn't make much sense
20:36 < Arc> zaheerm: ok then you SUBMIT vorbis data from the input plugin ;-)
20:37 < Arc> illiminable: but those frameworks dont support Ogg.
20:37 < kfish> Arc, huh?
20:37 < illiminable> They don't need to they are generic... they support everything if you implement it
20:38 < Arc> illiminable: big 'if'
20:38 < AndrewBachmann> tiny if
20:38 < Arc> possible 'if', but big 'if'
20:38 < kfish> Arc, which is exactly what we're doing!
20:38 < zaheerm> yes
20:38 < AndrewBachmann> the lone if
20:38 < Arc> ok I'm confused now lol
20:38 < kfish> illiminable has been implementing directshow support
20:39 < Arc> ok I was refering to "what IF someone writes a mpeg codec plugin"
20:39 < zaheerm> BBB, wtay, thomasvs, Company have been doing ogg, vorbis, theora, speex, flac etc. plugins in gstreamer
20:39 < kfish> then ...
20:39 < illiminable> All the pluggable elements are part of the framework... you just implement these interfaces with your codec/format specific code
20:39 < kfish> ozone and i and a bunch of others have been working on xine support
20:39 < AndrewBachmann> ok, here's a good question, how do you expect to handle mpeg4 in ogg.. should xiph write a codec plugin for this?
20:39 < kfish> acolwell's been working on heli
20:39 < kfish> x
20:39 < AndrewBachmann> all the frameworks already have mpeg4 plugins
20:39 < Arc> AndrewBachmann: someone could, but god I hope not
20:40 < illiminable> Can be done in ogm already
20:40 < kfish> vlc, mplayer, quicktime ........
20:40 < Arc> but that's the issue of having Xiph host the plugin download. have it be open, but list the license and include information about it
20:40 < illiminable> and because ogm chose a standardised initial packet... it never requires demux changes for new codecs
20:40 < AndrewBachmann> ogm files are ogg files, so what is the intended plan of support for them?
20:41 < Arc> AndrewBachmann: if someone writes support, it'll work. if not, well, it wont.
20:41 < Arc> we're volunteers, after all.
20:41 < illiminable> it seems officially none... but my filters already do
20:41 < AndrewBachmann> what does "writes support" entail, in your vision?
20:41 < kfish> so really, the current approach of xiph publishing re-usable libraries for demux and each decode has worked for allowing people to put support into all the frameworks
20:41 < Arc> AndrewBachmann: writtin a plugin.
20:41 < AndrewBachmann> a xiph-plugin?
20:41 < zaheerm> Arc: linux distributions can usually emerge, apt-get, yum install newer versions of these plugins for gstreamer...if the linux distribution is setup right, it will even tell you when certain packages need updating
20:42 < Arc> see, in one example, I plan on writting a OggMP3 codec.  It will ONLY accept mp3 as an input, no encoding, nor will the decoder output anything but mp3, but that's enough for players who already support mp3
20:42 < Arc> zaheerm: please read the wiki.  you're asking questions already on it
20:42 < Arc> see /OggStream in the "Auto Update" section
20:42 < AndrewBachmann> well, I've got to go
20:42 < AndrewBachmann> I'll try putting what I'd like to see in oggstream someplace in the wiki
20:43 < Arc> if the distros package it right, the "Auto Update" would run through their system
20:43 < zaheerm> Arc: yes, what i am trying to get at is why the duplication fo effort
20:43 < Arc> AndrewBachmann: feel free also to use the Talk: (discussion) page
20:43 < zaheerm> into creating a liboggstream
20:43 < illiminable> oggmp3 ? I'm not seeing your point (and ogm does mp3 already too!)
20:43 < zaheerm> that does what the frameworks do, but just for ogg
20:44 < Arc> illiminable: Ogg MP3 so that MP3 can be streamed without transcoding along with Vorbis over Icecast
20:44 < illiminable> hmmm... if icecast added ogm header support they could support any audio or video codec in one hit.
20:44 < Arc> zaheerm: because with this only one set of codec plugins must be written. well, two considering Windows
20:44 < Arc> illiminable: yes but ogm is dead.
20:44 < zaheerm> Arc: it can be already...use the tee element in gstreamer
20:45 < Arc> zaheerm: but that's gstreamer. not mplayer xine quicktime libavcodec etc etc
20:45 < kfish> Arc, yes, some of those are simply player backends
20:45 < Arc> i know.
20:45 < zaheerm> Arc: gst-launch-0.8 alsasrc ! tee name=tee0 ! rawvorbisenc ! oggmux ! shout2send { tee0.src%d ! queue ! lame ! shout2send }
20:45 < Arc> and some players dont use frameworks
20:45 < kfish> whereas the full frameworks allow the kind of flexibility you're after
20:46 < kfish> no, they use xiph libraries
20:46 < Arc> kfish: I'm personally not in favor of media frameworks like gstreamer.
20:46 < illiminable> arc: why should it be dead ? It doesn't need to be an ogm file... but the header is the core of ogm.. and that one header supports all common audio and video types in one hit... and not the random codec at a time implementation the other ciph codecs use
20:46 < Arc> and some media players simply don't play that game
20:46 < illiminable> ciph=xiph
20:46 < kfish> well, xiph.org has a community responsibility to be in favour of gstreamer etc.
20:46 < Arc> illiminable: because I personally don't want to encourage non-free codecs in Ogg.
20:46 < Arc> but you're free to implement something. it's wide open
20:46 < illiminable> but yo just said mp3/icecast ?
20:47 < kfish> and gstreamer is a great supporter of xiph
20:47 < Arc> kfish: why community responsibility? kde has their own system, mplayer theirs. whats special about gstreamer
20:47 < zaheerm> Arc: to get ogg and hence free codecs used everywhere...u have to have the frameworks that are already commonplace support them well
20:47 < kfish> and mplayer, etc.
20:47 < Arc> kfish: that's great. but that doesn't mean we're going to play favorites
20:47 < Arc> and personally, when I'm coding something Ogg-only in Python, I don't want to have to open gstreamer
20:47 < kfish> not just gstreamer -- the point is that we must play nicely with frameworks
20:47 < illiminable> And the fact is a lot of people like vorbis, but still prefer their other video codecs for now... you're better to get them half in, than using matroska or avi
20:48 < kfish> because they already exist and work well, and are widely deployed, and do the job properly
20:48 < Arc> illiminable: ok then you should take this on as your project.
20:48 < zaheerm> Arc: use gst-python works well, and u can use it for ogg-only stuff
20:48 < Arc> kfish: there is nothing that is not playing well with frameworks that I'm working on
20:49 < Arc> zaheerm: it's overkill for what I use
20:49 -!- foolip [~philip@f42.ryd.student.liu.se] has quit [Remote closed the connection]
20:49 < Arc> if an app only does Ogg, there's no need for it
20:49 < zaheerm> Arc: then any framework is overkill for what u use, and u just need a libogg wrapper
20:49 < Arc> if they're doing something they need a framework for, great, use gstreamer
20:49 < kfish> Arc, it seems like you have a personal project to implement, which is the best way to start coding something useful
20:50 < zaheerm> Arc: and gstreamer is not overkill for most things...nokia and sony are using it in embedded devices like phones and camcorders
20:50 < illiminable> yeah sure you don't always need the frameworks... but that's the exception rather than the rules
20:50 < illiminable> -s
20:50 < Arc> I am implementing it.  Somehow, alot of people seem to have been confused, thinking that this meeting was to discuss wether my work was a good idea or not
20:51 < zaheerm> we were gonna talk about ideas of how we would like to see xiph int he future
20:51 < zaheerm> hence our input as to working closer with the frameworks
20:51 < illiminable> zaheerm: yes
20:51 < kfish> totally :)
20:51 < Arc> that's the how, not the what
20:51 < Arc> where is Xiph going to be Dec. 2005
20:52 < Arc> what is it going to look like, what is it going to represent to the community
20:52 < Arc> where is Ogg going to be.
20:52 < kfish> technically? better supported in players and frameworks
20:52 < zaheerm> and implementing an ogg specific framework is overkill for what the other frameworks want
20:52 < illiminable> zaheerm: agreed
20:52 < zaheerm> kfish: and encoders, transcoders, special effects stuff and anything multimedia really
20:53 < illiminable> DRM is something i'd like to talk about (I know it's unpopular) !
20:53 < kfish> zaheerm: sounds great!
20:53 < Arc> I'm seeing IceShare as a big boost to this, but it depends on the infrastructure
20:53 < Arc> illiminable: there's already Ogg DRM.  it failed.
20:53 < illiminable> where, why ?
20:54 < illiminable> why did it fail... it's not because of 'drm' generically... since everyone else seems to be hapilly drm'ing in their formats
20:54 < Arc> lol, me thinks ye don't read slasdot as ye should.
20:54 < Arc> illiminable: Ogg is free. DRM is in direct contrast to our goals.
20:54 < illiminable> No i prefer to get stuff done :)
20:55 < zaheerm> Arc: doesnt mean ppl shouldnt sell audio stuff in ogg formats
20:55 < Arc> no but DRM is something that just doesn't work
20:55 < illiminable> why ?
20:55 < Arc> especially not in the free world
20:55 < illiminable> The world is not free.
20:55 < illiminable> I think it's time to be realistic
20:55 < zaheerm> by not supporting drm, u dont care about other ppls copyrights on anything multimedia
20:56 < illiminable> Free is cool... but not everyone who has invested millions in something agrees !
20:56 < MikeS> Is this meeting still being even slightly productive?
20:56 < Arc> illiminable: hmm, with your views, I'd like to hear what draws you to Xiph
20:56 < Arc> illiminable: I'm refering to freedom.  when I talk of free cost, I call it gratis.
20:56 < ozone> MikeS: personally, i'm getting lunch in 10 minutes
20:57 < zaheerm> Arc: xiph is meant to be totally free..commercial ppl can use it, hobbyists can use it...all at no expense
20:57 < MikeS> ozone: I'm in the same time zone as you, so I was thinking more or less the same thing ;-)
20:57 < zaheerm> Arc: and no restrictions
20:57 < illiminable> And i've got to go video conference soon.
20:57 < Arc> MikeS, I think you came in with false expectations of what this meeting is for.  This is not a decidion making meeting, this is a discussion and brainstorming meeting
20:57 < zaheerm> and i need some sleep :)
20:57 < kfish> ok, well we've certainly decided to work closer with frameworks
20:57 < MikeS> Arc: my point was that it has degenerated into a bitching-about-DRM-session.
20:57 < kfish> and continue to build libraries that support that goal
20:58 < Arc> kfish: :-) no we've discussed how. this isnt about decidion making
20:58 < zaheerm> kfish: its decided or is it being pointed out that it would be a good idea
20:58 < illiminable> arc: Why am i here at xiph... because i think there are business opportunities surrounding it, and i'd like other people with the resources to recognise them.
20:59 < kfish> zaheerm, ooh, i think it's tabled as an proposal for further discussion towards a goal-oriented consensus forum!
20:59 < Arc> illiminable: http://www.sidespace.com/products/oggs/ is Ogg DRM
20:59 < zaheerm> btw one thing that would help frameworks....is if there was a way that vorbis would tell you what caps (sample rate, number channels) are supported at say bitrate 16000bps
21:00 < zaheerm> by vorbis i mean the vorbis library
21:01 < zaheerm> or even resample if you provide an incompatible caps audio stream
21:01 < kfish> zaheerm, could you flesh that idea out a bit more on vorbis-dev?
21:01 < MikeS> vorbisenc library, I assume you mean. Yeah, that would probably be useful. 
21:01 < zaheerm> kfish: will do
21:01 < zaheerm> MikeS: I assume it is potentially changable right?
21:01 < MikeS> design an API, send a proposal to the list?
21:01 < MikeS> zaheerm: the library? Of course. 
21:02 < zaheerm> MikeS: will do...just added to my todo list
21:02 < zaheerm> MikeS: no not the library, the encoder may become better and support higher sample rates at low bitrate?...hence an api would be better than just specifying in docs
21:03 < MikeS> zaheerm: obviously, this info exists in some form inside the library (otherwise it wouldn't know to reject things when it does...), so this is possible. It's just a matter of deciding how to present that information, and then implementing. Implementing wouldn't be entirely trivial (the data isn't in a terribly helpful form for figuring this out), but it wouldn't be too hard either.
21:03 < MikeS> zaheerm: I'm not sure what you're asking, then. 
21:03 < MikeS> zaheerm: because I thought we were both talking about adding things to the vorbisenc library.
21:04 < zaheerm> MikeS: i mean is it just set...and no new implementation of the vorbis encoding algorithm will change the capabilities at differing bitrates
21:05 < MikeS> oh, I see. 
21:05 < MikeS> Yeah, these thing can, and do, change. 
21:05 < zaheerm> MikeS: ok then having an api addition would be beneficial
21:06 < MikeS> For example, there are 3rd party libvorbis forks that provide much lower bitrates than normal libvorbis does - and those are likely to get adopted into libvorbis one day
21:06 < MikeS> Yes.
21:06 < MikeS> Any other matters, people?
21:06 < zaheerm> out of interest, in theora what happens in this regards?
21:07  * MikeS bangs his gavel and announces the meeting adjourned :-)
21:07 < Arc> um, MikeS.. again. this isn't that kind of meeting.
21:07 < Arc> but thanks for continually pushing for it to be so
21:07 < zaheerm> ie resolution and framerate
21:07 < MikeS> zaheerm: not sure. theora has 64 (?) fixed levels, but I don't know how they map to bitrates. People in #theora might be able to help.
21:07 < MikeS> Arc: fuck off, arc. It was a joke.
21:08 < Arc> MikeS: I'm frustrated at the kind of energy that was brought here.
21:08 < kfish> Arc, we're all happy free software hackers working towards a common goal
21:08 < zaheerm> Arc: i didnt mean to be hard on you...i was just putting my view as a framework developer what we would like to see
21:08 < ozone> being passionate is all good, unless you're a jedi
21:09 < Arc> we're all volunteers
21:09 < Arc> we work on what we work on
21:09 < illiminable> agreed... we're all just sharing our ideas
21:09 < zaheerm> yep
21:09 < Arc> the question is not what work gets done, because we're going to do whatever we do
21:09 < Arc> the question is how we can work together
21:09 < MikeS> Arc: why? It looks like we got a lot of the relevent people here (especially given the short notice!), and had a useful and productive discussion.
21:09 < illiminable> arc: agreed
21:09 < Arc> much of tonight has been "we shouldn't do this or that"
21:09 < Arc> negetive thinking
21:09 < zaheerm> ya id like to see theora get a new release out too :)
21:10 < Arc> I want to talk about how we can work together, collectivly, and see if a real working group can't be formed
21:10 < illiminable> arc: i don't think it's we shouldn't do this or that... everyones just got their own views on things
21:10 < Arc> MikeS: oh yes, useful people, and it's good that everyone showed up.
21:10 < zaheerm> and be better supported in windows for n00bs...fluendo's java applet is excellent but itd be nice if the main players could have auto codec downloads for xiph plugins
21:11 < illiminable> arc: i don't think anyone is saying don't do something if you want... just it may not be something everyone else is interested in
21:11 < zaheerm> illiminable: u said its happening soon for the ogg ones in WMP?
21:11 < derf_> zaheerm: Theora supports any resolution and any framerate at any bitrate... it'll just drop a ton of frames to keep up.
21:12 < derf_> The actual limits that avoid frame-dropping are content-dependent.
21:12 < zaheerm> derf_: ok...so is there recommended framerates for each resolution anywhere for each bitrate....or is there a formula to work that out
21:12 < illiminable> zaheerm: yes... i'm just focussing on getting the current stuff working... and making sure that as i add new codecs, that my api really is generic enough before i start trying to get people to build on it
21:13 < illiminable> I've written for speex, theora, flac, vorbis, cmml and dirac... and i'm getting more confident that it's pretty close now.
21:13 < derf_> zaheerm: It depends on if your scene has a lot of motion, complex textures or hard edges, etc.
21:14 < zaheerm> derf_: ok i get the picture...is there a decent way of testing....?
21:14 < zaheerm> it would be nice if lets say a transcoding app would recommend resolution/framerate for target bitrate
21:14 < derf_> zaheerm: Try something out... if it doesn't work, change it.
21:14 < zaheerm> for certain prerecorded scenes
21:15 < zaheerm> derf_: so currently trial and error, any stats output i can get from libtheoras encoder as to % dropped frames
21:16 -!- ozone [~pan068@c211-30-78-105.belrs2.nsw.optusnet.com.au] has left #xiphmeet []
21:17 < derf_> The encoder keeps a DropCount internally, but doesn't expose it anywhere.
21:17 < kjoonlee> (Pardon me, but is this being logged? Will logs be provided on the web?)
21:17 < Arc> kjoonlee: yes. see FishLogger 
21:18 < derf_> Hmm, actually that drop count is only for consecutive frames, so it gets reset the next time one is actually coded.
21:18 < zaheerm> oh ok
21:19 < zaheerm> so no way except by viewing the stream whether its ideal or not
21:19 < derf_> With current tools, that's correct.
21:19 -!- kjoonlee [~kjoonlee@] has quit ["Leaving"]
21:19 < derf_> Ideally you could make a first pass to estimate the compressibility of the material.
21:21 < zaheerm> yah
21:22 < zaheerm> but that first pas sneeds ot know the number of dropped frames
21:22 < zaheerm> to estimate the compressibility
21:22 < derf_> Well, you could use a lot more information than that.
21:23 < derf_> i.e., look at coefficient distribution, motion vector bits, etc.
22:44 -!- Netsplit sterling.freenode.net <-> irc.freenode.net quits: K`rai
22:48 -!- j^ [~j@gw.bootlab.org] has quit [Read error: 113 (No route to host)]
22:50 -!- Netsplit over, joins: K`rai
--- Log closed Wed Nov 24 22:56:45 2004