[MPlayer-dev-eng] life after the 0.90 release...

Arpi arpi at thot.banki.hu
Mon May 27 16:33:56 CEST 2002


Hi,

I think we should/will release 0.90pre5 at this week, and if no new fatal
bug is found, it will be the final 0.90 release.

Anyway, several ideas and requests popped up nowdays here and the devel irc
channel for the further development, between 0.90 and 1.0.
So, summarizing them:

1. solve the i18n problem. [???]

the old method (MSGTR_* defines in help_mp-XX.h files) was a quick hack, it
is unmaintainable, unless we add some #ifdef to english version and include
it always after the translated file. it has a big disadvantage: language
change is impossible at runtime, it's a big minus for binary packagers.)

the new idea was using gnu gettext().
advantages:
- there are various tools to help generating & translating .po files
- runtime language change
disadvantages:
- it seems it doesn't integrate well with our mp_msg() stuff
- it will include all messages (including debug/verbose stuff, and
non-translatable messages like '=============' and '%d %d A-V: %f')
maybe we should follow the standard way, by using the _("...") format,
and changing the mp_msg() lines over the source instead of hacking gettext
support into mp_msg implementation.

the third way is developing something own, imho it isn't hard to implement
gettext-like functionality, and so we could avoid the dependency on gettext
maybe we could change MSGTR_* constants to be numerical ids, indices inside
a big string array, an array of translated messages.
and the help_* files could fill up these arrays with the translated
messages, using macros, something like:
DEF_TR(MSGTR_CantOpenFile,"Nem birom megnyitni ezt a fajlt")
and the macro compiles to something like:
msg_array[MSGTR_CantOpenFile]="Nem birom megnyitni ezt a fajlt";
each help_* file define a function, like set_messages_hu(); and it just fill
up this array by translated stuff.
it makes possible to do partial translation, fast, and runtime change is
also possible.

2. cleanup libvo  [Pontscho, ???]

- we should finally review query_format() answers, most of the drivers still
don't set flags they should
- all vo drivers should follow the libvo.txt api std, especially allowing
zero, 1 or more than one calls to config() between init/uninit.
- add mpi (draw_image) support to main vo drivers, remove old
draw_slice/draw_frame
- remove redundant code from vo drivers, like osd (only where the same
functionality can be reached using -vop expand), sw scaler etc.
- cleanup X11 stuff - move more common code to x11_common, like window
opening.
- better interfacing between libvo and gui - the gui shouldn't control the
vo window directly, but via control() calls. i mean fullscreen etc here.

3. move audio encoders & filters to libmpcodecs [al3x, Anders, me]

4. demuxer api changes, transfer demuxer modules to plugins [me, albeu?]

- the current switch(){} method should be replaced by libmpcodecs-like
  plugin api.
- mpeg, avi and asf demuxers needs bugfixing or rather a rewrite...
- add support for demuxing more than one audio/video/sub streams,
  required for mencoder to convert multilanguage etc files
- design & implement common index handler code - so index-based formats
  could be handled easier (demuxer code is simpler, most of the work
  could be done by the common index code). it could handle runtime
  index building: backward seeking using index and forward seeking
  by runtime indexing. xine just got such feature for avi files...
- invent some intelligent all-in-one mpeg demuxer, to handle mpeg
  layer 1-2-3 audio, mpeg 1/2/4 es, mpeg/vob ps, pes, ts packets.
  the mpeg es demuxer could be removed from video.c then.
  it is required to solve the mpeg format detection problems currently
  exists.
  it requires 3 levels of buffering: ts, ps/pes and es.
  the incoming data could be directed to either of the 3 buffers,
  depending on the startcode, and moved one layer up when the packet
  is completed.
- better support for dvdnav

5. implement muxer layer [al3x]

- design new api, convert aviwrite to use it
- write mpeg ps muxer
- write quicktime muxer

6. documentation [gabu,diego,egger?]

- re-structure it to be better
- convert it to SGML

7. libmpcodecs [me, alex]

- finish vfw encoding support
- update binary codecs interfaces (xanim, win32) to use mpi

8. sub/osd fonts

- support for libft2-supported fonts (ttf,etc)
  and generate font table+bitmap at mplayer startup
- color subtitles?
- subtitle bitmap cacheing?

Comments? :)


A'rpi / Astral & ESP-team

--
Developer of MPlayer, the Movie Player for Linux - http://www.MPlayerHQ.hu



More information about the MPlayer-dev-eng mailing list