Amiga.org

Operating System Specific Discussions => MorphOS => MorphOS -- Application questions and support => Topic started by: Heiroglyph on September 26, 2014, 08:08:50 PM

Title: Where are the weak points?
Post by: Heiroglyph on September 26, 2014, 08:08:50 PM
I'm new to this platform and enjoy writing software, but so far I'm not seeing a niche that isn't filled.

I've looked at the bounties on MorphZone, but none of them are particularly interesting.

Permedia 2 Rave3D driver - needs hardware I don't have
XServer - I disagree with ports
Instant Messenger - protocols constantly broken on purpose
FTP Client - aren't there 101 of these available?
GTK-to-MUI Wrapper - I disagree with ports and hate GTK
Spreadsheet Application - just plain boring

What do we need?

I may end up just using it as an Amiga 68k cross development platform.
Title: Re: Where are the weak points?
Post by: XDelusion on September 26, 2014, 08:24:22 PM
We do have DJ software if that is your thing. Also there is the latest release of Digibooster 3.1

http://tcheko.binaryriot.org/soundbankster/

http://www.amigashop.org/product_info.php?products_id=212&osCsid=ktjec8d52atu0c3b15qaq7g5p5


We've got some great 3D game engines such as Quake, Quake II, and Odamex, though no development tools that I'm aware of aside of Blender, but nothing in regards to mapping.

Hmmm, let's see.

Show girls is a great program for manipulating graphic images plus it can be used as a comic reader if your extract the images from your "CBR" first.
Title: Re: Where are the weak points?
Post by: pVC on September 26, 2014, 08:30:24 PM
Just got a request of "graphical diff program, which compares text file line by line and allows you to copy lines to other file", or is there similar already? :)

OpenOffice port :)

Spotify client, but I guess that's hard unofficially?

Torrent client.

Some dropbox/whatever mount things? :)
Title: Re: Where are the weak points?
Post by: Yasu on September 26, 2014, 08:34:24 PM
You can always suggest your own bounty if you can think out a project yourself :)
Title: Re: Where are the weak points?
Post by: XDelusion on September 26, 2014, 08:52:52 PM
Oh yes, we still need solid USB/MIDI support. We need to ditch AHI in favor of something more flexable, and yes Trident is also a major holding back factor in regards to external sound cards and what not.
Title: Re: Where are the weak points?
Post by: Yasu on September 26, 2014, 09:08:46 PM
I want a better image manipulation program.

I like to make icons. So I would love a program that allows me to put a picture on top of another, with transparent background, can save as PNG and can handle rescaling. I've tried Art Effect 4 but I can't get that function to work.
Title: Re: Where are the weak points?
Post by: Heiroglyph on September 26, 2014, 09:34:01 PM
I'm not even looking for a bounty, that was just a suggested place to look in my other thread.

I'm mainly looking for something I'll enjoy making that will be useful to myself and hopefully others.

As far as graphic and icon manipulation, aren't we pretty well covered between native MorphOS apps and Amiga apps?

I don't use MIDI personally, so I probably wouldn't know enough about the use cases to do it justice.
Title: Re: Where are the weak points?
Post by: amigadave on September 26, 2014, 09:37:02 PM
Quote from: Heiroglyph;773979
I'm new to this platform and enjoy writing software, but so far I'm not seeing a niche that isn't filled.

I've looked at the bounties on MorphZone, but none of them are particularly interesting.

Permedia 2 Rave3D driver - needs hardware I don't have
XServer - I disagree with ports
Instant Messenger - protocols constantly broken on purpose
FTP Client - aren't there 101 of these available?
GTK-to-MUI Wrapper - I disagree with ports and hate GTK
Spreadsheet Application - just plain boring

What do we need?

I may end up just using it as an Amiga 68k cross development platform.

Contact Trevor Dickinson about his project to port Open Office/Libre Office to AmigaOS4.x and ask him if you could take their progress and make a version for MorphOS.  A good Office Suite is one of the most often requested software projects that many users ask for on MorphOS (or any Amiga inspired platform).  Yes, it might be a boring project, but we really need it.  Another alternative is fixing or improving printer drivers/support.  It seems like many users have trouble getting good print results from their MorphOS systems, while others state that it works quite well for them.

