diff options
author | Thomas Vander Stichele <thomas@apestaart.org> | 2005-06-09 12:03:04 +0000 |
---|---|---|
committer | Thomas Vander Stichele <thomas@apestaart.org> | 2005-06-09 12:03:04 +0000 |
commit | a6245000665b2d38805f1e7c00b0b83a5b63803c (patch) | |
tree | 21df4a3b48d842d5721b74c77a5c7f3aa56a36fe | |
parent | c903606ae4bf8c39b6230b22484a853e0827ad01 (diff) |
have a real TODO, move old TODO
Original commit message from CVS:
have a real TODO, move old TODO
-rw-r--r-- | TODO | 174 | ||||
-rw-r--r-- | docs/random/TODO-pre-0.9 | 170 |
2 files changed, 175 insertions, 169 deletions
@@ -1,170 +1,6 @@ -TODO: ------ +TODO +---- -short term core API stability ------------------------------ - -Changes that probably impact the API, carefull discussion (IRC) + design doc is required -before changes are accepted. - -target release ! description - ! - 0.4.1 ! expose and API to query the supported seek formats/flags on - (done) ! pads, somthing like an extra arg to gst_pad_set_convert_function - ! and gst_pad_set_event_function with some function to query the - ! flags and formats. more ideas in docs/random/wtay/query_events - ! (API: medium dificulty) - ! - 0.4.1 ! add event for segment playback/looping and seeking (docs/random/wtay/segments) - (done) ! (API: medium dificulty, plugins: HARD to very HARD) - ! - ? ! add event to adjust rate (reverse playback, slow motion, frame skipping) - ! (docs/random/wtay/rate_event) - ! (API: medium dificulty, plugins: HARD to very HARD) - ! - ? ! add method in the scheduler to set the entry point (frame stepping?) - ! (docs/random/wtay/scheduler_entry) - ! (API: moderatly EASY, scheduler implementation MEDIUM) - ! - 0.6.0 ! create a design doc for a timecache implementation, - (done) ! (docs/wtay/random/timecache) - ! (API: MEDIUM, needs lots of discussion, plugin implementation MEDIUM to HARD) - ! (done: implemented using GstIndex base class + subclasses) - ! - ? ! implement a QoS event and a policy for handling the event. - ! (API: kindof EASY, plugins MEDIUM to very HARD) - ! - 0.4.1 ! implement user defined GstFormat values, make a format factory etc.. - (done) ! (API: MEDIUM, plugins MEDIUM) - ! - ? ! strip the API to a bare bones minimal set of functions, leave the automatic - ! stuff to the app instead of forcing a policy in the core. - ! create a library with usefull higher level function for people who don't want - ! to deal with the lowlevel stuff. - ! (HARD, need to negotiate with people :)) - ! - ? ! use GMarkup to load/save objects, remove dependency on libxml2 - ! (MEDIUM) breaks API/ABI compatibility - ! - - -shortterm core feature enhancements ------------------------------------ - - 0.4.1 ! Implement PAD_DISABLED. This requires simple checks in the scheduler so that - ! it doesn't try to pull/push data from/to a disabled pad. - ! When an element goes to the PAUSED state, all of its pads should be disabled. - ! This should also work for ghostpads. - ! (API: MEDIUM to moderatly HARD, requires some scheduler understanding) - - -short term usability --------------------- - -Writing docs is NOT boring, you learn a lot, you get insight in stuff, you help a lot -of people, hey! you might even find YOUR book on a shelf in a bookstore!! - - - ? ! plugin writers guide - ! (we have almost nothing, so any start is welcomed) - ! (MEDIUM) - ! - ? ! app writers guide needs to cover common tips and tricks and HOWTOs - ! (MEDIUM) - - -short to midterm policy definition ----------------------------------- - -Policy definition is closely related to a HOWTO but sometimes needs some thinking. - - - ? ! document thread safety guidelines, what stuff needs locking in the app, what - ! is done in the core. - ! most of this stuff is in the heads of various people but needs to be written - ! down so that people get more insights into the design and vision of GStreamer. - ! (MEDIUM, some research and discussion needed) - ! - ? ! a step by step guide to the implementation of various events in a plugin, what can you - ! do, when is data passing forbidden etc.. - ! (MEDIUM, some research needed) - ! - ? ! figure out a policy for the NEW_MEDIA event - ! (MEDIUM to HARD) - ! - ? ! figure out how to better handle clock resync - ! (MEDIUM to HARD) - ! - - -midterm feature enhancement ---------------------------- - - 0.6.0 | Define and implement a syntax in gst_parse to handle filtered pad connections. - (done) | (MEDIUM) - | - ? | Figure out a way to set properties on schedulers (and bins?) from gst_parse. - | (MEDIUM) - | - ? | Make gst-inspect do inspection of plugins, schedulers, autopluggers, types. - | An idea would be to make -inspect output an XML representation of the objects - | and use XSLT to transform this into text, HTML, docbook, ... - | (MEDIUM to EASY) - | - - -midterm (longterm) optimisations --------------------------------- - -These optimisations can be done without changing the existing API. - - - (in progress) ! implement an optimal scheduler that uses chaining when possible - ! (HARD, requires detailed knowledge of element scheduling) - ! - ? ! alternatively optimisations to the current scheduler can be done such - ! as: do nothing when the pipeline structure (or chain) has not changed - ! (MEDIUM) - ! - ? ! GstQueue is a little mess. implement a better queue (lockfree?), refactor - ! queueing policy (max buffer, max time, levels etc..) - ! (MEDIUM to farily EASY) - - -longterm feature enhancements ------------------------------ - -Various features that are not critical yet. - - ? ! factory aliases. map a generic name like "videosink" to and actual - ! user configurable plugin (aasink, sdlsink, xvideosink, ...) - ! (MEDIUM) - ! - ? ! property proxy in compount elements. not sure if it's possible at all. - ! what with elements with the same property? - ! (MEDIUM, needs some thinking) - ! - ? ! Make _pad_select work for muxers - ! (MEDIUM to HARD) - - -needs consensus ---------------- - -Some stuff that needs to be figured out based on a pro/con comparison. - - ? ! can we decide on the fact that downstream events are traveling using the - ! scheduler? do we need to reevaluate that design decision? - ! (MEDIUM, needs pros vs cons document) - - -benchmarks ----------- - -Benchmarks are always good to get acceptance in a wider comunity or to identify performance -problems that need fixing. - - ? ! do a latency comparison with popular other frameworks, document GStreamer - ! overhead. - ! (MEDIUM to somewhat EASY) - ! +Thomas: +- figure out if gstgetbits can be removed; otherwise decide on plugin vs lib +- figure out if dataprotocol can be used lib-only; make it install as a lib diff --git a/docs/random/TODO-pre-0.9 b/docs/random/TODO-pre-0.9 new file mode 100644 index 0000000000..c65aa570ec --- /dev/null +++ b/docs/random/TODO-pre-0.9 @@ -0,0 +1,170 @@ +TODO: +----- + +short term core API stability +----------------------------- + +Changes that probably impact the API, carefull discussion (IRC) + design doc is required +before changes are accepted. + +target release ! description + ! + 0.4.1 ! expose and API to query the supported seek formats/flags on + (done) ! pads, somthing like an extra arg to gst_pad_set_convert_function + ! and gst_pad_set_event_function with some function to query the + ! flags and formats. more ideas in docs/random/wtay/query_events + ! (API: medium dificulty) + ! + 0.4.1 ! add event for segment playback/looping and seeking (docs/random/wtay/segments) + (done) ! (API: medium dificulty, plugins: HARD to very HARD) + ! + ? ! add event to adjust rate (reverse playback, slow motion, frame skipping) + ! (docs/random/wtay/rate_event) + ! (API: medium dificulty, plugins: HARD to very HARD) + ! + ? ! add method in the scheduler to set the entry point (frame stepping?) + ! (docs/random/wtay/scheduler_entry) + ! (API: moderatly EASY, scheduler implementation MEDIUM) + ! + 0.6.0 ! create a design doc for a timecache implementation, + (done) ! (docs/wtay/random/timecache) + ! (API: MEDIUM, needs lots of discussion, plugin implementation MEDIUM to HARD) + ! (done: implemented using GstIndex base class + subclasses) + ! + ? ! implement a QoS event and a policy for handling the event. + ! (API: kindof EASY, plugins MEDIUM to very HARD) + ! + 0.4.1 ! implement user defined GstFormat values, make a format factory etc.. + (done) ! (API: MEDIUM, plugins MEDIUM) + ! + ? ! strip the API to a bare bones minimal set of functions, leave the automatic + ! stuff to the app instead of forcing a policy in the core. + ! create a library with usefull higher level function for people who don't want + ! to deal with the lowlevel stuff. + ! (HARD, need to negotiate with people :)) + ! + ? ! use GMarkup to load/save objects, remove dependency on libxml2 + ! (MEDIUM) breaks API/ABI compatibility + ! + + +shortterm core feature enhancements +----------------------------------- + + 0.4.1 ! Implement PAD_DISABLED. This requires simple checks in the scheduler so that + ! it doesn't try to pull/push data from/to a disabled pad. + ! When an element goes to the PAUSED state, all of its pads should be disabled. + ! This should also work for ghostpads. + ! (API: MEDIUM to moderatly HARD, requires some scheduler understanding) + + +short term usability +-------------------- + +Writing docs is NOT boring, you learn a lot, you get insight in stuff, you help a lot +of people, hey! you might even find YOUR book on a shelf in a bookstore!! + + + ? ! plugin writers guide + ! (we have almost nothing, so any start is welcomed) + ! (MEDIUM) + ! + ? ! app writers guide needs to cover common tips and tricks and HOWTOs + ! (MEDIUM) + + +short to midterm policy definition +---------------------------------- + +Policy definition is closely related to a HOWTO but sometimes needs some thinking. + + + ? ! document thread safety guidelines, what stuff needs locking in the app, what + ! is done in the core. + ! most of this stuff is in the heads of various people but needs to be written + ! down so that people get more insights into the design and vision of GStreamer. + ! (MEDIUM, some research and discussion needed) + ! + ? ! a step by step guide to the implementation of various events in a plugin, what can you + ! do, when is data passing forbidden etc.. + ! (MEDIUM, some research needed) + ! + ? ! figure out a policy for the NEW_MEDIA event + ! (MEDIUM to HARD) + ! + ? ! figure out how to better handle clock resync + ! (MEDIUM to HARD) + ! + + +midterm feature enhancement +--------------------------- + + 0.6.0 | Define and implement a syntax in gst_parse to handle filtered pad connections. + (done) | (MEDIUM) + | + ? | Figure out a way to set properties on schedulers (and bins?) from gst_parse. + | (MEDIUM) + | + ? | Make gst-inspect do inspection of plugins, schedulers, autopluggers, types. + | An idea would be to make -inspect output an XML representation of the objects + | and use XSLT to transform this into text, HTML, docbook, ... + | (MEDIUM to EASY) + | + + +midterm (longterm) optimisations +-------------------------------- + +These optimisations can be done without changing the existing API. + + + (in progress) ! implement an optimal scheduler that uses chaining when possible + ! (HARD, requires detailed knowledge of element scheduling) + ! + ? ! alternatively optimisations to the current scheduler can be done such + ! as: do nothing when the pipeline structure (or chain) has not changed + ! (MEDIUM) + ! + ? ! GstQueue is a little mess. implement a better queue (lockfree?), refactor + ! queueing policy (max buffer, max time, levels etc..) + ! (MEDIUM to farily EASY) + + +longterm feature enhancements +----------------------------- + +Various features that are not critical yet. + + ? ! factory aliases. map a generic name like "videosink" to and actual + ! user configurable plugin (aasink, sdlsink, xvideosink, ...) + ! (MEDIUM) + ! + ? ! property proxy in compount elements. not sure if it's possible at all. + ! what with elements with the same property? + ! (MEDIUM, needs some thinking) + ! + ? ! Make _pad_select work for muxers + ! (MEDIUM to HARD) + + +needs consensus +--------------- + +Some stuff that needs to be figured out based on a pro/con comparison. + + ? ! can we decide on the fact that downstream events are traveling using the + ! scheduler? do we need to reevaluate that design decision? + ! (MEDIUM, needs pros vs cons document) + + +benchmarks +---------- + +Benchmarks are always good to get acceptance in a wider comunity or to identify performance +problems that need fixing. + + ? ! do a latency comparison with popular other frameworks, document GStreamer + ! overhead. + ! (MEDIUM to somewhat EASY) + ! |