Good! Just waiting you to implement ;P I just don't like the Audio-Video relationship u impose. Better to keep with the container stuff you mentioned.
Gustavo --- den_RDC <[EMAIL PROTECTED]> escreveu: > But i did think a loooong time about it. Have been busy latly with > all sorts > of stuff, but i did make some changes to the implementation and > there's a > code structure in my head. > > Here's the proposed Interface definition ( the changes make it > possible to > make an initial version that just supports 1 codec (less work) but > make it > more manageable to add truckloads of codecs. > > ---EncodingServer Interface Definition--- > > initEncodeJob(source, friendlyname) > this initializes the process of qeueing an encoding > source can be a DVD (wich is a device or a directory) or a file, this > is > autodetected. Friendly name is a nice name for the encoding job to be > created. This method returns a unique id identifying the encoding > job, so > multiple clients can use the encodingserver at once without a > problem, and > qeueed jobs (that aren't executed yet) can be edited or removed > > getVideoCodecCAP() > Get's a list of available video codecs (to pass with setVideoCodec). > It is > generally a VERY good idea to call this before setVideoCodec. It will > make it > possible to extend the encoding server more easily. > > > setVideoCodec(id, vcodec, tgtsize) > Sets the video output codec, initially, only xvid (and probly > lavcodec will be > supported). Tgtsize is the targetsize of the encoding in mbytes. > > getAudioCodecCAP(id) > Get's a list of audio codecs that are supported. THe job id is > required (thus > it must already exist) and there must be a video codec set (because > the > choice of audio codecs is determined by the video coded selected. > Although > this isn't 100% true, it should work pretty well. > > Or should i also add a get/setContainerFormat (avi, mpg, ogm etc)? > > setAudioCodec(id, acodec) > Same as setvideocodec but for audio > > getFiltersCAP(id) > Gets a dictionary with available filter/processing operations. The > dictionary > has a list of options for every "key" aka filter. This could be > something > like > { deint : ['deinta','deintb']; > crop : ['4/3','16/9','Cinemascope','Autodetect','None']} > It makes it easy to add more filters when they become availble (or > when we > need them). > > setFilter(id, filter, setting) > Activates a certain filter and set's it's value. > > qeueIt(id, now) > Adds the job with id to the encoding qeue. If now is specified it > starts > directly, otherwise it will start in a timeframe specified in the > recordserver config (fx at night). I also think that for direct rips > from > dvd, encoding should always be started now. > > getProgress(id) > Returns 0 if the job has not been started yet, or a tuple (pass, > progress, > trem) if the job is being executed. pass being a name describing the > current > pass (fx Audio, Video pass 1 etc). Progress is a number between 0-100 > describing the progress, and trem is a string with the estimated time > left > for completing the current pass. > > removeJob(id) > Removes a job from the encoding qeue and cleans up > > listJobs() > Returns a list of tuples, each tuple containg id and friendly name > (id, > friendlyname) > > setNiceness( id, nice = 0 ) > getNiceness( id ) > > getVersion() > returns the encodingserver version. I plan to make the encodingserver > in such > a way it doesn't require all off freevo to be functional (for remote > machines). This adds the risk that client/server will not get updated > in > sync. Revision is just a number that increases +1 every time a change > in the > code happens (ie on every commit). > > > Some of gustavo's process control functions will probably be > implemented too > > stopJob(id) --> just stop. Later process will resume from the lastest > place it could. IE: IF you pause in the middle of encoding, but > already > rip, you're back to the begining of the encoding process again, when > resume. With this you can reboot your machine, for example. > > restartJob(id) --> resume from stopJob() > > pauseJob(id) --> Just SIGSTOP process > > resumeJob(id) --> resume from pauseJob() (SIGCONT) > > ------ > I also got a nice diagram i made ith Kivo (had to test it sometime > ago) and i > made a structural diagram of encodingservers implementation :) > > http://dancevision.blub.be/img/encserver.jpeg > > Comments? > > > > ------------------------------------------------------- > This SF.net email is sponsored by: IBM Linux Tutorials. > Become an expert in LINUX or just sharpen your skills. Sign up for > IBM's > Free Linux Tutorials. Learn everything from the bash shell to sys > admin. > Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click > _______________________________________________ > Freevo-devel mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/freevo-devel ______________________________________________________________________ Conheça a nova central de informações anti-spam do Yahoo! Mail: http://www.yahoo.com.br/antispam ------------------------------------------------------- This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click _______________________________________________ Freevo-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-devel