Arun Raghavan [Thu, 25 Mar 2010 11:22:58 +0000 (11:22 +0000)]
audioparsers: Add bitrate calculation to baseparse
This makes baseparse keep a running average of the stream bitrate, as
well as the minimum and maximum bitrates. Subclasses can override a
vfunc to make sure that per-frame overhead from the container is not
accounted for in the bitrate calculation.
We take care not to override the bitrate, minimum-bitrate, and
maximum-bitrate tags if they have been posted upstream. We also
rate-limit the emission of bitrate so that it is only triggered by a
change of >10 kbps.
Benjamin Otte [Mon, 22 Mar 2010 15:56:03 +0000 (16:56 +0100)]
Add -Wold-style-definition
and fix the warnings
Benjamin Otte [Sun, 21 Mar 2010 20:39:18 +0000 (21:39 +0100)]
Add -Wmissing-declarations -Wmissing-prototypes to configure flags
And fix all warnings
Benjamin Otte [Thu, 18 Mar 2010 16:30:26 +0000 (17:30 +0100)]
gst_element_class_set_details => gst_element_class_set_details_simple
Mark Nauwelaerts [Thu, 14 Jan 2010 10:50:33 +0000 (11:50 +0100)]
audioparsers: rename baseparse GType name to avoid possible conflicts
Edward Hervey [Tue, 12 Jan 2010 17:55:53 +0000 (18:55 +0100)]
flacparse: Initialize variables.
Fixes build on $#@*( macosx
Ðóñëàí Èæáóëàòîâ [Mon, 11 Jan 2010 19:41:57 +0000 (22:41 +0300)]
win32: Include config.h before anything else. Fix mpegdemux LIBADD
Because config.h defines __MSVCRT_VERSION__, which should be defined
before inclusion of any system header.
Also fixes mpegdemux Makefile.am LIBADD typo.
Fixes #606665
Thiago Santos [Mon, 11 Jan 2010 16:20:26 +0000 (13:20 -0300)]
aacparse: Also add stream-format to template caps
Do not forget to add stream-format to template caps
off aacparse
Thiago Santos [Mon, 11 Jan 2010 16:13:41 +0000 (13:13 -0300)]
Rename aac's stream-format 'none' to 'raw'
Renames aac's stream-format from previous commits from none to
raw
Thiago Santos [Mon, 11 Jan 2010 15:10:02 +0000 (12:10 -0300)]
aacparse: update tests to stream-format changes
Updates aacparse unit tests to check for stream-format
correctness as well.
Thiago Santos [Mon, 11 Jan 2010 13:51:18 +0000 (10:51 -0300)]
aacparse: Add stream-format to output caps
Adds stream-format field to output caps
Mark Nauwelaerts [Tue, 5 Jan 2010 14:05:05 +0000 (15:05 +0100)]
audioparsers: documentation fixes
Mark Nauwelaerts [Tue, 5 Jan 2010 14:04:38 +0000 (15:04 +0100)]
ac3parse: add documentation
Mark Nauwelaerts [Tue, 5 Jan 2010 13:48:49 +0000 (14:48 +0100)]
flacparse: add documentation
Mark Nauwelaerts [Mon, 21 Dec 2009 17:29:43 +0000 (18:29 +0100)]
flacparse: perform additional frame checks when resyncing
Mark Nauwelaerts [Tue, 5 Jan 2010 15:35:52 +0000 (16:35 +0100)]
flacparse: fix (multiple channel) frame parsing
Mark Nauwelaerts [Tue, 5 Jan 2010 15:35:44 +0000 (16:35 +0100)]
flacparse: declare unparsed input and parsed output
Mark Nauwelaerts [Mon, 21 Dec 2009 17:19:23 +0000 (18:19 +0100)]
ac3parse: fix scanning for next syncword
Mark Nauwelaerts [Mon, 21 Dec 2009 17:18:39 +0000 (18:18 +0100)]
baseparse: adjust seek handling and newsegment sending
Perform sanity check on type of seek, and only perform one that is
appropriately supported. Adjust downstream newsegment event
to first buffer timestamp that is sent downstream.
Mark Nauwelaerts [Mon, 21 Dec 2009 10:59:45 +0000 (11:59 +0100)]
baseparse: minor refactor cleanup
Also add some debug logging.
Mark Nauwelaerts [Fri, 18 Dec 2009 20:05:11 +0000 (21:05 +0100)]
flacparse: locate next sync code more efficiently
Mark Nauwelaerts [Fri, 18 Dec 2009 20:04:12 +0000 (21:04 +0100)]
flacparse: baseparse takes care of handling leftover pieces
Mark Nauwelaerts [Fri, 18 Dec 2009 20:02:40 +0000 (21:02 +0100)]
baseparse: implement leftover draining in pull mode
Mark Nauwelaerts [Thu, 17 Dec 2009 11:45:36 +0000 (12:45 +0100)]
flacparse: set _OFFSET and _OFFSET_END on outgoing buffers
Mark Nauwelaerts [Thu, 17 Dec 2009 11:44:20 +0000 (12:44 +0100)]
audioparsers: move 'flacparse' into it
Mark Nauwelaerts [Wed, 16 Dec 2009 17:38:33 +0000 (18:38 +0100)]
baseparse: provide default conversion using bps if no fps available
Also store estimated duration as such, rather than pretending otherwise
(e.g. set by subclass).
Mark Nauwelaerts [Fri, 18 Dec 2009 12:30:29 +0000 (13:30 +0100)]
baseparse: check for remaining data when draining in push mode
Mark Nauwelaerts [Fri, 18 Dec 2009 12:30:07 +0000 (13:30 +0100)]
baseparse: fix pull mode cache size comparison
Edward Hervey [Fri, 18 Dec 2009 12:01:17 +0000 (13:01 +0100)]
ac3parse: Fix unitialized variable.
Christian Schaller [Thu, 17 Dec 2009 14:46:01 +0000 (14:46 +0000)]
Update spec file and fix ac3parser header listing in Makefile.am
Michael Smith [Fri, 11 Dec 2009 18:25:16 +0000 (10:25 -0800)]
audioparse: fix a format string as reported on irc.
Mark Nauwelaerts [Mon, 23 Nov 2009 15:34:50 +0000 (16:34 +0100)]
ac3parse: ensure sufficient data available for parsing
Mark Nauwelaerts [Thu, 29 Oct 2009 14:19:04 +0000 (15:19 +0100)]
ac3parse: extract and use some more details for Enhanced Ac-3 streams
Mark Nauwelaerts [Thu, 29 Oct 2009 14:18:37 +0000 (15:18 +0100)]
baseparse: custom bufferflag indicates not to count frame in stats
Mark Nauwelaerts [Wed, 28 Oct 2009 13:08:43 +0000 (14:08 +0100)]
ac3parse: perform additional frame checks when resyncing
Mark Nauwelaerts [Wed, 28 Oct 2009 13:07:17 +0000 (14:07 +0100)]
ac3parse: inform base parser of frame duration
Mark Nauwelaerts [Tue, 27 Oct 2009 15:16:50 +0000 (16:16 +0100)]
ac3parse: improve src caps settings
Mark Nauwelaerts [Fri, 27 Nov 2009 16:59:03 +0000 (17:59 +0100)]
ac3parse: initial version
MARGINAL rank for now; might take some time for some (useful)
framed=true/false to appear here and there.
Mark Nauwelaerts [Thu, 26 Nov 2009 17:34:45 +0000 (18:34 +0100)]
amrparse: use (default) time handling of baseparser class
Mark Nauwelaerts [Thu, 26 Nov 2009 17:15:21 +0000 (18:15 +0100)]
audioparsers: move 'amrparse' into it
Mark Nauwelaerts [Fri, 27 Nov 2009 16:27:32 +0000 (17:27 +0100)]
audioparsers: reference GstBaseParse now lives here
Mark Nauwelaerts [Sat, 28 Nov 2009 17:13:31 +0000 (18:13 +0100)]
audioparsers: rename 'aacparse' plugin to generic 'audioparsers' plugin
Mark Nauwelaerts [Thu, 26 Nov 2009 16:04:43 +0000 (17:04 +0100)]
aacparse: separate plugin registration and rename plugin
Mark Nauwelaerts [Thu, 26 Nov 2009 16:04:36 +0000 (17:04 +0100)]
aacparse: ensure sufficient data available before accessing
Mark Nauwelaerts [Thu, 5 Nov 2009 13:31:40 +0000 (14:31 +0100)]
aacparse: use (default) time handling of baseparser class
Mark Nauwelaerts [Thu, 29 Oct 2009 14:19:35 +0000 (15:19 +0100)]
aacparse: fixup comments to C-style
Mark Nauwelaerts [Thu, 29 Oct 2009 15:05:00 +0000 (16:05 +0100)]
baseparse: reset passthrough mode to default (disabled) on activation
Mark Nauwelaerts [Thu, 29 Oct 2009 14:16:59 +0000 (15:16 +0100)]
baseparse: ensure buffer metadata is writable
Mark Nauwelaerts [Wed, 28 Oct 2009 13:06:13 +0000 (14:06 +0100)]
baseparse: fix/enhance DISCONT marking
In particular, consider DISCONT == !sync, and allow subclass to query
sync state, as it may want to perform additional checks depending
on whether sync was achieved earlier on.
Also arrange for subclass to query whether leftover data is being drained.
Mark Nauwelaerts [Mon, 23 Nov 2009 14:48:25 +0000 (15:48 +0100)]
baseparse: add timestamp handling, and default conversion
In particular, (optionally) provide baseparse with a notion of frames per second
(and therefore also frame duration) and have it track frame and byte counts.
This way, subclass can provide baseparse with fps and have it provide default
buffer time metadata and conversions, though subclass can still install
callbacks to handle such itself.
Mark Nauwelaerts [Wed, 28 Oct 2009 11:02:03 +0000 (12:02 +0100)]
baseparse: documentation fixes
Mark Nauwelaerts [Wed, 28 Oct 2009 11:00:08 +0000 (12:00 +0100)]
baseparse: use_fixed_caps for src pad
After all, stream is as-is, and there is little molding to downstream's
taste that can be done. If subclass can and wants to do so, it can
still override as such.
Julien Moutte [Fri, 20 Nov 2009 16:32:13 +0000 (17:32 +0100)]
aacparse: Fix compilation warnings
Josep Torra [Sun, 11 Oct 2009 09:22:11 +0000 (11:22 +0200)]
aacparse: fix warnings in macosx snow leopard
Mark Nauwelaerts [Fri, 25 Sep 2009 15:02:53 +0000 (17:02 +0200)]
aacparse: forego (bogus) parsing of already parsed (raw) input
Mark Nauwelaerts [Fri, 7 Aug 2009 11:07:17 +0000 (13:07 +0200)]
baseparse: prevent infinite loop when draining
Mark Nauwelaerts [Fri, 7 Aug 2009 11:06:28 +0000 (13:06 +0200)]
baseparse: fix minor memory leak
Sebastian Dröge [Tue, 14 Jul 2009 12:08:04 +0000 (14:08 +0200)]
aacparse: Add function for the baseparse subclass to push buffers downstream
Also handle the case gracefully where the subclass decides to drop
the first buffers and has no caps set yet. It's still required to
have valid caps set when the first buffer should be passed downstream.
Sebastian Dröge [Tue, 14 Jul 2009 12:07:44 +0000 (14:07 +0200)]
baseparse: Fix seek event leaking
Mark Nauwelaerts [Thu, 18 Jun 2009 10:13:28 +0000 (12:13 +0200)]
aacparse: ADIF: do not send bogus timestamps, leave to downstream (decoder)
Tim-Philipp Müller [Mon, 1 Jun 2009 14:53:27 +0000 (15:53 +0100)]
aacparse: fix sample rate extraction from codec data
In one case we extracted the sample rate index from the codec data
and saved it as sample rate rather than getting the real sample
rate from the table. Fix that, and also make sure we don't access
non-existant table entries by adding a small helper function that
guards against out-of-bounds access in case of invalid input data.
Tim-Philipp Müller [Mon, 1 Jun 2009 13:02:33 +0000 (14:02 +0100)]
aacparse, amrparse: remove bogus gst_pad_fixate_caps() calls
Tim-Philipp Müller [Mon, 1 Jun 2009 12:56:18 +0000 (13:56 +0100)]
baseparse: propagate return value of GstBaseParse::set_sink_caps()
gst_base_parse_sink_setcaps() presumably should fail if the subclass
returns FALSE from its ::set_sink_caps() function.
Tim-Philipp Müller [Mon, 1 Jun 2009 12:47:01 +0000 (13:47 +0100)]
baseparse: don't try to GST_LOG an already-freed caps string
The proper way to log caps is via GST_PTR_FORMAT anyway.
Tim-Philipp Müller [Mon, 1 Jun 2009 12:05:35 +0000 (13:05 +0100)]
aacparse: set channels and rate on output caps, and keep codec_data
Create output caps from input caps, so we maintain any fields we
might get on the input caps, such as codec_data or rate and channels.
Set channels and rate on the output caps if we don't have input caps
or they don't contain such fields. We do this partly because we can,
but also because some muxers need this information. Tagreadbin will
also be happy about this.
Mark Nauwelaerts [Tue, 26 May 2009 17:43:53 +0000 (19:43 +0200)]
baseparse: fix debug category
Mark Nauwelaerts [Mon, 27 Apr 2009 20:39:15 +0000 (22:39 +0200)]
baseparse: fix (regression in) newsegment handling
(aacparse, amrparse, flacparse). Fixes #580133.
René Stadler [Tue, 7 Apr 2009 01:53:02 +0000 (04:53 +0300)]
baseparse: Fix slightly broken buffer-in-segment check (aacparse, amrparse, flacparse)
René Stadler [Sun, 5 Apr 2009 00:50:19 +0000 (03:50 +0300)]
baseparse: Fix push mode seeking (aacparse, amrparse)
Sending the flush-start event forward before taking the stream lock actually
works, in contrast to deadlocking in downstream preroll_wait (hunk 1).
After that we get the chain function being stuck in a busy loop. This is fixed
by updating the minimum frame size inside the synchronization loop because the
subclass asks for more data in this way (hunk 2).
Finally, this leads to a very probable crash because the subclass can find a
valid frame with a size greater than the currently available data in the
adapter. This makes the subsequent gst_adapter_take_buffer call return NULL,
which is not expected (hunk 3).
Mark Nauwelaerts [Tue, 31 Mar 2009 14:07:46 +0000 (16:07 +0200)]
baseparse: Delay newsegment as long as possible.
If newsegment is sent (too) early, caps may not yet be fixed/set,
and downstream may not have been linked.
René Stadler [Wed, 18 Mar 2009 23:17:25 +0000 (01:17 +0200)]
aacparse: Fix busyloop when seeking. Fixes #575388
The problem is that after a discont, set_min_frame_size(1024) is called when
detect_stream returns FALSE. However, detect_stream calls check_adts_frame
which sets the frame size on its own to something larger than 1024. This is the
same situation as in the beginning, so the base class ends up calling
check_valid_frame in an endless loop.
René Stadler [Wed, 18 Mar 2009 22:32:40 +0000 (00:32 +0200)]
aacparse: Refactor check_valid_frame to expose broken code
Just moving code around and removing an unhelpful/misleading comment.
Stefan Kost [Fri, 27 Feb 2009 09:24:37 +0000 (11:24 +0200)]
baseparse: revert last change and properly fix
Baseparse internaly breaks the semantics of a _chain function by calling it with
buffer==NULL. The reson I belived it was okay to remove it was that there is
also an unchecked access to buffer later in _chain. Actually that code is wrong,
as it most probably wants to set discont on the outgoing buffer.
Stefan Kost [Thu, 26 Feb 2009 09:02:06 +0000 (11:02 +0200)]
baseparse: remove checks for buffer==NULL
Accordifn to docs for GstPadChainFunction buffer cannot be NULL. If we would
leave the check, we would also need more such check below.
René Stadler [Tue, 10 Feb 2009 22:15:43 +0000 (00:15 +0200)]
aacparse: Fix license specified in plugin details.
Jan Schmidt [Fri, 30 Jan 2009 18:18:10 +0000 (18:18 +0000)]
Fix the return value of the default parse_frame function.
Fix the return value of the default parse_frame function in both
copies of GstBaseParse
Stefan Kost [Fri, 23 Jan 2009 14:00:10 +0000 (16:00 +0200)]
Log aac details found in codec_data.
Wim Taymans [Thu, 13 Nov 2008 17:24:58 +0000 (17:24 +0000)]
gst/aacparse/gstaacparse.c: Don't autoplug aacparse until it works.
Original commit message from CVS:
* gst/aacparse/gstaacparse.c: (plugin_init):
Don't autoplug aacparse until it works.
Stefan Kost [Thu, 13 Nov 2008 15:20:15 +0000 (15:20 +0000)]
tests/check/: Add unit tests for new parsers.
Original commit message from CVS:
* tests/check/Makefile.am:
* tests/check/elements/aacparse.c:
* tests/check/elements/amrparse.c:
Add unit tests for new parsers.
Stefan Kost [Thu, 13 Nov 2008 14:21:39 +0000 (14:21 +0000)]
gst/: Fix baseparse type name.
Original commit message from CVS:
* gst/aacparse/gstbaseparse.c:
* gst/amrparse/gstbaseparse.c:
Fix baseparse type name.
Stefan Kost [Thu, 13 Nov 2008 12:59:34 +0000 (12:59 +0000)]
Add two new baseparse based parsers (aac and amr) from Bug #518857.
Original commit message from CVS:
* configure.ac:
* gst/aacparse/Makefile.am:
* gst/aacparse/gstaacparse.c:
* gst/aacparse/gstaacparse.h:
* gst/aacparse/gstbaseparse.c:
* gst/aacparse/gstbaseparse.h:
* gst/amrparse/Makefile.am:
* gst/amrparse/gstamrparse.c:
* gst/amrparse/gstamrparse.h:
* gst/amrparse/gstbaseparse.c:
* gst/amrparse/gstbaseparse.h:
Add two new baseparse based parsers (aac and amr) from Bug #518857.
Havard Graff [Sun, 20 Mar 2011 00:08:38 +0000 (01:08 +0100)]
jitterbuffer: Make src_query MT-safe
It is possible that the element might be going down while the event arrives
Sebastian Dröge [Fri, 8 Apr 2011 13:22:47 +0000 (15:22 +0200)]
jpegdec: Unref event if the parent element disappeared
Sebastian Dröge [Fri, 8 Apr 2011 13:22:19 +0000 (15:22 +0200)]
jitterbuffer: Unref event if the parent element disappeared
Havard Graff [Mon, 21 Mar 2011 15:04:34 +0000 (16:04 +0100)]
jpegdec: Make upstream events MT-safe
Havard Graff [Mon, 21 Mar 2011 15:04:34 +0000 (16:04 +0100)]
jitterbuffer: Make upstream events MT-safe
Sebastian Dröge [Fri, 8 Apr 2011 13:20:51 +0000 (15:20 +0200)]
rtp: Unref events if the parent element disappeared
Ole André Vadla Ravnås [Thu, 6 Jan 2011 17:24:36 +0000 (18:24 +0100)]
rtpmanager: fix pad callbacks so they handle when parent goes away
1) We need to lock and get a strong ref to the parent, if still there.
2) If it has gone away, we need to handle that gracefully.
This is necessary in order to safely modify a running pipeline. Has been
observed when a streaming thread is doing a buffer_alloc() while an
application thread sends an event on a pad further downstream, and from
within a pad probe (holding STREAM_LOCK) carries out the pipeline plumbing
while the streaming thread has its buffer_alloc() in progress.
Havard Graff [Fri, 26 Nov 2010 14:20:04 +0000 (15:20 +0100)]
rtpsession: make iterate_internal_links MT-safe
Sebastian Dröge [Fri, 8 Apr 2011 12:35:04 +0000 (14:35 +0200)]
Revert "Pulsesink: Allow chunks up to bufsize instead of segsize"
This reverts commit
1e2c1467ae042a3c6bb1a6bc0c07aeff13ec5edb.
The commit causes pulsesink to ignore the latency-time baseaudiosink property.
Alexey Fisher [Fri, 8 Apr 2011 09:13:07 +0000 (11:13 +0200)]
rtpspeexpay: Do not transmitt samples with GAP flag
If we get GAP samples, there is no need to transmitt it.
In some situations, microphone is muted, we can drop net traffick
usage to ~1 kbit/s. Without patch it will stay ~20 kbit/s
Alexey Fisher [Fri, 8 Apr 2011 09:11:58 +0000 (11:11 +0200)]
speexenc: Use speex intern silence detection
Speex has build in silence detection. If speex_encode_int returns 0,
than there is silence and sample do not need to be transmitted.
This work only if vbr=1 and dtx=1 optionas are enabled.
So if we get 0, we add GAP flag to the sample.
Wim Taymans [Tue, 5 Apr 2011 15:12:28 +0000 (17:12 +0200)]
rtspsrc: handle * control correctly
Parse session control attributes when no media control attribute is
present. Threat * control attributes as an empty string, just like the
spec says.
Fixes #646800
Sebastian Dröge [Tue, 5 Apr 2011 12:28:54 +0000 (14:28 +0200)]
matroskamux: Add support for A-Law and µ-Law
Fixes bug #646567.
Jon Nordby [Tue, 5 Apr 2011 07:44:01 +0000 (09:44 +0200)]
jack: Fix build with jack 0.120.1
9544622674c0d0a3147a9b51145159b02eec68e9 checked
for 0.120.2 and later, but the deprecation was introduced in
0.120.1
Stefan Kost [Tue, 5 Apr 2011 09:05:19 +0000 (12:05 +0300)]
docs: fix docuemntation warnings (and reindent)
Alessandro Decina [Mon, 4 Apr 2011 15:34:17 +0000 (17:34 +0200)]
videomixer: update orc dist files
Stefan Kost [Mon, 4 Apr 2011 12:57:10 +0000 (15:57 +0300)]
Automatic update of common submodule
From
1ccbe09 to
c3cafe1
Arun Raghavan [Tue, 1 Mar 2011 08:38:12 +0000 (14:08 +0530)]
pulsesink: Always call pa_stream_new_with_proplist()
pa_stream_new_with_proplist() can take a NULL proplist, so we don't need
to concern ourselves with whether it's NULL or not.
Mark Nauwelaerts [Mon, 4 Apr 2011 09:33:10 +0000 (11:33 +0200)]
rtspsrc: perform post-flush state tricks downstream to upstream
... so downstream is set when upstream resumes data flow.