[MPlayer-G2-dev] Rich's TODO

Arpi arpi at thot.banki.hu
Thu Jan 1 03:43:35 CET 2004


Hi,

pre-note: here is already 2004, so time to get back to g2 development :)

notes for http://brightrain.aerifal.cx/~dalias/vp-in-progress/TODO:

vo2-vp wrapper
==============
* remove and make vo drivers vp-native (?????)

NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO!!!

my No.1 goal making g2 was to keep vo driver as simple and minimal
as possible. they should not do more than knowing the underlaying driver
or hardware, and exporting the resource.
why?
- vo drivers will be written for many platforms, archs, drivers, we
  won't eb able to change them or even test them after some api change.
- if vo drivers implement complicated vp API, we'll end up having the
  same isses as g1 hasve: some vo drivers in some vf+vd combinations
  do flicker, corruption etc. nera impossible to debug them without having
  that architecture/card/driver.
- vo drivers will be mostly written other developers, wihtout vp knowledge,
  so to avoid broken api implementation (see g1) we should keep api as
  simple as we can.
- no need to duplicate same vp interface code in every vo driver, make a
  clever vp->vo wrapper.
- keep vo layer vp-idnependent, ie. usable without vp code (for other
  projects etc. i knwo it sounds silly now, but if more project will
  start use libvo2, it may be sooner-or-later the defacto standard
  replacing SDL etc... :))

i always vote for keeping the various layers independent, and add
wrappers between them. better for testing, and changing API of one wont
require us to patch many files of the other layers.
yes i know you hate wrappers, i also hate them, at least silly ones.

demuxers
========
* convert to use rate_d/rate_m based pts rather than 1/rate_d
already discussed, ok

* clean up nonsense pts flags
for example?

* pts==0 is used to indicate "not available", this is broken. change!
agree. i also found it broken, but it was too late then :)
anyway i'm open for idea how to pass 'broken' value in an 'int' variable?
(actually 'int' may be too limited for pts anyway)

* always seek to a point with known exact pts!
why? for raw streams, you simply cannot do that. for example .mp3

* remove resync_audio_stream
already discussed, i agree. it should even be done for g1 too.

* instead have seek be driven from vp/ap layer
huh?


A'rpi / Astral & ESP-team

--
Developer of MPlayer G2, the Movie Framework for all - http://www.MPlayerHQ.hu




More information about the MPlayer-G2-dev mailing list