android: make it ready for androgenizer
Remove the android/ top dir
Fixe the Makefile.am to be androgenized
To build gstreamer for android we are now using androgenizer which generates the needed Android.mk files.
Androgenizer can be found here: http://git.collabora.co.uk/?p=user/derek/androgenizer.git
Remove the android/ top dir
Fixe the Makefile.am to be androgenized
To build gstreamer for android we are now using androgenizer which generates the needed Android.mk files.
Androgenizer can be found here: http://git.collabora.co.uk/?p=user/derek/androgenizer.git
trace: don't put code with side effects into g_return_if_fail()
docs: minor fixes for baseparse docs
Class vfunc references still aren't right, no idea what
the correct markup for those is.
Class vfunc references still aren't right, no idea what
the correct markup for those is.
element: unref event in default_send_event in case element has no pads
Spotted by Haakon Sporsheim.
Spotted by Haakon Sporsheim.
baseparse: minor variable name clean-up
baseparse: rename _set_frame_props() to _set_frame_rate()
Seems like the best fit to what it does, and is shorter than
set_frame_properties() which might also have been confusing
because of GstBaseParseFrame.
https://bugzilla.gnome.org/show_bug.cgi?id=518857
Seems like the best fit to what it does, and is shorter than
set_frame_properties() which might also have been confusing
because of GstBaseParseFrame.
https://bugzilla.gnome.org/show_bug.cgi?id=518857
13 years agobaseparse: replace format flags with gst_base_parse_set_{passthrough,syncable,has_tim...
baseparse: replace format flags with gst_base_parse_set_{passthrough,syncable,has_timing_info}
This is more in line with e.g. GstBaseTransform's API, and makes for nicer
to read code. No getters for now since I don't see any use case for them,
the API is for subclasses, which usually know what format they're
dealing with already and hence know what they've set.
https://bugzilla.gnome.org/show_bug.cgi?id=518857
This is more in line with e.g. GstBaseTransform's API, and makes for nicer
to read code. No getters for now since I don't see any use case for them,
the API is for subclasses, which usually know what format they're
dealing with already and hence know what they've set.
https://bugzilla.gnome.org/show_bug.cgi?id=518857
13 years agobaseparse: make DRAIN and SYNC flags on baseparse, not the frame, and change to DRAIN...
baseparse: make DRAIN and SYNC flags on baseparse, not the frame, and change to DRAINING and LOST_SYNC
The first because it seems a better fit conceptually, the second
to express booleanness. Also change the accessor macros for subclasses
to GST_BASE_PARSE_DRAINING and GST_BASE_PARSE_LOST_SYNC.
https://bugzilla.gnome.org/show_bug.cgi?id=518857
The first because it seems a better fit conceptually, the second
to express booleanness. Also change the accessor macros for subclasses
to GST_BASE_PARSE_DRAINING and GST_BASE_PARSE_LOST_SYNC.
https://bugzilla.gnome.org/show_bug.cgi?id=518857
baseparse: add some padding to GstBaseParseFrame
Esp. since it's usually allocated on the stack.
https://bugzilla.gnome.org/show_bug.cgi?id=518857
Esp. since it's usually allocated on the stack.
https://bugzilla.gnome.org/show_bug.cgi?id=518857
baseparse: fix typo in docs for GST_BASE_PARSE_FORMAT_FLAG_PASSTHROUGH
https://bugzilla.gnome.org/show_bug.cgi?id=518857
https://bugzilla.gnome.org/show_bug.cgi?id=518857
baseparse: use GQueue instead of GList for queued frames
and make buffer metadata writable before setting caps on queued
buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=646341
and make buffer metadata writable before setting caps on queued
buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=646341
baseparse: add GST_BASE_PARSE_FLOW_QUEUED to queue buffers until caps are known
This is useful for parser like flacparse or h264parse which may need to process
some buffers before they can construct the final caps, in which case they may
want to delay pushing the initial buffers until the full and proper caps are
known.
https://bugzilla.gnome.org/show_bug.cgi?id=646341
This is useful for parser like flacparse or h264parse which may need to process
some buffers before they can construct the final caps, in which case they may
want to delay pushing the initial buffers until the full and proper caps are
known.
https://bugzilla.gnome.org/show_bug.cgi?id=646341
baseparse: add to docs and fix up gtk-doc markup a little
And add Since markers.
And add Since markers.
baseparse: replace set_seek() with _set_average_bitrate() and FLAG_SYNCABLE
This makes more sense conceptually, since the bitrate may be used
to estimate a seek position if there's no seek table or just for
duration reporting/estimation if we can't seek. Also, even if the
format is not syncable, we could still seek by pushing data from the
start and using the segment to make downstream clip.
https://bugzilla.gnome.org/show_bug.cgi?id=518857
This makes more sense conceptually, since the bitrate may be used
to estimate a seek position if there's no seek table or just for
duration reporting/estimation if we can't seek. Also, even if the
format is not syncable, we could still seek by pushing data from the
start and using the segment to make downstream clip.
https://bugzilla.gnome.org/show_bug.cgi?id=518857
baseparse: rename GstBaseFormat to GstBaseFormatFlags and fix up associated API
Also change gst_base_parse_set_format(parse,flags,switch_on) to
gst_base_parse_set_format_flags(parse,flags) which is more in line
with the rest of our API and how the function is used.
Also change gst_base_parse_set_format(parse,flags,switch_on) to
gst_base_parse_set_format_flags(parse,flags) which is more in line
with the rest of our API and how the function is used.
baseparse: don't expose GstAdapter in public header
None of the existing subclasses needs access to that, so there's
no reason to expose it for now.
https://bugzilla.gnome.org/show_bug.cgi?id=518857
None of the existing subclasses needs access to that, so there's
no reason to expose it for now.
https://bugzilla.gnome.org/show_bug.cgi?id=518857
baseparse: move various segment-related members into the private instance struct
If none of the existing subclasses uses these, there's probably no
need to expose them at the moment. Keep the segment itself exposed
though.
https://bugzilla.gnome.org/show_bug.cgi?id=518857
If none of the existing subclasses uses these, there's probably no
need to expose them at the moment. Keep the segment itself exposed
though.
https://bugzilla.gnome.org/show_bug.cgi?id=518857
baseparse: remove unused GST_BASE_PARSE_{SINK,SRC}_NAME
https://bugzilla.gnome.org/show_bug.cgi?id=518857
https://bugzilla.gnome.org/show_bug.cgi?id=518857
baseparse: re-indent header
baseparse: fix up GType name and make _get_type() function thread-safe
Rename GType from GstBaseParseBad to GstBaseParse.
Rename GType from GstBaseParseBad to GstBaseParse.
libs: add GstBaseParse which was moved from -bad
baseparse: make_metadata_writable() fix
baseparse: rename GType from GstAudioBaseParseBad to GstBaseParseBad
We use it for video as well now.
We use it for video as well now.
baseparse: trim trailing whitespace
baseparse: use delta-unit flags instead of none
baseparse: update documentation for API changes
baseparse: Create baseparse library
baseparse: tune QUERY_SEEKING response
Even if we currently do not have a duration yet, assume seekable if
it looks like we'll likely be able to determine it later on
(which coincides with needed information to perform seeking).
Fixes #641047.
Even if we currently do not have a duration yet, assume seekable if
it looks like we'll likely be able to determine it later on
(which coincides with needed information to perform seeking).
Fixes #641047.
baseparse: Update min/max bitrate before first posting them
This avoids posting an initial min-bitrate of G_UINTMAX and max-bitrate
of 0.
https://bugzilla.gnome.org/show_bug.cgi?id=641857
This avoids posting an initial min-bitrate of G_UINTMAX and max-bitrate
of 0.
https://bugzilla.gnome.org/show_bug.cgi?id=641857
baseparse: tune default duration estimate update interval
Rather than a fixed default frame count, estimate frame count to aim for
an interval duration depending on fps if available, otherwise use old
fixed default.
Rather than a fixed default frame count, estimate frame count to aim for
an interval duration depending on fps if available, otherwise use old
fixed default.
baseparse: reverse playback; mind keyframes for fragment boundary
baseparse: ensure non-empty candidate frames
baseparse: clarify some debug statements
baseparse: properly track upstream timestamps
... rather than with a delay.
... rather than with a delay.
baseparse: need proper frame duration to obtain sensible frame bitrate
baseparse: proper initial values for index tracking variables
baseparse: arrange for consistent event handling
baseparse: header style cleaning
baseparse: provide some more initial frame metadata in parse_frame
... and document accordingly.
... and document accordingly.
baseparse: refactor passthrough into format flags
Also add a format flag to signal baseparse that subclass/format can provide
(parsed) timestamp rather than an estimated one. In particular, such "strong"
timestamp then allows to e.g. determine duration.
Also add a format flag to signal baseparse that subclass/format can provide
(parsed) timestamp rather than an estimated one. In particular, such "strong"
timestamp then allows to e.g. determine duration.
baseparse: introduce a baseparse frame to serve as context
... and adjust subclass parsers accordingly
... and adjust subclass parsers accordingly
baseparse: restrict duration scanning to pull mode and avoid extra set_caps call
baseparse: update some documentation
Also add some more debug.
Also add some more debug.
baseparse: allow increasing min_size for current frame parsing only
Also check that subclass actually either directs to skip bytes or
increases expected frame size to avoid going nowhere in bogus
indefinite looping.
Also check that subclass actually either directs to skip bytes or
increases expected frame size to avoid going nowhere in bogus
indefinite looping.
baesparse: fix refactor regression in loop based parsing
baseparse: pass all available data to subclass rather than minimum
Also reduce some adapter calls and add a few debug statements.
Also reduce some adapter calls and add a few debug statements.
baseparse: fix reverse playback handling
baseparse: minor typo and debug statement cleanup
baseparse: reduce locking
... which is either already mute and/or implicitly handled by STREAM_LOCK.
... which is either already mute and/or implicitly handled by STREAM_LOCK.
baseparse: avoid loop in frame locating interpolation
audioparsers: baseparse: Be careful to not lose the event ref
Don't unref the event if it hasn't been handled, because the caller
assumes it is still valid and might reuse it.
I ran into this problem when transcoding an AVI (with mp3 inside)
to gpp.
https://bugzilla.gnome.org/show_bug.cgi?id=639555
Don't unref the event if it hasn't been handled, because the caller
assumes it is still valid and might reuse it.
I ran into this problem when transcoding an AVI (with mp3 inside)
to gpp.
https://bugzilla.gnome.org/show_bug.cgi?id=639555
docs: minor baseparse docs/comment fixes
Remove copy'n'paste leftovers.
Remove copy'n'paste leftovers.
baseparse: increase keyframe awareness
... which is not particular relevant for audio parsing, but more so
in video cases. In particular, auto-determine if dealing with video (caps).
... which is not particular relevant for audio parsing, but more so
in video cases. In particular, auto-determine if dealing with video (caps).
baseparse: avoid unexpected stray metadata
baseparse: use proper _NONE output value when applicable
audioparsers: Remove dead assignments
audioparse: fix possible division-by-zero
https://bugzilla.gnome.org/show_bug.cgi?id=635786
https://bugzilla.gnome.org/show_bug.cgi?id=635786
baseparse: use correct offset when adding index entry
... bearing in mind that BUFFER_OFFSET is media specific and may not
reflect the basic offset after having been parsed.
... bearing in mind that BUFFER_OFFSET is media specific and may not
reflect the basic offset after having been parsed.
baseparse: enhancements for timestamp marked framed formats
That is, as such formats allow subclass to extract position from frame,
it is possible to extract duration (if not otherwise provided)
from (near) last frame, and a seek can fairly accurately target the required
position.
Fixes #631389.
That is, as such formats allow subclass to extract position from frame,
it is possible to extract duration (if not otherwise provided)
from (near) last frame, and a seek can fairly accurately target the required
position.
Fixes #631389.
baseparse: refactor frame scanning peformed by _loop
baseparse: slightly optimize sending of pending newsegment events
baseparse: minor fixes and enhancements
Arrange for upstream as well as downstream flushing when seeking.
Also determine upstream size as well as seekability. Adjust some comments
to reality and employ debug statement in proper order.
Arrange for upstream as well as downstream flushing when seeking.
Also determine upstream size as well as seekability. Adjust some comments
to reality and employ debug statement in proper order.
baseparse: use only upstream duration if it provides one
baseparse: reflow update_bitrate code
... which makes local variables represent real state better, and avoids
triggering unneeded updates/actions.
... which makes local variables represent real state better, and avoids
triggering unneeded updates/actions.
baseparse: add some debug statements
baseparse: perform bitrate handling and posting after newsegment sending
baseparse: immediately post subclass provided bitrate
Revert "baseparse: add skip property"
This reverts commit b5a3d60363d837a10f0533c141ec93d10b742312.
Reverting this for now, since no one really seems to remember why this
property exists or what it could possibly be good for. It seems to have
been in the original mp3parse since the beginning of time and was back-
ported from there.
This reverts commit b5a3d60363d837a10f0533c141ec93d10b742312.
Reverting this for now, since no one really seems to remember why this
property exists or what it could possibly be good for. It seems to have
been in the original mp3parse since the beginning of time and was back-
ported from there.
audioparser: Let the format string agree with the parameters to fix compiler warning
baseparse: Fix debug output
We lose the reference to the buffer after gst_pad_push(), so the debug
print should happen before.
https://bugzilla.gnome.org/show_bug.cgi?id=622276
We lose the reference to the buffer after gst_pad_push(), so the debug
print should happen before.
https://bugzilla.gnome.org/show_bug.cgi?id=622276
baseparse: support reverse playback
... in pull mode or upstream driven.
... in pull mode or upstream driven.
baseparse: remove done TODOs and update documentation
baseparse: use determined seekability in answering SEEKING query
baseparse: add skip property
baseparse: use _set_frame_props to configure frame lead_in and lead_out
... provided a corresponding decoder with sufficient leading and following
frames to carry out full decoding for a particular segment.
... provided a corresponding decoder with sufficient leading and following
frames to carry out full decoding for a particular segment.
baseparse: use _set_duration to configure duration update interval
... as it logically belongs there as one or the other; either subclass
can provide a duration, or an estimate must be made (reguarly updated).
... as it logically belongs there as one or the other; either subclass
can provide a duration, or an estimate must be made (reguarly updated).
baseparse: localize use of provided fps information
baseparse: seek table and accurate seek support
baseparse: proper and more extended segment and seek handling
That is, loop pause handling, segment seek support, newsegment for gaps, etc
That is, loop pause handling, segment seek support, newsegment for gaps, etc
baseparse: add index support
baseparse: refactor state reset
baseparse: prevent indefinite resyncing
baseparse: specific EOS handling if no output so far
baseparse: adjust _set_frame_prop documentation and set default as claimed
baseparse: fix bitrate copy-and-paste and update heuristic
baseparse: post duration message if average bitrates is updated
baseparse: remove is_seekable vmethod and use a set_seek instead
Seekability, like duration, etc is unlikely to change (frequently), and
the default assumption covers most cases, so let subclass set when needed.
At the same time, allow subclass to indicate if it has seek-metadata (table)
available, and possibly have it provide an average bitrate.
Seekability, like duration, etc is unlikely to change (frequently), and
the default assumption covers most cases, so let subclass set when needed.
At the same time, allow subclass to indicate if it has seek-metadata (table)
available, and possibly have it provide an average bitrate.
baseparse: add another hook for subclass prior to pushing buffer
... and allow subclass to perform custom segment clipping, or to
emit tags or messages at this time.
... and allow subclass to perform custom segment clipping, or to
emit tags or messages at this time.
baseparse: 0 converts to 0 by default
baseparse: refactor conversion using helper function and export default convert
baseparse: streamline query handling
baseparse: cleanup struct and remove unused member
baseparse: Allow chaining of subclass event handlers
This allows the child class to chain its event handler with
GstBaseParse, so that subclasses don't have to duplicate all the default
event handling logic.
https://bugzilla.gnome.org/show_bug.cgi?id=622276
This allows the child class to chain its event handler with
GstBaseParse, so that subclasses don't have to duplicate all the default
event handling logic.
https://bugzilla.gnome.org/show_bug.cgi?id=622276
baseparse: Don't use GST_FLOW_IS_FATAL()
Also don't post an error message for UNEXPECTED and do it
for NOT_LINKED.
Also don't post an error message for UNEXPECTED and do it
for NOT_LINKED.
baseparse: non-TIME seek event is simply not handled
baseparse: fix seek event ref handling
baseparse: prevent arithmetic overflows in pull mode buffer cache handling
baseparse: fix seek handling
Allow a few more seek event type combinations, and really use the result
of gst_segment_set_seek to perform the seek. Also add some debug.
Allow a few more seek event type combinations, and really use the result
of gst_segment_set_seek to perform the seek. Also add some debug.
baseparse: Don't emit bitrate tags too early
We wait to parse a minimum number of frames (10, arbitrarily) before
emiting bitrate tags so that our early estimates are not wildly
inaccurate for streams that start with a silence. If the stream ends
before that, we just emit the tags anyway.
While it _would_ be nicer to be specify the threshold to start pushing
the tags in terms of duration, this would introduce more complexity than
this merits.
https://bugzilla.gnome.org/show_bug.cgi?id=614991
We wait to parse a minimum number of frames (10, arbitrarily) before
emiting bitrate tags so that our early estimates are not wildly
inaccurate for streams that start with a silence. If the stream ends
before that, we just emit the tags anyway.
While it _would_ be nicer to be specify the threshold to start pushing
the tags in terms of duration, this would introduce more complexity than
this merits.
https://bugzilla.gnome.org/show_bug.cgi?id=614991
baseparse: Set the last stop to the buffer starttime if the duration is invalid
...instead of not setting it at all.
...instead of not setting it at all.