Commit graph

2249 commits

Author SHA1 Message Date
Wim Taymans
fac7eb0a50 NEWSEGMENT -> SEGMENT 2012-12-14 15:24:30 +01:00
Wim Taymans
6e6fc159a7 basesrc: call _stop when start failed
When we failed to complete the start, call stop again. This makes sure that all
successfull calls to _start are paired with a _stop.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=687845
2012-12-13 14:48:35 +01:00
Sebastian Dröge
e58dabc750 libs: Use foo/foo.h as single-include header consistently everywhere
https://bugzilla.gnome.org/show_bug.cgi?id=688785
2012-12-12 16:44:14 +00:00
Wim Taymans
7518960829 baseparse: pass DTS and PTS to handle_buffer
This makes it handle the timestamps correctly and avoids using a wrong timestamp
for the output.
2012-12-11 16:46:18 +01:00
Wim Taymans
6c99839d89 baseparse: improve debug
Add pts and dts in debug log
2012-12-11 16:46:01 +01:00
Wim Taymans
98d084df69 adapter: fix 0.10 docs to make more sense in 1.0 2012-12-05 14:24:14 +01:00
Wim Taymans
89d6ac116c adapter: fix docs for 1.0
Add parent to chain function signature and use it.
2012-12-05 14:03:27 +01:00
Tim-Philipp Müller
e43ebd685d dataqueue: reduce debug log spam a bit
Log locking/unlocking with TRACE debug level.
2012-11-25 18:11:38 +00:00
Tim-Philipp Müller
b9386d7659 testclock: remove unnecessary include 2012-11-23 13:34:24 +00:00
Evan Nemerson
1afb1f12ef libs: Add missing single include headers and use them in GIRs 2012-11-21 11:00:40 +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
Arnaud Vrac
94185ec94a baseparse: forward stream-start event in push mode 2012-11-20 12:46:31 +01:00
Tim-Philipp Müller
fa368f2aa3 testclock: port to new GLib threading API 2012-11-14 10:55:15 +00:00
Tim-Philipp Müller
abc805ca95 tests: gst_adapter_prev_timestamp -> gst_adapter_prev_pts
https://bugzilla.gnome.org/show_bug.cgi?id=675598
2012-11-13 23:11:34 +00:00
Tim-Philipp Müller
c6cc50e6de testclock: minor cleanups, add since markers for gtk-doc
https://bugzilla.gnome.org/show_bug.cgi?id=683012
2012-11-13 22:43:04 +00:00
Sebastian Rasmussen
4eeb471e11 check: allow GstTestClock to handle clock notifications
API: gst_test_clock_peek_id_count()
API: gst_test_clock_has_id()
API: gst_test_clock_peek_next_pending_id()
API: gst_test_clock_wait_for_next_pending_id()
API: gst_test_clock_wait_for_pending_id_count()
API: gst_test_clock_process_next_clock_id()
API: gst_test_clock_get_next_entry_time()

https://bugzilla.gnome.org/show_bug.cgi?id=683012
2012-11-13 21:47:01 +00:00
Tim-Philipp Müller
77005be192 check: add dependency on gstcheck header files for exports.sym
So exports.sym gets updated correctly, and our new symbols get
exported correctly, which makes g-ir-scanner much happier in
terms of linking.

https://bugzilla.gnome.org/show_bug.cgi?id=683012
2012-11-13 21:46:32 +00:00
Sebastian Rasmussen
e58da2a22d check: add GstTestClock as a deterministic clock for testing
API: GstTestClock
API: gst_test_clock_new()
API: gst_test_clock_new_with_start_time()
API: gst_test_clock_set_time()
API: gst_test_clock_advance_time()

