Re: port Brasero to opensolaris



Philippe Rouquier wrote:
Hi,

It's great to know someone is working on making brasero work for open solaris =). Thanks
It's my honor :-)

1) As Luis said the several backends are here to send SCSI commands to the drive through the kernel. Kernels support different interfaces and APIs. Linux uses SG and freeBSD cam. So IMO the first step to make brasero work on open Solaris is to write the SCSI interface for brasero to be able to send SCSI commands. For this to work, implement the functions declared in : - src/scsi-device.h => all functions to open and close the interface => 2 functions
- src/scsi-command.h => all functions to send a command => 3 functions

With these 5 functions implemented (for linux in src/scsi-sg.c and for FreeBSD in src/scsi-cam.h) you should have brasero identifying the medium inserted which is the basis. The backends are conditionally built according to the system identified by configure (see src/Makefile.am).
Thanks for sharing these info. They are helpful.

2) As Luis said yes, all parts from brasero relying on plugins from gst-bad could be built conditionally. I don't see any problem to that except one thing to keep in mind:
Thanks.
future releases of brasero (see video branch in SVN) will require even more plugins from bad (vcdimager, dvdauthor, all mpeg2 plugins...) and also from ffmpeg gstreamer plugin set. So if one distro doesn't support bad plugin set that means no video discs could be created. Apart from that, a switch can be created conditioning the creation of the normalize plugin.
Yes, I think it's a good idea to use gstreamer. I strongly suggest brasero plugins based on bad or ugly should be built conditionally because I believe OpenSolaris is not the only one which has the problems to ship Gstreamer bad/ugly plugins. I'm glad to see Brasero can create video discs, but unfortunately I probably have to disable this feature on Solaris. Anyway it's not the worst thing, we still have the Brasero. :-)

Of course, there are other methods to do normalizing and video discs. In the latter case we could create vcdimager and dvdauthor plugins. But the benefits of using gstreamer are :
- it's well supported and integrated
- it allows to avoid many temporary files (which eat hard drive space)
Sure, I understood.

Gstreamer allows to transcode one video file in its final result in one operation. Otherwise, we'd have to create temporary audio files for AC3, MP2 audio streams, one video stream MPEG2 and then remultiplexing all those files into the final one. It also allows during this single operation to apply any filter/effect we want (size, video/audio format, ...) instead of having to create another temporary file for each operation. In the case of normalizing, it allows to normalize files whatever their format/encoding is. There are tools to do normalizing that but they usually work for a limited set of audio formats (only mp3 or only ogg, ...). With Gstreamer, when a new audio format is supported (through a new plugin), this new format will also be supported by our normalizing plugin. This is priceless since we don't have to care about which audio formats are supported.
Good feature. Let me involve Brian Cameron, core developer for Solaris Media project. Maybe he has some ideas about Gstreamer issue, at least for Solaris. I personally like to see built option like "--enable-plugins=mp3,ogg,..." to help us to remove the dependency of gst-bad/ugly. :-)

One note though, Luis said we already have a switch (--enable-preview) to build brasero with or without gstreamer. That's not entirely correct since this switch only conditions the building of the video widget used for preview not gstreamer which is used unconditionally throughout brasero.
OK, I hope you or other developers who is familiar with the part code can work on the option to pick out the bad/ugly related code, since I don't think I have the qualification right now. BTW, I have tested --disable-preview on the currently trunk, building is *failed*. I think it's a bug.

I hope this help.
Sure, it is. Thanks a lot.

lin

--
x82120 / +86 10 82618200



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]