releasing 0.9.7
[platform/upstream/gstreamer.git] / NEWS
1 This is GStreamer 0.9.7, "My Dog Has No Nose".
2
3 Changes from the 0.8 series to 0.10 series:
4
5       * Refcounting and API revised for thread safety, see rules in
6         docs/design/part-MT-refcounting.txt
7
8       * Scheduling is now done by the elements, they start/stop
9         processing threads themselves. This removes the need for 
10         a separate scheduler.
11
12       * State changes now happen from sink to source. This makes sure
13         that downstream elements are ready to process data when upstream
14         starts producing.
15
16       * EOS/ERROR/... does not change the state of elements anymore. This
17         means that when the application sets the state on an element, it
18         remains in this state.
19
20       * GMainLoop integration. Information on the state of the pipeline
21         is now received in the mainloop via the GstBus.
22
23       * Events move separate from the datastream, this allows for both
24         in and out of sync delivery of events.
25
26       * Generic _pull() replaced by _pull_region() so that random access
27         can be made faster.
28
29       * data passing happens from PAUSED, called the preroll phase. In this
30         state no data is rendered but it is queued in the sinks.
31
32       * negotiation simplified. Caps are now attached to buffers and travel
33         along with the datastream. 
34
35       * GstBuffer is now subclassable.
36
37       * Ghostpads now look and feel like real pads.
38
39       * New Seeking/flushing policy.
40
41       * Addition of base classes and helper functions in the core to abstract
42         away the harder parts of plugin development.
43
44 Changes since 0.9.6:
45     
46       * bumped major/minor to 0.10
47       * API cleanup
48       * PluginFeature and TypeFind leak fixes
49       * cleaned up source tree
50       * added plugin documentation for core elements
51       * fixes for stripped core
52
53 Bugs fixed since 0.9.6:
54     
55       * 320529 : [API] gst_event_new_segment mentions " stream_time " as an ...
56       * 321917 : quicktime with two video tracks and extra foo, makes tote...
57       * 322257 : Fix gstnet library name
58       * 322427 : gst-compprep aborts with 'double free or corruption'
59       * 322429 : Filesink seeking problem
60       * 322626 : Strings in gst-launch.c adn gstdebug.c are horrid
61       * 322708 : gst_plugin_load_file leaks a reference to a GstPlugin
62       * 322751 : gst_ghost_pad_get_target borks on pads without target
63       * 322842 : GStreamer-CRITICAL in GstBaseSink and GstBaseTransform
64
65 Changes since 0.9.5:
66     
67       * API changes and clean-up
68       * Extensive documentation updates
69       * remove GLib 2.4 compatibility
70       * added clock selection
71       * added network clocking
72       * added fd:// URI handler
73       * added more fraction functionality
74
75 Bugs fixed since 0.9.5:
76     
77       * 143472 : [api] gst_tag_list_foreach() takes a non-const GstTagList*
78       * 156633 : [API] don't use same API for arrays as for normal lists
79       * 164168 : circular pipeline fails to negotiate
80       * 165650 : [API] gst_value_deserialize doesn't work correctly for NU...
81       * 168438 : [API] GstIndexFilter doesn't receive user_data
82       * 168494 : [API] gst_index_add_object() does nothing
83       * 305291 : Obnoxious bug-filing request
84       * 311489 : Possible gstghostpad locking problems
85       * 319178 : [API] finish filler events and support them in GstCollect...
86       * 319388 : 0.9 API changes tracker
87       * 319389 : state change updates obsolete some functions
88       * 319392 : GstEventType is not bindings-friendly
89       * 319395 : Macro name/visibility API bugs
90       * 319940 : Use GLIB macros for GCC extensions
91       * 320060 : add a CORE error category for missing ELEMENTS/PLUGINS
92       * 320097 : GST_BUFFER_FLAG_ORIGINAL should die
93       * 320113 : [API] duration message changes
94       * 320299 : gst_pad_send_event should take stream lock for serialized...
95       * 320324 : [API] GST_FOURCC_FORMAT should drop leading '%'
96       * 320423 : [API] padding for GstCollectData
97       * 320766 : [API] collect pads API changes
98       * 321061 : GstURI not used
99       * 321235 : [API] GST_PAD_IS_USABLE should be removed
100       * 321386 : [SEGFAULT] basetransform when doing reverse caps negotiation
101       * 321452 : GstPad's " template " property is b0rked
102       * 321528 : capsfilter: assertion `caps != NULL' failed
103       * 321595 : GstBin doesn't clean the message queue when changing stat...
104       * 321638 : Don't use // style comments in headers
105       * 321648 : Wrong type check in gst_message_parse_clock_lost
106       * 321710 : GstClock resolution functions should take a GstClockTime
107       * 321712 : GstClock adjust function changes
108       * 321875 : gst_plugin_check_file disappeared
109       * 321950 : gst_registry_scan_paths lacks implementation
110       * 321962 : [easyfix] gst_value_is_fixed uses gst_value_list_* on GST...
111       * 322027 : [API] Rename gst_caps_structure_fixate_* to gst_structure...
112       * 322034 : Elements should be updated not to take the stream lock in...
113       * 322069 : Names of GstTagSetter methods should be more descriptive
114       * 322134 : API master/slave clocks
115       * 322139 : our elements are confused about GEnumValue and which is t...
116   
117 Changes since 0.9.4:
118     
119       * gst_bus_poll and signal watch now see the same messages
120       * clock sync in BaseSrc class
121       * API documentation updates
122       * Bus reworked; signal API added
123
124 Bugs fixed since 0.9.4:
125     
126       * 317341 : after linking ghost pads, one target pad does not have a ...
127       * 320774 : basesrc commit broke typefinding
128
129 Changes since 0.9.3:
130
131       * state lock redefined
132       * Extensive documentation updates
133       * BaseTransform reworked
134       * Bus reworked; signal API added
135
136 Bugs fixed since 0.9.3:
137
138       * 111146 : new GstThread fails on pipeline with errors
139       * 169772 : [PATCH] GOption command-line parsing
140       * 170777 : use GST_TYPE_DATE for GST_TAG_DATE
141       * 315050 : [API] consider using GstClockTime instead of GTimeVal in ...
142       * 315126 : filesrc + forced caps should be possible
143       * 315383 : gst-launch shouldn't run broken pipelines
144       * 317041 : GstObject flags should be made real flags
145       * 318447 : gst_bin_iterate_sorted: Invalid call to gst_iterator_new
146
147 Changes since 0.9.2:
148
149       * gst-register has been removed
150       * Extensive documentation updates
151       * BaseTransform reworked
152       * Bus reworked; signal API added
153
154 Bugs fixed since 0.9.2:
155
156       * 102980 : support incremental gst-register/compprep updates
157       * 313897 : [0.9] registry rewrite
158       * 314710 : gst_buffer_create_sub doesn't copy the GST_BUFFER_FLAGS
159       * 315895 : gst_pad_query_convert src_val check
160       * 316155 : MinGW compilation: glib-mkenums root path subtitution pro...
161       * 316157 : MinGW compilation: Plugin exports
162
163 This is GStreamer 0.9.2, "South".
164
165 Bugs fixed since 0.9.1:
166
167       * 121015 : [api] gst_clock_entry_new() seems broken
168       * 134227 : [api] gst_clock_id_wait_async, wrong return code for defa...
169       * 142209 : [build] Large file support broken
170       * 154785 : Clock does not run if audio stream lacks data for a short...
171       * 305256 : [API] Change gst_element_seek to not mix enum/flags types
172       * 309253 : GST_DEBUG_FUNCPTR macro does illegal casting from functio...
173       * 311004 : ghostpad bugginess
174       * 311009 : valgrind shows undesired messages
175       * 311848 : Renegotiation broken
176       * 314708 : filesrc doesn't set GST_BUFFER_FLAG_READONLY on mmaped bu...