https://bugzilla.gnome.org/show_bug.cgi?id=683012
2012-11-13 21:19:57 +00:00
Tim-Philipp Müller
b1cb17ab2f basesrc: fix debug message 2012-11-13 20:45:48 +00: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
Jan Schmidt
b674a737b0 collectpads: Clarify docs about the buffer handler callback.
Clarify that the callback owns a ref on a passed buffer.
2012-10-30 10:04:44 +11:00
Tim-Philipp Müller
073c09afe0 g-i: fix "can't resolve libraries to shared libraries: gstcheck-1.0" build error
Revert --library=libfoo-1.0.la -> --library=foo-1.0 change made
in previous commit. Turns out that was wrong, despite what the
man page says.

https://bugzilla.gnome.org/show_bug.cgi?id=603710
2012-10-29 13:27:55 +00:00
Vincent Penquerc'h
37a72b1a82 baseparse: prevent excessively high memory usage with long streams
Large streams would index one frame every second, which can get quite
large with multi-hour streams, so add an additional byte-based
minimum distance as well, which will kick in for long streams
and make sure we never have more than a couple of thousand index
entries.

https://bugzilla.gnome.org/show_bug.cgi?id=666053
2012-10-28 19:49:37 +00:00
Tim-Philipp Müller
21a74a6b79 libs: g-i: avoid multiple libraries in the shared-library tag
Using multiple libraries causes problems for the C# bindings and
will for similiar languages such as Java when there are bindings
for them.

Also change --library=libgstfoo-X.la to --library=gstfoo-X as
the man page suggests it should be done.

https://bugzilla.gnome.org/show_bug.cgi?id=679315
2012-10-28 17:20:10 +00:00
Sebastian Dröge
09982c3c13 dataqueue/queuearray: Make public API again
These are actually used outside of coreelements nowadays.
Also hide lots of internals and add padding and documentation.
2012-10-25 14:03:01 +02:00
Wim Taymans
9f42bd643e basesrc: use new GCond for async state change
Use a new GCond, protected with the object lock, to signal completion
of the async state change. We can't reuse the live lock because that
one can be locked when the create function blocks.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=686723
2012-10-24 11:16:12 +02:00
Sebastian Dröge
1042857f33 configure: Properly check for pthread
The old check failed on Android for example.
2012-10-22 15:05:24 +02:00
Tim-Philipp Müller
d86ecaf53e collectpads: fix g-i annotation for GstCollectPadsBufferFunction
We pass ownership of the buffer to the function.
2012-10-20 19:44:43 +01:00
Tim-Philipp Müller
73b2a3dd66 collectpads: minor docs fixes 2012-10-15 19:56:36 +01:00
Tim-Philipp Müller
bb2fda64f7 collectpads: fix buffer leak in clip_time 2012-10-15 19:55:42 +01:00
Mark Nauwelaerts
81aef52ac4 collectpads: call clip function with user data 2012-10-15 18:44:56 +02:00
Mark Nauwelaerts
a6b75fb322 collectpads: ensure all timestamps are in same time domain
... by not only processing incoming buffers through a clip function,
but also other timestamps such as those coming from GAP event.
2012-10-10 11:43:25 +02:00
Mark Nauwelaerts
bd3a27f24c docs: adjust some parameter mismatches 2012-10-10 11:43:25 +02:00
Wim Taymans
f688d4d8a7 basesrc: retrieve the result from start_complete
gst_base_src_start_complete() can fail when the thread could not be
started, for example. Make sure it causes the state change to fail by
retrieving the result from _start_complete().
2012-10-09 15:31:19 +02:00
Wim Taymans
e89ac90fa1 basesrc: improve debug 2012-10-09 15:31:04 +02:00
Tim-Philipp Müller
4e373aa952 docs: add Since markers for new API and add it to docs and .def file 2012-10-04 11:24:09 +01:00
Wim Taymans
d5b81aba6a basetrans: add an option to prefer passthrough
Basetransform attempts to do passthrough mode regardless of the order of
the transform_caps method. Add a method to disable this.
This is needed for elements like capsfilter that want to transform caps
based on the order of the caps property.
2012-10-04 11:15:36 +02:00
Wim Taymans
664f7141be basetrans: improve some comments 2012-10-04 10:01:19 +02:00
Wim Taymans
ed19974e25 meta: do metadata registration threadsafe
We need to use g_once to register the metadata implementations
only once.

