Hi all,

A few weeks ago I took a look at kaa.record because I was thinking of adding IVTV support to it. I got looking at the code and had some second thoughts, at least until I raise them on the list. Since we're going to be working on the tv/recording area again soon now is the time to raise these issues.

There has been some effort put into the architecture of kaa.record in that there's an output plugin layer, which is good. After a closer look I noticed there seems to be a few DVBisms in places that I think there shouldn't. For those who don't know much about kaa.record and would like to reference the things I'm talking about, you can go to: http://cvs.sourceforge.net/viewcvs.py/freevo/kaa/record/

The filenames in general: this is more of a cosmetic thing. I like the op_ prefix on the output plugin files, and some of the files are prefixed by dvb. There are some files there that are also particular to dvb: dmx.h, filter.h, filter.cc, frontend.h, remux.cc, remux.h, tuner.cc, and tuner.h. It would be nice if these files were in a dvb/ directory or prefixed by dvb_ so they not be confused by files for other input types. For example v4l2 and ivtv devices will have a different tuner object and their related files should be visibly separate.

There is also some logic in the output plugin layer that probably belongs in a separate remuxer layer. Looking op_filewriter.* you will see reference to pids and DVB/MPEG-TS. It looks like FT_MPEG is being used for MPEG-TS and would break with other MPEG types. If we make an IVTV device for kaa.record I would assume it be ok to say it uses FT_MPEG, but IVTV provides a MPEG-PS (DVD format) stream which is muxed audio+video - no pids. IVTV would have to use FT_RAW.

Actually perhaps the only thing the output plugins should care about receiving is raw data (from an optional remuxer plugin). Some input devices wouldn't care to use a remuxer (ivtv, since the mpeg comes muxed) and some would have to use a more complicated remuxer, like v4l because the audio must come from a dsp device and both sets of data are in raw formats (and would also need to be transcoded).

Another advantage of moving DVB/MPEG/remux code out of any output plugins is that this code won't have to be copied into any new plugins.


So, all this is going through my head and is making me wonder if we want to be doing all this work. :)

Remember, our mottos have been "the right tool for the job" and "the unix way" because we've chosen not to reinvent the wheel. We already have programs to deal with DVB, IVTV, and V4l inputs. Adding IVTV support to kaa.record won't be a big deal but V4l input is a whole new can of worms. Right now we have the flexibility of mencoder.


Other ideas:

What about making a kaa.mencoder that's similar to kaa.mplayer? That way we'll still have the flexibility of mencoder's options. I know that one reason we'd like to control the input ourselves is that we'd like to do timeshifting using chunked files. It may be easy to add chunked file output to mencoder or we could pipe an output stream into our output plugin for chunked output.


RFC,
-Rob


--
-------------------------------------------------------
Rob Shortt        | http://tvcentric.com | Freevo
[EMAIL PROTECTED] | http://freevo.sf.net | Free your TV


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Freevo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-devel

Reply via email to