Wim Taymans
093574053f
basesink: copy last_sample on DRAIN
...
Make sure we don't hold a ref to a buffer from before the DRAIN query by
making a copy of the last_buffer.
2014-03-24 16:34:27 +01:00
Sebastian Dröge
ba943a82c0
basesink: Update start time when we lose our state
...
Otherwise we report not the correct position while the state is lost.
2014-03-18 18:11:15 +01:00
Sebastian Dröge
f7b71d3007
basesink: Don't clip the reported position in PAUSED to after the last buffer end timestamp
...
Otherwise we jump forward when pausing, and go backwards a bit again
when resuming playback.
2014-03-18 16:48:52 +01:00
Sebastian Rasmussen
53ae1b2c9c
docs: Fix typos in function/object descriptions
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=720029
2013-12-07 17:11:12 +00:00
Sebastian Rasmussen
e8ecf3c407
Fix some typos in code comments and debug messages
...
https://bugzilla.gnome.org/show_bug.cgi?id=720029
2013-12-07 17:09:39 +00:00
Jan Schmidt
5db5fc4227
basesink: Add debug into gst_base_sink_default_query() for accept_caps
2013-11-26 02:20:14 +11:00
Tim-Philipp Müller
9f669e5ea5
docs: cosmetic since marker fixes
2013-11-16 16:09:40 +00:00
Tim-Philipp Müller
3057001622
basesink: demote log message, don't spam INFO level when handling buffer lists
2013-08-29 11:07:38 +01:00
Sebastian Dröge
ef8455d395
base: Fix handling of SEGMENT query
...
The values should be in stream-time, and start/stop should not
be swapped for negative rates.
2013-07-29 12:10:45 +02:00
Sebastian Dröge
bfb6844399
basesink: Don't shadow variables that are set inside our scope and then used outside our scope
...
Fixes uninitialized use of these variables.
2013-07-24 11:21:27 +02:00
Sebastian Dröge
0a41beaa56
basesink: Print some debug output if a stream-start event without group-id arrives
...
Ideally all elements would implement handling of that to get proper
stream-start message handling and other things.
2013-07-23 18:53:44 +02:00
Sebastian Dröge
6363216e43
base: Use new group-id field in stream-start event and message
2013-07-22 15:30:10 +02:00
Wim Taymans
124b8e38af
basesink: call state change in all cases
...
When we asynchronously go from READY to PLAYING, also call the
state change function so that subclasses can update their state for PLAYING.
Because the PREROLL lock is not recursive, we can't make this without
races and we must assume for now that the subclass can handle concurrent calls
to PAUSED->PLAYING and PLAYING->PAUSED. We can make this assumption because not
many elements actually do something in those state changes and the ones that
did would be broken even more without this change.
https://bugzilla.gnome.org/show_bug.cgi?id=702282
2013-06-17 10:36:34 +02:00
Wim Taymans
cf4334fbfb
basesink: improve position reporting without clock
...
When no base time or when sync is disabled, use the same logic as
in paused to report position. The logic in PLAYING assumes we use the
clock.
2013-05-30 06:51:24 +02:00
Sebastian Dröge
86b4e1841e
basesink: Don't set last_render_time if we're checking for a late buffer before ::prepare()
...
This makes sure that at least one buffer per second is rendered if buffers
are dropped before ::prepare. Without this change, at least one buffer per
second wouldn't be too late before ::prepare anymore but would be dropped
before ::render because of last_render_time being set before ::prepare
already.
2013-04-19 10:57:01 +02:00
Josep Torra
3c9dfaea38
basesink: fixes compiler warning
...
gstbasesink.c: In function 'gst_base_sink_chain_unlocked':
gstbasesink.c:3204: warning: 'ret' may be used uninitialized in this function
2013-03-30 10:24:27 +01:00
Tim-Philipp Müller
f40aa2c4ad
basesink: fix use of uninitialized variable
...
Running suite(s): GstBaseSink
==22023== Conditional jump or move depends on uninitialised value(s)
==22023== at 0x505FFCE: gst_base_sink_get_sync_times (gstbasesink.c:1936)
==22023== by 0x5068C80: gst_base_sink_do_sync (gstbasesink.c:2379)
==22023== by 0x506BCD2: gst_base_sink_default_wait_event (gstbasesink.c:2903)
==22023== by 0x50633A4: gst_base_sink_default_event (gstbasesink.c:2918)
==22023== by 0x6F5C216: gst_fake_sink_event (gstfakesink.c:383)
==22023== by 0x505F164: gst_base_sink_event (gstbasesink.c:3108)
==22023== by 0x52FA090: gst_pad_send_event_unchecked (gstpad.c:4822)
==22023== by 0x5303756: gst_pad_send_event (gstpad.c:4984)
==22023== by 0x40165B: basesink_test_gap (basesink.c:148)
2013-03-03 16:03:42 +00:00
Stefan Sauer
82f7bdd7bb
seeking: add more logging for seeking
...
Especially add logging to error code paths.
2013-02-27 22:17:17 +01:00
Wim Taymans
2ea32f3ab5
basesink: handle sync of EOS after item without duration
...
After a buffer or GAP without duration, an EOS event should be rendered
immediately instead of waiting for the end of the segment.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692868
2013-02-05 17:22:37 +01:00
Sebastian Dröge
925bdaa836
basesink: Initialize uninitialized variable
2013-01-03 10:17:11 +01:00
Sebastian Dröge
c859a1719c
basesink: Check if buffers are too late before calling prepare/prepare_list
...
https://bugzilla.gnome.org/show_bug.cgi?id=690936
2013-01-01 10:48:56 +01:00
Wim Taymans
fac7eb0a50
NEWSEGMENT -> SEGMENT
2012-12-14 15:24:30 +01:00
Wim Taymans
ffd64becb1
basesink: add some debug
2012-11-20 16:23:56 +01:00
Wim Taymans
1471489104
basesink: reset START_TIME when needed
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=685870
2012-11-20 16:23:56 +01:00
Wim Taymans
d8413cd0a2
basesink: add simple rate control
...
Add a max-bitrate property that will slightly delay rendering of buffers if it
would exceed the maximum defined bitrate. This can be used to do
rate control on network sinks, for example.
API: GstBaseSink::max-bitrate
API: gst_base_sink_set_max_bitrate()
API: gst_base_sink_get_max_bitrate()
2012-11-09 17:01:23 +01:00
Tim-Philipp Müller
666c8c11c6
Fix FSF address
...
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 20:44:48 +00:00
Tim-Philipp Müller
d13ba1a304
docs: fix up basesrc/basesink docs formatting
2012-09-26 23:32:35 +01:00
Wim Taymans
c1b31eaa4c
update docs for 1.0 API
2012-09-26 17:11:05 +02:00
Wim Taymans
79ae0b8445
docs: fix basesink docs
2012-09-25 14:45:15 +02:00
Wim Taymans
42e85953c8
basesink: wait_eos -> wait_event
...
Fix a FIXME. Now we can also pass the GAP event to the subclass.
2012-09-04 12:13:11 +02:00
Jan Schmidt
888d9aa4d3
basesink: Make GAP events actually trigger preroll
...
Slightly hacky approach needing refinement
2012-08-31 11:31:45 -07:00
Wim Taymans
f05b0e222f
Update for new seeking variable name
...
When seeking, the start value and type are now called start and start_type.
2012-07-27 15:24:52 +02:00
Wim Taymans
5360ba56f7
basesink: handle -1 step amounts
...
Define a 0 and -1 step amount. They used to almost do the same thing but now, 0
cancels/stops the current step and -1 keeps on stepping until the end of the
segment.
See https://bugzilla.gnome.org/show_bug.cgi?id=679378
2012-07-18 17:49:32 +02:00
Wim Taymans
3371f391f6
basesink: fix debug string
2012-07-17 12:40:54 +02:00
Wim Taymans
4c42b6720d
basesink: handle step end correctly
...
when we have a new step event with a -1 amount, make sure that we follow the
regular code path so that the stop_end handler is called as usual. This takes
care of flushing the buffer in case of a flushing step and also posts a step end
message.
See https://bugzilla.gnome.org/show_bug.cgi?id=679378
2012-07-11 15:35:57 +02:00
Edward Hervey
d3ffa82639
Remove 0.10-related documentation and "Since" markers
2012-07-10 12:03:27 +02:00
Tim-Philipp Müller
c51a2c1ddf
basesrc, basesink, baseparse, typefind: use GST_SEGMENT_FLAG with segment flags
2012-07-09 21:51:07 +01:00
Edward Hervey
e1f7c08f65
basesink: Post a STREAM_START message when we see the event
2012-07-09 20:31:45 +02:00
Sebastian Dröge
aa2309e54a
event: Add format and position to the segment-done event
2012-07-05 13:04:31 +02:00
Sebastian Dröge
49d2ad5633
event: Implement segment-done event
2012-07-05 12:52:51 +02:00
Sebastian Dröge
2833bb73cd
basesink: Post TOC messages on the bus in the sinks, similar to tags
2012-07-03 17:25:21 +02:00
Wim Taymans
76e8b2ecda
task: add GDestroyNotify to _new
...
Add a GDestroyNotify to the user_data we pass to gst_task_new()
Change gst_pad_start_task() to also take the notify
2012-06-20 10:31:49 +02:00
Wim Taymans
5e84524d72
basesink: preroll and sync on gap events
2012-06-19 16:15:36 +02:00
Wim Taymans
a36d5b7335
basesink: reorganize the code a little
...
Move the code to get the sync times together.
2012-06-19 16:15:36 +02:00
Evan Nemerson
8f6b6b8ab5
introspection: assorted introspection and documentation fixes in base
2012-06-18 13:28:35 +02:00
Wim Taymans
927f261b1c
basesink: wait_eos() -> wait()
...
Rename gst_base_sink_wait_eos() to gst_base_sink_wait() to avoid confusion and
introspection problems with the ::wait_eos vmethod. Also this method can be used
to wait for other things than EOS. Update the docs a little.
2012-06-18 11:36:25 +02:00
Wim Taymans
7b6ebd4b5b
message: add the running-time to the async-done message
...
Add the running-time of the buffer that caused the async operation to complete
to the async-done message.
Update bin to handle the new async-done message.
2012-06-14 09:04:33 +02:00
Wim Taymans
9c8ee44f9b
pipeline: use reset_time message to reset the start time
...
Use the new RESET_TIME message to reset the start-time of the pipeline to the
requested time.
Make basesink request a new running-time when the flush-stop message tells it to
insteasd of waiting for preroll.
2012-06-14 09:04:33 +02:00
Sebastian Dröge
ec7a0a7cf2
basesink: Use gst_pad_set_caps() instead of the manual event fiddling
2012-06-08 15:36:40 +02:00
Wim Taymans
9af2c6c86b
basesink: throttle-time is used
2012-05-16 13:24:23 +02:00