See https://bugzilla.gnome.org/show_bug.cgi?id=685332
2012-10-03 13:45:22 +02:00
Jan Schmidt
906738ab49 basesrc: Fix seamless segment function
The 3rd parameter of gst_base_src_new_seamless_segment in
0.10 is the time associated with the start of the new segment,
not the position in the new segment. Fix the name of the parameter,
the docs, and the implementation to match the needs of the only
extant consumer: DVD playback.
2012-09-30 04:07:31 +10: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
Jan Schmidt
d08d3d8227 baseparse: Move some run of the mill debug statements to LOG level 2012-09-26 15:04:14 +10:00
Jan Schmidt
a663a4b9a0 baseparse: Output timestamps after a seek.
Reinitialise the DTS after a seek so as to continue
generating timestamps when baseparse is not downstream
of a demuxer.

Fixes: #684538
2012-09-26 15:04:04 +10:00
Wim Taymans
79ae0b8445 docs: fix basesink docs 2012-09-25 14:45:15 +02:00
Josep Torra Valles
111fcc6e31 Make intel compiler happier
https://bugzilla.gnome.org/show_bug.cgi?id=552657
2012-09-25 00:56:26 +01:00
Tim-Philipp Müller
7eb64ad7a9 check: fix FIXME printing for tcase_skip_broken_test() 2012-09-23 19:56:43 +01:00
Tim-Philipp Müller
226d96f107 collectpads: don't forward random stream-start event
It's not right, and we don't know what extra properties
that event might have set in future (e.g. sparseness).
This change means collectpad users need to create their
own stream-start event now. We could add a utility
function that creates a stream-start event based on
the input stream-start events.
2012-09-23 12:42:01 +01:00
Tim-Philipp Müller
531cdb43f5 docs: collectpads doc fixes 2012-09-19 09:44:08 +01:00
Wim Taymans
0ea3675cf4 basetransform: check acquire result value
Check the result value from _buffer_pool_acquire() and return the
value when allocation failed.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=684285
2012-09-18 21:49:41 +02:00
Tim-Philipp Müller
ca90ea6e55 Remove GST_USE_UNSTABLE_API guard and defines 2012-09-17 13:35:26 +01:00
Wim Taymans
9828f72cda basetrans: whitespace fix 2012-09-14 16:58:10 +02:00
Wim Taymans
3abc720345 docs: fix some docs
from git grep for ffmpegcolorspace and x-raw-
2012-09-13 11:35:41 +02:00
Wim Taymans
a1fa643c93 parse: add missing declaration 2012-09-13 10:48:08 +02:00
Wim Taymans
6802620d9d basesrc: indent fix 2012-09-13 10:24:30 +02:00
Jan Schmidt
196caf5ed6 baseparse: Add a mode/flag for disabling PTS interpolation
To be used by sub-classes implementing video formats with reordering
such as MPEG.
2012-09-12 22:44:37 -07:00
Jan Schmidt
f4b530ed9e baseparse: Handle GAP and still-frame events.
Hacky, because the still-frame code all lives in -base, where we
can't use it - so this is a hacky duplication of -base code. Not
sure which way to fix this: Move baseparse to -base, or move still-frame
events to core?
2012-09-12 22:38:40 -07:00
Jan Schmidt
257ad2c79e baseparse: Restructure event handling
Make the event handling more like what videodecoder does,
to ensure that all events are passed to child classes before being
placed on the pending queue or pushed onward.
2012-09-12 22:38:40 -07:00
Jan Schmidt
dbf4c13489 baseparse: Store incoming cached events in reverse order
Reverse the list just before sending. Prepending is more efficient
than appending, so this saves some cycles.
2012-09-12 22:38:40 -07:00
Jan Schmidt
3226160b31 baseparse: First attempt at handling both DTS and PTS 2012-09-12 22:38:36 -07:00
Stefan Sauer
57ea490f5a collectpads: remove gst_collect_pads_add_pad_full
Rename gst_collect_pads_add_pad_full() to gst_collect_pads_add_pad() and fix all
invocations.
2012-09-12 21:04:47 +02:00
Mark Nauwelaerts
9454c8c626 check: remove glib deprecation compatibility trickery 2012-09-12 13:02:06 +02:00
Mark Nauwelaerts
bb4860d961 check: port to the new GLib thread API 2012-09-12 13:01:18 +02:00
Tim-Philipp Müller
221d46f438 pad: expose gst_pad_mode_get_name() and use it in baseparse 2012-09-11 19:51:02 +01:00
Wim Taymans
00c6fa74f5 events: remove STREAM_CONFIG
We won't be able to implement this so it's better to move it out of the way.
2012-09-11 16:29:12 +02:00
Wim Taymans
5ff4bb3e7c collectpads: clean up header indentation 2012-09-11 16:09:37 +02:00
Tim-Philipp Müller
a85991eeb8 baseparse, typefind: only activate in pull mode if upstream is seekable
Upstream might support pull mode, but only sequential pulls,
which isn't gonna do much for us.

