4 short term core API stability
5 -----------------------------
7 Changes that probably impact the API, carefull discussion (IRC) + design doc is required
8 before changes are accepted.
10 target release ! description
12 0.4.1 ! expose and API to query the supported seek formats/flags on
13 (done) ! pads, somthing like an extra arg to gst_pad_set_convert_function
14 ! and gst_pad_set_event_function with some function to query the
15 ! flags and formats. more ideas in docs/random/wtay/query_events
16 ! (API: medium dificulty)
18 0.4.1 ! add event for segment playback/looping and seeking (docs/random/wtay/segments)
19 (done) ! (API: medium dificulty, plugins: HARD to very HARD)
21 ? ! add event to adjust rate (reverse playback, slow motion, frame skipping)
22 ! (docs/random/wtay/rate_event)
23 ! (API: medium dificulty, plugins: HARD to very HARD)
25 ? ! add method in the scheduler to set the entry point (frame stepping?)
26 ! (docs/random/wtay/scheduler_entry)
27 ! (API: moderatly EASY, scheduler implementation MEDIUM)
29 ? ! create a design doc for a timecache implementation,
30 ! (docs/wtay/random/timecache)
31 ! (API: MEDIUM, needs lots of discussion, plugin implementation MEDIUM to HARD)
33 ? ! implement a QoS event and a policy for handling the event.
34 ! (API: kindof EASY, plugins MEDIUM to very HARD)
36 0.4.1 ! implement user defined GstFormat values, make a format factory etc..
37 (done) ! (API: MEDIUM, plugins MEDIUM)
39 ? ! strip the API to a bare bones minimal set of functions, leave the automatic
40 ! stuff to the app instead of forcing a policy in the core.
41 ! create a library with usefull higher level function for people who don't want
42 ! to deal with the lowlevel stuff.
43 ! (HARD, need to negotiate with people :))
46 shortterm core feature enhancements
47 -----------------------------------
49 0.4.1 ! Implement PAD_DISABLED. This requires simple checks in the scheduler so that
50 ! it doesn't try to pull/push data from/to a disabled pad.
51 ! When an element goes to the PAUSED state, all of its pads should be disabled.
52 ! This should also work for ghostpads.
53 ! (API: MEDIUM to moderatly HARD, requires some scheduler understanding)
59 Writing docs is NOT boring, you learn a lot, you get insight in stuff, you help a lot
60 of people, hey! you might even find YOUR book on a shelf in a bookstore!!
63 ? ! plugin writers guide
64 ! (we have almost nothing, so any start is welcomed)
67 ? ! app writers guide needs to cover common tips and tricks and HOWTOs
71 short to midterm policy definition
72 ----------------------------------
74 Policy definition is closely related to a HOWTO but sometimes needs some thinking.
77 ? ! document thread safety guidelines, what stuff needs locking in the app, what
78 ! is done in the core.
79 ! most of this stuff is in the heads of various people but needs to be written
80 ! down so that people get more insights into the design and vision of GStreamer.
81 ! (MEDIUM, some research and discussion needed)
83 ? ! a step by step guide to the implementation of various events in a plugin, what can you
84 ! do, when is data passing forbidden etc..
85 ! (MEDIUM, some research needed)
87 ? ! figure out a policy for the NEW_MEDIA event
91 midterm (longterm) optimisations
92 --------------------------------
94 These optimisations can be done without changing the existing API.
97 ? ! implement an optimal scheduler that uses chaining when possible
98 ! (HARD, requires detailed knowledge of element scheduling)
100 ? ! alternatively optimisations to the current scheduler can be done such
101 ! as: do nothing when the pipeline structure (or chain) has not changed
104 ? ! GstQueue is a little mess. implement a better queue (lockfree?), refactor
105 ! queueing policy (max buffer, max time, levels etc..)
106 ! (MEDIUM to farily EASY)
109 longterm feature enhancements
110 -----------------------------
112 Various features that are not critical yet.
114 ? ! factory aliases. map a generic name like "videosink" to and actual
115 ! user configurable plugin (aasink, sdlsink, xvideosink, ...)
118 ? ! property proxy in compount elements. not sure if it's possible at all.
119 ! what with elements with the same property?
120 ! (MEDIUM, needs some thinking)
122 ? ! Make _pad_select work for muxers
129 Some stuff that needs to be figured out based on a pro/con comparison.
131 ? ! can we decide on the fact that downstream events are traveling using the
132 ! scheduler? do we need to reevaluate that design decision?
133 ! (MEDIUM, needs pros vs cons document)
139 Benchmarks are always good to get acceptance in a wider comunity or to identify performance
140 problems that need fixing.
142 ? ! do a latency comparison with popular other frameworks, document GStreamer
144 ! (MEDIUM to somewhat EASY)