[[BackLinksMenu]]

[[TicketQuery(summary=MEDIA_ENGINE_IMPL_COMMON_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]]



= Analysis =

== Overview ==

Sophie2 needs to support various media playback engines.  Document the various engines we can use so the other tasks can refer to this information.   Also we need to have a way to change the engine easily without changing much code, so build a factory to creating an engine and a module for the media engine factory.
  
== Task requirements ==

 * Document the various media engines we can use in Java, such as the JML
 * Write a module for media engines
  * Have extension points so an engine plugin can register itself
  * Have an api that can return an instance of current media engine class
  * Have an API for changing the default media engine
  * Add a debug menu
   * Add a "media engine" submenu, which is hierarchical and lists all registered media engines.  Choosing one will change the current default for new media loaded.

== Task result ==

The task result is documentation and code

== Implementation idea ==

 * Try to keep this simple for now; Being able to add/remove/list media engines will likely be sufficient

== Related ==

[wiki:MEDIA_ENGINE_IMPL_MAIN_R0]
[wiki:MEDIA_ENGINE_IMPL_ALTERNATIVE_R0]

== How to demo ==

 Show the media engine menu, or if that didn't get done, show the code and documentation that shows how to use this module

= Design =

= Implementation =

= Testing =

= Comments =


common research and library
how to change the engine