Any software project that makes it easier for average users to get into programming on MorphOS themselves would be beneficial to everyone in the long run.  Something like Visual Basic, or a re-write of AMOS with enhancements and modern features would be great for untrained bedroom coders to get back to creating software content for MorphOS.

Personally I would like a better, simpler video editing package for MorphOS and with your background with NewTek (IIRC), maybe you could do something with the Open Source code for the Toaster/Flyer to create something new for MorphOS.

I would love to see a new, or improved 2D, or 3D CAD program for MorphOS.  I do a fair amount of drafting and design work on my Windows systems, and would love to switch to using MorphOS for that instead.

Just a few ideas off the top of my head.  Some might be probable candidates, while others are probably just pipe dreams.
Title: Re: Where are the weak points?
Post by: itix on September 27, 2014, 09:09:19 AM
AHI replacement - forget it. Too much work for no gain.

Libre Office/Open Office - forget it. It is not enough to port LO/OO but you must also maintain port next ten years. And for starters I really recommend considering something easier in smaller scale. And not to mention to get there you might have to port some dependencies first i.e. boring (although the MorphOS team could help you there). But I really recommend starting with something else.

GTK-MUI - I think it took wrong approach. It should have been GDK-MUI project so you could build GTK out of the box with native widgets. It also has lot of dependencies (pango, glib etc) making it quite boring.

Graphical diff utility could be nice.
Title: Re: Where are the weak points?
Post by: Manu on September 27, 2014, 10:26:29 AM
Quote from: Heiroglyph;773979
I'm new to this platform and enjoy writing software, but so far I'm not seeing a niche that isn't filled.


At least on AROS I'd like something to cut / Join videos add text slides with that has transition effects etc. something like Windows Movie Maker. Maybe there's something in the Linux open source world to port, i don't know.
Title: Re: Where are the weak points?
Post by: Kronos on September 27, 2014, 10:48:05 AM
Quote from: Yasu;773986
So I would love a program that allows me to put a picture on top of another, with transparent background, can save as PNG and can handle rescaling.


Next version of SteamDraw will be able to do all that, bitmap rescaling done with antigrain-library so that should yield o.k. quality and all GFX you add by hand will be in vector anyways.
Title: Re: Where are the weak points?
Post by: Yasu on September 27, 2014, 11:08:43 AM
Quote from: Kronos;774010
Next version of SteamDraw will be able to do all that, bitmap rescaling done with antigrain-library so that should yield o.k. quality and all GFX you add by hand will be in vector anyways.


Really? That would be cool! Will it be able to load and save PNG?
Title: Re: Where are the weak points?
Post by: Kronos on September 27, 2014, 12:12:55 PM
Quote from: Yasu;774012
Will it be able to load and save PNG?


Things you can do with the current version:

a) draw an invisible rectangle (linewidth 0) and fill it with any bitmap loadable through datatypes.
(current versions will leave some artefacts if source bitmap has semi-transparent areas)
b) repeat as often as needed
d) Export as PNG with any resolution you need

With next version:
c) set background color to 100% transparent

Directly loading PNG is not supported as it's still a vector based app.

@Heiroglyph
If you want us to suggest you a coding project you should start with giving some pointers as to what skills you have and what kind of project you'd like.

Some small 10k utility or 100MB of sources ?

Game or app ?

Ported or all your own ?

Heavy on GUI or just interested in algorythms ?

etc etc
Title: Re: Where are the weak points?
Post by: Yasu on September 27, 2014, 12:20:15 PM
@Kronos

Is there a way to convert PNG to vector gfx?
Title: Re: Where are the weak points?
Post by: Kronos on September 27, 2014, 12:31:07 PM
We are way offtopic here....

Converting only makes sense when the picture has few colors and clear shapes otherwise you be better of letting the bitmap scale up/down (SteamDraw will allways use the orginal resolution so nothing lossy bout that).

