Tim-Philipp Müller
989e97d1dd
basesink: don't unlock mutex that is not locked
...
Fixes 'Attempt to unlock mutex that was not locked'
warning with newer GLibs when sink is shut down in
certain situations. Triggered by the decodebin
test_reuse_without_decoders unit test in -base
sometimes, esp. on slower machines.
2014-10-24 12:51:07 +01:00
Stefan Sauer
d5518edf12
fixme: bump leftover 0.11 fixme comments
2014-09-25 21:27:03 +02:00
Vincent Penquerc'h
2dc8839234
basesink: reset QoS on segment event
...
This avoids spurious warnings about slow machine when upstream
sends new segments without flushing.
2014-07-01 16:30:23 +01:00
Evan Nemerson
c38f3254f8
base: add (nullable) annotations to return values
...
https://bugzilla.gnome.org/show_bug.cgi?id=731542
2014-06-26 18:55:25 +02:00
Evan Nemerson
25af4ad652
base: use correct syntax in documentation more consistently
...
Previously, many constants were prefixed with # or unprefixed,
some functions and macros were prefixed with # instead of suffixed
with (), etc.
https://bugzilla.gnome.org/show_bug.cgi?id=731293
2014-06-06 15:09:21 -04:00
Nicolas Dufresne
3895e431bd
basesink: Always render prepared buffer
...
Currently, if prepare() takes too much time, we skip the call to render().
The side effect of this, is that we endup starving the render(). The solution
in this patch is to always render frames that are on time before prepare() is
executed. This will maximize the number of frames we display and smoothly
degrade the rendering performance.
https://bugzilla.gnome.org/show_bug.cgi?id=729335
2014-05-02 18:52:44 -04:00
Tim-Philipp Müller
6eb6d9ec38
docs: remove outdated and pointless 'Last reviewed' lines from docs
...
They are very confusing for people, and more often than not
also just not very accurate. Seeing 'last reviewed: 2005' in
your docs is not very confidence-inspiring. Let's just remove
those comments.
2014-04-26 21:21:51 +01:00
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