Proposal for KDE media interface

Morten Hustveit morten at
Wed Aug 6 21:44:03 BST 2003

On Wednesday 06 August 2003 19:04, Charles Samuels wrote:
> You misunderstand, you want it -possible- to have specific-purpose code for
> DVD, but you also want it -possible- to have specific-purpose code for
> Flash. The only real difference is how you don't use YUV in flash.

I don't think it would be very hard to use the extension function for this 
purpose.  Can you think of any functionality needed beyond the following?

  MouseClickEvent -- int x, int y, int button
  KeyEvent -- int keyNum
  AudioStreamNames -- QStringList* streamNames
  SetAudioStream -- QString* streamName
  TextStreamNames -- QStringList* streamNames
  SetTextStream -- QString* streamName
  AngleCount -- void
  SetAngle -- int angle
  SetZoom -- int zoom

All these can be added as extensions.  The interface for using extensions is 
rather clean (i.e. only slightly worse than normal methods), in my humble 
opinion.  Example:

  media->extension(AudioStreamNames, &streamNames);
  media->extension(SetAngle, 2);

rather than

  streamNames = media->audioStreamNames();

Because of this I think extensions should be used for all features that are 
very format-specific.  Any video related function not in an extension should 
be implemented by all decoders (except they might be write or read only).

Also: nothing prevents a backend plugin from implementing the whole pipeline.

More information about the kde-multimedia mailing list