If you still want to convert you should either use autotrace or maybe even better XTrace (http://www.amigafuture.de/downloads.php?view=detail&df_id=5092).
Note will take ages on big multicolored images and results may vary. At the last Geit@home we traced a FullHD Princess Peach from MarioKart8 with XTrace and it took 2 hours (AFAIR), result was o.k..
Title: Re: Where are the weak points?
Post by: Heiroglyph on September 27, 2014, 05:00:46 PM
Quote from: Kronos;774013

@Heiroglyph
If you want us to suggest you a coding project you should start with giving some pointers as to what skills you have and what kind of project you'd like.

Some small 10k utility or 100MB of sources ?


Good points.

I just got this platform a few days ago, so I should do something relatively small first, but after that I'd like a larger single person project.

Quote

Game or app ?


I'm not a gamer, but I do like writing tools.

Quote

Ported or all your own ?


If it's useful enough, I'm not against doing ports of libraries, command line apps or GUI apps that become native.

Personally I don't feel that GTK, QT, etc. really have a place on Amiga-like OSs right now.

Quote

Heavy on GUI or just interested in algorythms ?

etc etc


I definitely need to brush up on MUI, but a command line tool or library is fine at first.

I love doing video and graphics related applications, but I'm not sure I can legally write them from scratch, it's kind of a gray area.

I could for example fix a bug or feature in ffmpeg without a problem.

I wouldn't mind doing some Datatype or Reggae additions if there are holes there.
Title: Re: Where are the weak points?
Post by: kamelito on September 27, 2014, 07:19:57 PM
@Amigadave
Modern port maybe not complete already exist.
http://sourceforge.net/projects/xamos/

Kamelito
Title: Re: Where are the weak points?
Post by: Heiroglyph on September 27, 2014, 07:56:53 PM
Ok, I'm pretty interested in some additions to Reggae. Maybe some demuxers and muxers for mp4, mov, mkv, etc and some codecs.

So what actually uses Reggae? I haven't noticed any applications that mention using it so far.

If nothing is using it, then maybe I should write one first?
Title: Re: Where are the weak points?
Post by: pVC on September 28, 2014, 07:05:39 AM
Quote from: Heiroglyph;774041
Ok, I'm pretty interested in some additions to Reggae. Maybe some demuxers and muxers for mp4, mov, mkv, etc and some codecs.

So what actually uses Reggae? I haven't noticed any applications that mention using it so far.

If nothing is using it, then maybe I should write one first?


Oh, yeah, Reggae classes please! MorphOS's Jukebox music player uses Reggae and would need more supported formats. For example proper FLAC implementation.
Title: Re: Where are the weak points?
Post by: Heiroglyph on September 28, 2014, 07:23:33 AM
Quote from: pVC;774068
Oh, yeah, Reggae classes please! MorphOS's Jukebox music player uses Reggae and would need more supported formats. For example proper FLAC implementation.


Is there a video player? I've only seen audio. (not that I'm against doing audio, but I like video)

Not much in the way of examples in the SDK either, just how to download using HTTP (3 different ways),how to play an audio file if you know in advance that it's an audio file (again, 3 different ways) and a sine wave generator with hard coded filters.

Nothing on detecting the type and number of streams or building up the right classes, nothing on display or writing to a file.

At the very least they could open the source for the bmp demux and maybe make a quick and dirty image viewer.
Title: Re: Where are the weak points?
Post by: pVC on September 28, 2014, 07:37:14 AM
Quote from: Heiroglyph;774069
Is there a video player? I've only seen audio. (not that I'm against doing audio, but I like video)


