mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-12 10:25:33 +00:00
a35882df1f
Original commit message from CVS: * check/gst/gstsegment.c: (GST_START_TEST): * docs/design/part-TODO.txt: * gst/base/gstbasesink.c: (gst_base_sink_handle_object), (gst_base_sink_event), (gst_base_sink_do_sync), (gst_base_sink_activate_pull), (gst_base_sink_get_position), (gst_base_sink_query), (gst_base_sink_change_state): * gst/base/gstbasesink.h: * gst/base/gstbasesrc.c: (gst_base_src_init), (gst_base_src_query), (gst_base_src_default_newsegment), (gst_base_src_configure_segment), (gst_base_src_do_seek), (gst_base_src_get_range), (gst_base_src_loop), (gst_base_src_change_state): * gst/base/gstbasesrc.h: * gst/base/gstbasetransform.c: (gst_base_transform_prepare_output_buf), (gst_base_transform_event), (gst_base_transform_change_state): * gst/base/gstbasetransform.h: * gst/base/gstcollectpads.c: (gst_collect_pads_add_pad), (gst_collect_pads_event): * gst/base/gstcollectpads.h: * gst/elements/gstfakesrc.c: (gst_fake_src_init), (gst_fake_src_create): * gst/elements/gstfakesrc.h: * gst/elements/gstidentity.c: (gst_identity_transform_ip): * gst/gstsegment.c: (gst_segment_init), (gst_segment_set_duration), (gst_segment_set_last_stop), (gst_segment_set_seek), (gst_segment_set_newsegment), (gst_segment_to_stream_time), (gst_segment_to_running_time), (gst_segment_clip): * gst/gstsegment.h: More segment updates, replace code in plugins with segment helper functions.
50 lines
1.7 KiB
Text
50 lines
1.7 KiB
Text
API/ABI
|
|
-------
|
|
|
|
- implement return values from events in addition to the gboolean. This should be
|
|
done by making the event contain a GstStructure with input/output values, similar
|
|
to GstQuery. A typical use case is performing a non-accurate seek to a keyframe,
|
|
after the seek you want to get the new stream time that will actually be used to
|
|
update the slider bar.
|
|
|
|
- convert framerate to GstFraction in GstCaps.
|
|
|
|
- make it possible to seek on other formats than bytes in basesrc.
|
|
|
|
- GstEvent, GstMessage register like GstFormat or GstQuery.
|
|
|
|
- unblocking while seeking. gst_element_flush_pads (GstElement, gboolean);
|
|
|
|
- query POSITION/DURATION return accuracy. Just a flag or accuracy percentage.
|
|
|
|
- add some sort of time/frame stepping functionality, either with a flag on the seek
|
|
event or some new seek event type. The idea would be to operate on the current
|
|
playback position instead of the current configured segment when doing the seek.
|
|
Idea is that frame stepping forwards can be done in the sinks, ie, just dropping
|
|
N frames/time, sending more complicated queries upstream which can ideally handle
|
|
those cases more efficiently too.
|
|
|
|
|
|
IMPLEMENTATION
|
|
--------------
|
|
|
|
- implement latency calculation for live sources.
|
|
|
|
- implement master/slave clocks.
|
|
|
|
- implement QOS.
|
|
|
|
- implement BUFFERSIZE.
|
|
|
|
|
|
DESIGN
|
|
------
|
|
|
|
- unlinking pads in the PAUSED state needs to make sure the stream thread is not
|
|
executing code. Can this be done with a flush to unlock all downstream chain
|
|
functions? Do we do this automatically or let the app handle this?
|
|
|
|
- when a pipeline with a live source goes to PAUSED again, a sample is prerolled
|
|
in the sinks. This sample should be discarded, possibly with a flush event
|
|
started from the source.
|
|
|