https://bugzilla.gnome.org/show_bug.cgi?id=634927
2012-09-11 01:40:53 +01:00
Mark Nauwelaerts
357cf18fd5 libs: adjust comment style 2012-09-10 12:16:06 +02:00
Tim-Philipp Müller
36d5c586b1 controller: fix direct control binding double -> int conversion
Round properly to nearest integer. Fixes controller
unit test on PowerPC G4.
2012-09-07 01:02:10 +01:00
Mark Nauwelaerts
9439e73eec collectpads: handle GAP event 2012-09-05 15:37:13 +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
Tim-Philipp Müller
dcacfb17cb baseparse: update for gst_message_new_duration -> _duration_changed() 2012-09-02 02:04:14 +01:00
Jan Schmidt
888d9aa4d3 basesink: Make GAP events actually trigger preroll
Slightly hacky approach needing refinement
2012-08-31 11:31:45 -07:00
Tim-Philipp Müller
b94e46b8b4 baseparse: make seeking in DEFAULT format work if the subclass can convert for us
We only deal in TIME format ourselves, but if the subclass can handle
converting other formats into TIME format, we can support that too.

Fixes seeking in DEFAULT (sample) format with flacparse,
and the flacdec unit test.
2012-08-19 17:51:00 +01:00
Víctor Manuel Jáquez Leal
fee7080dff basetransform: getters for pool and allocator
Sometimes a transform filter would need the buffer pool or the memory
allocator negotiated by the base class, for example, for querying different
parameters, such as a bigger number of buffers to allocate by the buffer pool.

This patch expose a two getters accessors: one for the buffer pool and the
other for the memory allocator.
2012-08-14 15:45:21 +02:00
Víctor Manuel Jáquez Leal
65cfafb3b9 basesrc: getters for pool and allocator
Sometimes the sources would use the buffer pool or the memory allocator for
something else than just allocating output buffers; for example, querying for
different parameters, such as a bigger number of buffers to allocate by the
pool.

This patch expose a two getters accessors: one for the buffer pool and the
other for the memory allocator.
2012-08-14 15:45:14 +02:00
Tim-Philipp Müller
1c3ade2d0f consistencychecker: add some more details to failure messages
Mention pad where the problem occured, and the event name.
2012-08-12 19:39:46 +01:00
Tim-Philipp Müller
83870cf581 baseparse: fix reverse playback with upstream demuxers that support it
Don't just return FALSE for seek events with negative rates when
operating in push mode. An upstream demuxer may support this just
fine, so if we're not operating in pull mode always check upstream
first if it can handle the seek event. This fixes reverse playback
where the upstream demuxer supports it (e.g. with qtdemux). The
same code would work fine in 0.10, because baseparse will just
call the default pad event handler if FALSE was returned from the
baseparse event handler, and the pad event handler will just
forward it upstream. In 0.11 the baseclass or subclass is
responsible for chaining up to the parent class or forwarding the
event upstream in any case.

