| 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 useful 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) |
| ! |