MorphOS version of MPlayer (http://fabportnawak.free.fr/mplayer/) is so good, that there isn't much need for another player, BUT some kind of simple video editor is very wanted.
Title: Re: Where are the weak points?
Post by: pVC on September 28, 2014, 07:48:01 AM
If it's any help, there are some example programs with source codes for reggae usage: http://morphos-files.net/find.php?find=reggae
Title: Re: Where are the weak points?
Post by: Heiroglyph on September 28, 2014, 07:48:41 AM
Quote from: pVC;774071
MorphOS version of MPlayer (http://fabportnawak.free.fr/mplayer/) is so good, that there isn't much need for another player, BUT some kind of simple video editor is very wanted.

My train of thought is that mplayer or vlc or ffmpeg, etc only help themselves and only get bugfixes and improvements on their own timeframe.

If Reggae (or Amiga datatypes) had proper support, then all applications that use Reggae could take advantage of them.

Reggae looks like it has fixed a lot of the Datatypes limitations if I can figure out how to use it properly. Unfortunately it still looks limited to 8 bits per color channel, no HDRI :(

Edit: I do see 16 bits per channel! It's not float, but it's better than 8 bits.

Edit2: Video isn't going to be good through Reggae, it's documented as not supporting any YUV color spaces currently. It would be high CPU and low quality. This is really just for basic images and audio.
Title: Re: Where are the weak points?
Post by: Heiroglyph on September 28, 2014, 07:54:14 AM
Quote from: pVC;774072
If it's any help, there are some example programs with source codes for reggae usage: http://morphos-files.net/find.php?find=reggae


Some of those do come with source, thanks, I'll check them out.
Title: Re: Where are the weak points?
Post by: krashan on September 28, 2014, 09:58:42 AM
Quote from: Heiroglyph;774073
Unfortunately it still looks limited to 8 bits per color channel, no HDRI :(

Edit: I do see 16 bits per channel! It's not float, but it's better than 8 bits.

Edit2: Video isn't going to be good through Reggae, it's documented as not supporting any YUV color spaces currently. It would be high CPU and low quality. This is really just for basic images and audio.
Reggae is an evolving framework. It is designed to be extendable. Even if it does not support some feature now, such a feature can be probably added.

Current Reggae supports only two video formats: "GRAY8" and "RGBA32". For serious video support at least one YUV format will be needed. For high dynamic range images probably another one. However additional formats should be added with care. Application programmer expects filters to support all the formats. Then adding many formats to Reggae means more work for filter programmers.

The question of HDR image format in Reggae is open. It may be ARGB64, it may be 4 x float too. Preliminary introduction of ARGB64 was inspired by PNG specification, and it is not widely supported by Reggae classes yet. We can discuss it.
Title: Re: Where are the weak points?
Post by: jj on September 28, 2014, 11:02:00 AM
very very very rarely use torrents but morphos does seem to be missing a decent gui based torrent client.

Is there anything decent on morphos for creating mui GUIs like visual studio?
Title: Re: Where are the weak points?
Post by: Heiroglyph on September 28, 2014, 06:58:50 PM
Quote from: Krashan;774080
Reggae is an evolving framework. It is designed to be extendable. Even if it does not support some feature now, such a feature can be probably added.

Current Reggae supports only two video formats: "GRAY8" and "RGBA32". For serious video support at least one YUV format will be needed. For high dynamic range images probably another one. However additional formats should be added with care. Application programmer expects filters to support all the formats. Then adding many formats to Reggae means more work for filter programmers.

The question of HDR image format in Reggae is open. It may be ARGB64, it may be 4 x float too. Preliminary introduction of ARGB64 was inspired by PNG specification, and it is not widely supported by Reggae classes yet. We can discuss it.


Wow, I didn't expect input from the author.

I can work with 8bit for images for now, but the addition of YV12 for 4:2:0 streaming playback and UYVY for 4:2:2 editing would be crucial for video.

For others to add to the list of available classes, it would be nice to have examples of a demux/decoder pair and possibly an encoder/mux pair.

Splitting the demux and decoder is a great addition for video where you can have multiple containers (avi, mov, etc) share decoders, but I'm a little confused about the demux/decoder separation on many formats such as still images though.

I assume layered formats, such as PSD and TIFF would somehow fall under the type MMT_DOCUMENT? Are they intended to expose a list of MMT_PICTURE or am I way off base here?

Thanks for the hard work, I can't wait to start using it.
John
Title: Re: Where are the weak points?
Post by: rzookol on September 28, 2014, 07:56:46 PM
Here, You have an example program which i use during reggae classes developmnent
http://brain.umcs.lublin.pl/~rzookol/download/progressive_tester/
(compile with -noixemul)
ps. reggae has CMYK32 format too supported

I'm working on Exif metadata support for reggae so it should be available in next morphos release. As for writing decoders i suggest starting with some rather easy formats such as PhotoCD or SGI.
Title: Re: Where are the weak points?
Post by: Heiroglyph on September 28, 2014, 08:05:59 PM
Quote from: rzookol;774122
Here, You have an example program which i use during reggae classes developmnent
http://brain.umcs.lublin.pl/~rzookol/download/progressive_tester/
(compile with -noixemul)
ps. reggae has CMYK32 format too supported

I'm working on Exif metadata support for reggae so it should be available in next morphos release. As for writing decoders i suggest starting with some rather easy formats such as PhotoCD or SGI.


Thanks, that looks like it could be very helpful.

I've written everything from DirectShow and Quicktime codecs to a complete layered PSD parser, so I'm not too concerned with the formats themselves, I just need to understand Reggae.
Title: Re: Where are the weak points?
Post by: krashan on September 29, 2014, 07:23:43 AM
Quote from: Heiroglyph;774113
I can work with 8bit for images for now, but the addition of YV12 for 4:2:0 streaming playback and UYVY for 4:2:2 editing would be crucial for video.
In my opinion Reggae should use one, or at most two YUV formats. Remember, more "common formats" means more work for filter implementors. Other YUV subformats should be supported with conversions.

Quote from: Heiroglyph;774113
For others to add to the list of available classes, it would be nice to have examples of a demux/decoder pair and possibly an encoder/mux pair.
Rzookol has plans to release source of some of his classes. I may add to this, that I work on LibMaker application, which is a GUI driven, parametrized code skeleton generator for shared libraries, BOOPSI classes, MUI classes and Reggae classes as well.

Quote from: Heiroglyph;774113
Splitting the demux and decoder is a great addition for video where you can have multiple containers (avi, mov, etc) share decoders, but I'm a little confused about the demux/decoder separation on many formats such as still images though.
For such formats demuxer decodes (and detaches) the header, extracts metadata (if any). Demuxers are also responsible for format recognition (Reggae performs content based recognition).

Quote from: Heiroglyph;774113
I assume layered formats, such as PSD and TIFF would somehow fall under the type MMT_DOCUMENT? Are they intended to expose a list of MMT_PICTURE or am I way off base here?
MMT_DOCUMENT is a postsign standing on a boundary of uncharted land ;-). In my opinion PSD (I guess you mean Photoshop format) is out of Reggae scope. Of course one can imagine a document, where multiple images are stacked one on another and alphablended. However PSD allows for much more than that. Layers can be combined in numerous, non-trivial ways. Do we really want the whole Photoshop compatible image composition engine in Reggae? Or it just should deliver layer images, their offsets and scaling factors and enumerate combiners used?
Title: Re: Where are the weak points?
Post by: Heiroglyph on September 29, 2014, 03:43:15 PM
Quote from: Krashan;774156
In my opinion Reggae should use one, or at most two YUV formats. Remember, more "common formats" means more work for filter implementors. Other YUV subformats should be supported with conversions.


In similar frameworks, the color format is negotiated and most encoders/decoders would not support more than one or two color formats as needed by the type they (de)compress unless the author just wanted to do so.

MPEG would have YV12 and UYVY and JPEG should really have a YUV format or two added.

Having a single, optimized color conversion filter do the color conversion is better IMHO than having each and every codec add the functionality.

Filters along the chain could be upgraded to support a small number of additional formats as it makes sense. For example, UYVY can easily substitute for YV12 and BGRA can substitute for any 8bit RGB both losslessly with only a small performance hit.

It may not always be optimal, but it does function. How often it is optimal can be easily upgraded by individual filter authors.

Quote

Rzookol has plans to release source of some of his classes. I may add to this, that I work on LibMaker application, which is a GUI driven, parametrized code skeleton generator for shared libraries, BOOPSI classes, MUI classes and Reggae classes as well.


That's great to hear. I'm sure that with more examples and documentation more classes will be written.

Quote

For such formats demuxer decodes (and detaches) the header, extracts metadata (if any). Demuxers are also responsible for format recognition (Reggae performs content based recognition).

MMT_DOCUMENT is a postsign standing on a boundary of uncharted land ;-). In my opinion PSD (I guess you mean Photoshop format) is out of Reggae scope. Of course one can imagine a document, where multiple images are stacked one on another and alphablended. However PSD allows for much more than that. Layers can be combined in numerous, non-trivial ways. Do we really want the whole Photoshop compatible image composition engine in Reggae? Or it just should deliver layer images, their offsets and scaling factors and enumerate combiners used?


It seems out of scope at this point, but I like the idea of using Reggae as vastly upgraded Datatypes. They always seemed underutilized on Amiga, but perhaps I'm reading too much into what Reggae was intended to be.

How I envisioned it is fairly complicated. It would be both MMT_DOCUMENT and MMT_PICTURE as the application is able to handle.

For now I just need to focus on what is within the current scope of Reggae.
Title: Re: Where are the weak points?
Post by: krashan on September 29, 2014, 04:27:57 PM
Quote from: Heiroglyph;774171
In similar frameworks, the color format is negotiated and most encoders/decoders would not support more than one or two color formats as needed by the type they (de)compress unless the author just wanted to do so.
Reggae features format negotiation as well. For example when we talk about RGB color formats, the only format which must be handled by filters, is ARGB32. However decoder can deliver (and encoder can request) any of {RGB24, ARGB32, BGR24, BGRA32, ABGR32}, decoder can also deliver LUT8 with palette. Reggae automatically inserts converter into the pipeline. Converter object is of either videopcm.decoder or videopcm.encoder class. They feature highly optimized conversions, including routines accelerated with AltiVec engine. Similar mechanism is implemented for audio formats. Additional formats may be added if needed.

A function in Reggae connecting two objects is tag based, so in the future format negotiation may be controlled by application.
Title: Re: Where are the weak points?
Post by: rzookol on October 07, 2014, 06:58:54 PM
For anybody interested:
http://brain.umcs.lublin.pl/~rzookol/download/reggae_example.lha
The archive contains iff deep decoder demuxer class sources
Please contact me if you have any question or you are going to write any decoder.
Title: Re: Where are the weak points?
Post by: Heiroglyph on October 07, 2014, 07:36:13 PM
Quote from: rzookol;774618
For anybody interested:
http://brain.umcs.lublin.pl/~rzookol/download/reggae_example.lha
The archive contains iff deep decoder demuxer class sources
Please contact me if you have any question or you are going to write any decoder.


Thanks, this is a great example!
Title: Re: Where are the weak points?
Post by: Thorham on October 07, 2014, 07:41:52 PM
Quote from: Heiroglyph;774171
JPEG should really have a YUV format or two added
You can't add YUV to JPEG, because YUV is an analog format. JPEG uses YCbCr.
Title: Re: Where are the weak points?
Post by: Heiroglyph on October 07, 2014, 08:08:08 PM
Quote from: Thorham;774621
You can't add YUV to JPEG, because YUV is an analog format. JPEG uses YCbCr.


You are technically correct, the best kind of correct!

The differences are very subtle though and unless you also flag for bt.709, bt.601, etc, you still won't know how to interpret it accurately.

If we get any one of the above, at least video would be feasible.
Title: Re: Where are the weak points?
Post by: rzookol on October 07, 2014, 08:47:40 PM
Quote from: Heiroglyph;774622
You are technically correct, the best kind of correct!

The differences are very subtle though and unless you also flag for bt.709, bt.601, etc, you still won't know how to interpret it accurately.

If we get any one of the above, at least video would be feasible.



Decoders still can output ARGB32 video, in fact this format is required for decoder output. Other common format can be selected using MMA_UseBestFormat  tag. In this mode, decoder try to decode image with nearest common format available. For example, for 8bit jpeg data it outputs normally ARGB32 but with this tag, user can ask decoder about output format for given image and process it directly as gray8.