Commit graph

1483 commits

Author SHA1 Message Date
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
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
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
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
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
Sebastian Dröge
389ec66946 basesrc: Add default handler for URI query in GstURIHandler subclasses 2012-07-31 17:26:37 +02: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
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
Wim Taymans
35dbbdb50e baseparse: send seek event upstream first
First try to let upstream handle the seek event, then fail if the event is
something we don't understand.
2012-07-13 12:05:15 +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
042d1ff398 baseparse: Push STREAM_START in pull-mode 2012-07-11 10:26:13 +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
ebcfd0ce05 basesrc: provide fallback in case a create function doesn't know about provided buffers
In 0.11 the caller may provide a buffer to be filled by the source to
pull_range/get_range/create, but it's easy to miss this new case when
porting code from 0.10. Provide fallback that copies the created data
into the provided buffer for now.

This makes oggdemux in pull-mode work with dataurisrc.
2012-07-10 09:42:15 +01:00
Wim Taymans
82eb275ef9 query: copy structure in _add_allocation_meta()
Make gst_query_add_allocation_meta() take a copy of the passed caps instead of
taking ownership. This makes it easier for the caller in most cases because it
doesn't have to make a copy and deal with NULL values.
2012-07-10 10:31:00 +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
Stefan Sauer
46a4f2f6c0 collectpads: add STREAM_START handling
Use a flag to forward the first STREAM_START
2012-07-09 19:57:25 +02:00
Wim Taymans
f362f643ac memory: Make GstAllocator a GstObject
Make GstAllocator a GstObject instead of a GstMiniObject, like bufferpool.
Make a new gstallocator.c file. Make a GstAllocator subclass for the default
allocator.
2012-07-09 16:28:22 +02:00
Wim Taymans
3f80cb272e query: use more generic structure for meta params 2012-07-06 11:49:47 +02:00
Wim Taymans
8173622844 query: add flags to allocation query
Make it possible to add API specific flags to the ALLOCATION query. This makes
it possible to also check what kinds of subfeatures of the metadata API are
supported.
2012-07-06 11:00:38 +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
Edward Hervey
588cdcd369 libs: New growing-only queue.
This is a queue which has the same API as GQueue, except that:
* It uses an array, instead of a doubled-linked-list
* The array can only grow.

This code is not-threadsafe. It is up to the owner to make sure the
proper locking is taken before calling this API.
2012-07-04 17:46:53 +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