Disable reverse playback in pull mode for now, there seems to
be something going wrong with the segment configuration in that
case.
2012-08-10 23:18:33 +01:00
Thiago Santos
2a5afba1a1 basetransform: do not error on not-negotiated
Don't error out too early and let upstream decide if it can
workaround a not-negotiated problem

https://bugzilla.gnome.org/show_bug.cgi?id=681198
2012-08-10 13:58:02 -03:00
Thiago Santos
5c0e02c79c basesrc: retry on not-negotiate if a reconfigure is pending
Before erroring out on not-negotiated returns, check if the pad
has the reconfigure flag set and retry.

https://bugzilla.gnome.org/show_bug.cgi?id=681198
2012-08-10 13:58:02 -03:00
Tim-Philipp Müller
df2312fd6a netclientclock: fix printf format in debug message 2012-08-10 15:00:09 +01:00
Tim-Philipp Müller
fe082cbe24 netclientclock: simplify by using g_socket_condition_timed_wait()
No need to use a custom main context and custom timeout sources,
just use g_socket_condition_timed_wait() instead, which was added
for exactly this case.

Also seems to help with the unit test deadlocking with glib 2.33.x

https://bugzilla.gnome.org/show_bug.cgi?id=681575
2012-08-10 09:31:31 +01:00
Tim-Philipp Müller
11ce044cc4 consistencychecker: print which event we received before stream-start 2012-08-06 20:08:07 +01:00
Tim-Philipp Müller
9427851fd2 basesrc: don't try to answer URI queries with NULL URIs
Should make unit tests in -base that use appsrc a bit happier.
2012-08-06 20:04:09 +01:00
Sebastian Dröge
0d22988e5c event: Update for stream-start event API changes 2012-08-06 14:00:56 +02:00
Tim-Philipp Müller
c0f1ff5f79 check: add tcase_skip_broken_test() define
Skips broken tests but logs an ERROR-level message to
draw attention to that fact.
2012-08-05 17:16:27 +01:00
Sebastian Dröge
389ec66946 basesrc: Add default handler for URI query in GstURIHandler subclasses 2012-07-31 17:26:37 +02:00
Sjoerd Simons
8d9a4b2e94 check: unbreak fail #define
The fail() definition was changed to not fail with non-GCC compilers,
unfortunately the change was incorrect and appended the first argument
of fail to the expression string instead of making it the message.

This change does mean that fail() now requires a message to be passed
along.

https://bugzilla.gnome.org/show_bug.cgi?id=680755
2012-07-30 16:20:02 +01:00
Sebastian Dröge
826a8d643d tag: Add a scope to taglists
This specifies if a given taglist applies to the complete
medium or only this specific stream. By default a taglist
has a stream scope.

Fixes bug #677619.
2012-07-28 00:34:41 +02: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
Stefan Sauer
e9b62b030c collectpads: remove unimplemented api
We can always add this back if we need it. Fixes parts of #670852.
2012-07-24 21:38:35 +02:00
Mark Nauwelaerts
363293731e baseparse: also account for frame size when merely scanning for frame
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680495
2012-07-24 13:50:03 +02:00
Mark Nauwelaerts
2decf696e7 baseparse: remove obsolete function parameter 2012-07-24 13:50:02 +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
Evan Nemerson
0c70754282 nettimepacket: add missing array annotation to gst_net_time_packet_new 2012-07-17 09:38:03 +02:00
Tim-Philipp Müller
49ab4d9a45 baseparse: fix seekability querying with formats with headers like FLAC
Move code that checks for upstream seekability and all that to
the right place, otherwise it will never be done for formats
that have headers such as FLAC, as handle_and_push frame will
be called the first time only after headers have been processed
(and framecount is > 0). This then makes us report that we
can't seek, which disables the seek bar in totem.
2012-07-15 12:59:44 +01:00
Tim-Philipp Müller
94f6ba9c0b base: make GstQueueArray private to coreelements for now
Keep it private until we have a reason to make it public.
2012-07-14 19:36:02 +01:00