[FFmpeg-devel] GSoC with FFMpeg waht a combination!
Robert Swain
robert.swain
Fri Mar 21 20:43:47 CET 2008
On 21/03/2008, Michael Niedermayer <michaelni at gmx.at> wrote:
> On Fri, Mar 21, 2008 at 05:28:23PM +0000, Robert Swain wrote:
> > On 21/03/2008, Michael Niedermayer <michaelni at gmx.at> wrote:
> > > On Fri, Mar 21, 2008 at 04:39:30PM +0200, Jason (spot) Brower wrote:
> > > Now the requirements for a GUI would be IMO
> > > * supports all functions of the command line tool (ffmpeg for converter,
> > > ffplay for player), theres no need to do both ffplay and ffmpeg in the
> > > same project though.
> >
> > I think having fields in the GUI for pasting command line options has
> > some use for maintainability. Interfacing directly with the libs is
> > probably preferable but I'm wary of such a GUI not being maintained
> > and subsequently having less probability of success than one that
> > interfaces with the CLI. Unless we invent some way that it can
> > maintain itself by querying the libraries for lists of available
> > codecs/presets or whatever.
>
> No matter if it uses the libs or CLI it must querry them (see AVOption)
> and present this reasonably (GUI style) to the user.
I thought it might be easier to query for available codecs/options
from the libraries than from the CLI. If it's using the CLI, how does
it use AVOption without also using the libs? But however it will work,
I think it would be good if when a new encoder is added, for example,
it shows up in whatever codec list might be in the UI.
> > Why do we need a GUI for ffplay? :)
>
> Because it would look cool :)
:)
> And besides it would be quite nice to be able to change AVFilters/PP/lowres/
> idct/... via a GUI menu. Sure we could implement it by using the keyboard but
> the primary failure of such "1 key combo for each" interfaces is that noone
> will ever remember them, a simple GUI menu is much more efficient for rarely
> used things, no timeconsuming RTFM/RTFS to find the keycombo.
That's a good point. If nothing else, as a testbed for filters in
libavfi being able to alter them and their parameters while playing
might be nice.
> > I've always considered it merely a
> > test tool to check codecs are decoding stuff properly as opposed to
> > considering it as a serious option for an every day player.
>
> What is it missing for an every day player? Ive used it >50% of the time
> lately to watch movies.
Features. :) I do like to have a time readout somewhere telling me how
long the video is and at what position I am watching. I don't know, I
should think about this a bit more and make a list.
> > > * works on win32 and X11
> >
> > Working in X11 on OS X isn't good enough in my opinion. Something
> > somewhat native (in the sense of not needing X11 running to run
> > itself) would be hugely preferable.
>
> yes
I'm glad you agree.
> > > * fully skinable to completely customize its look
> >
> > Why do we care about skins? I'm not personally interested skins at
> > all. I'd rather mandate that the GUI be simple, well-arranged and
> > usable.
>
> Skins dont contradict these goals.
True, but I think the other points are more important. So maybe
flexibility of a skinnable UI plus a default skin focusing on those
points would be a good approach.
> > > Ideally a GUI should be written to be independant of the toolkit, and i
> > > would lean toward directly using X11 with no toolkit.
> >
> > The problem with this is losing the capability of the toolkit to serve
> > a GUI for various platforms while maintaining only one set of code. If
> > you work directly with X11 then it's tied to X11 and won't work with
> > anything else. I'd consider this a bad move when we're so adamant
> > about portability for the core code... We could work directly with
> > platform display server (or whatever correct terminology is) APIs but
> > then we'd have to maintain multiple GUI code bases which is the
> > current Firefox route afaik. Do we have enough developers dedicated to
> > GUI development to do that? I doubt it.
>
> My idea was that the interface code between the GUI and the
> "platform display server" would be no more than a simple
> open/close window
> put rectangle of pixels
OK. By platform display server, I meant whatever X11 and its equivalents are.
> The code this would need per "platform display server" would be very
> small.
I suppose it would.
> The API above might seem very limiting at first but actually it is not.
It's a bit like starting with asm to write a GUI. :)
> Each window would be a image supplied by the skin. The skin would also
> supply information of areas for each button, and "clicked" images for them.
I suppose this can be done well. Winamp/XMMS have been successful with
skinnable GUIs. It still seems a bit strange to me to need a skinnable
GUI for a transcoder, but as the code would (could) be shared with any
sort of FFplay GUI, it would be more like writing our own little
toolkit. Let's reinvent the wheel again... ;)
> > > And about using ff* vs. using the libs. Later would be redundant work IMHO
> > > using the existing command line tools and changing them so they can be
> > > properly integrated with a GUI seems simpler to me.
> >
> > I'm not sure.
>
> Reimplementing the whole ffmpeg and ffplay is completely idiotic. The only
> thing one needs is some communication between the GUI and ffmpeg.
That was my main consideration against using the libs.
Rob
More information about the ffmpeg-devel
mailing list