Commit graph

4225 commits

Author SHA1 Message Date
Wim Taymans
e3479630ae rtpbin: rename some variables for less confusion 2010-09-06 11:01:57 +02:00
Wim Taymans
0f59664c6a rtpjitterbuffer: move comment where it belongs 2010-09-06 11:01:57 +02:00
Wim Taymans
4fd81747f3 session: minor cleanups
Make clock snapshots more accurate by only sampling the same clock once.
2010-09-06 11:01:57 +02:00
Thijs Vermeir
51020549f0 rtpbin: add use-pipeline-clock property
With this property RTCP SR NTP times can be based
on the system clock (maybe synced with ntpd) or the
current pipeline clock.

https://bugzilla.gnome.org/show_bug.cgi?id=627796
2010-09-06 11:01:57 +02:00
Wim Taymans
3bae70ceea rtspext: stop configuration on first failure
Stop the configuration of a stream as soon as some of the extensions return
FALSE.

Fixes #581294
2010-09-06 11:01:57 +02:00
Wim Taymans
6660817af1 multifdsink: use refcount to count host/port duplicates
Instead of adding multiple client structures for the same host/port pair, use a
refcount.
Add a send-duplicates feature that allows you to disable sending multiple copies
of the same packet to the same host when it was added multiple times. The
send-duplicates property is by default set to TRUE for backwards compatibility
although it is very likely that this is not desired behaviour.
2010-09-06 10:45:28 +02:00
Wim Taymans
e4f8144bbf rtspsrc: implement custom event handler
Extend the _push_event() function so that it can also send events to the udp
sources when asked.
Implement a custum send_event function that correctly dispatches the downstream
events in TCP mode. This fixes sending EOS to rtspsrc and have it push the EOS
downstream.
2010-09-06 10:45:23 +02:00
Wim Taymans
fadade4d4a jpegdepay: handle DISCONT and reset state
Put a DISCONT event on the next output buffer when the input buffer had a
DISCONT.
Make sure we clear our adapter and reset our state before going to PAUSED.
Free the qtables.

Fixes #626869
2010-09-06 10:23:07 +02:00
Wim Taymans
3ec0d6b245 g729pay: extend from right parent 2010-09-06 10:23:07 +02:00
Stefan Kost
3b91ea7c81 qtdemux: use GST_BOILERPLATE macro 2010-09-06 09:57:58 +03:00
Stefan Kost
1c47115b8e videmixer: add a example showing how to use the child properties
Show how to position and set the alpho of the videos on gst-launch.
2010-09-06 09:57:57 +03:00
Stefan Kost
77fe8c151a spectrum only aggregate magnitude/phase if user asks for it 2010-09-06 09:53:00 +03:00
Stefan Kost
0dca0becb2 spectrum: improve performance with local vars
Use 'input' instead of 'spectrum->input' which was intende already (variable
exists, but not used everywhere). Also use a local version of
'spectrum->input_pos'.
2010-09-06 09:53:00 +03:00
Stefan Kost
8beead14d0 spectrum: code cleanup
More comments and logging. Extract one complex condition to a variable. Reorder
some code for readability.
2010-09-06 09:53:00 +03:00
Stefan Kost
50a139de85 spectrum: improve property setter
consistently only update if the property actualy changed the value. Do it
without reading the gvalue twice. No need to reset the spectrum analyzer for
threshold changes.
2010-09-06 09:53:00 +03:00
Stefan Kost
61f22f4379 spectrum: add helper to only flush ringbuffer data without resetting the fft
Reduces some duplicated code as well.
2010-09-06 09:53:00 +03:00
Stefan Kost
34bdec3d58 spectrum: more comments 2010-09-06 09:53:00 +03:00
David Schleef
738e092d4e deinterlace: Document methods with bad quality 2010-09-05 22:23:58 -07:00
David Schleef
9071cc8748 deinterlace: initialize all deinterlace class members
This fixes UYVY deinterlacing.
2010-09-05 22:23:58 -07:00
David Schleef
85aed94676 videomixer: orc_init() doesn't need to be called
There's no need to call orc_init() unless you're using the Orc
API directly.  All code created by orcc is guaranteed to work
without calling orc_init().
2010-09-05 18:45:21 -07:00
David Schleef
6143a60bdb deinterlace: Fix greedyl Orc implementation
To agree with the previous C/asm code.
2010-09-05 18:42:59 -07:00
Thiago Santos
de8fda9cc2 videomixer2: Fail when caps are incompatible
Do not forget to return false when caps are incompatible.
2010-09-05 22:34:36 -03:00
Thiago Santos
8435529073 videomixer: Only init orc if it is available
Put some ifdef around orc_init to prevent build errors
2010-09-05 20:56:52 -03:00
David Schleef
6584c75afe deinterlace: Update disted Orc files 2010-09-04 12:46:31 -07:00
David Schleef
f35d546c71 deinterlace: remove assembly code in favor of orc 2010-09-04 12:39:11 -07:00
David Schleef
02196850dd deinterlace: implement greedy in Orc 2010-09-04 12:39:11 -07:00
David Schleef
294d5c48da update disted Orc files 2010-09-04 11:43:21 -07:00
Thibault Saunier
08fd719898 alphacolor: Fix classification
This is no effect but a converter. Fixes bug #628608.
2010-09-04 14:55:43 +02:00
Sebastian Dröge
e79742205c videomixer2: Add documentation and add to the docs 2010-09-04 14:55:43 +02:00
Sebastian Dröge
bcfd60a8d2 videomixer2: Add videomixer2 element
This is based on collectpads2 and is synchronizing
all streams based on the running time.

New features compared to old videomixer:
 * Synchronizing frames on the running time
 * Improved and simplified negotiation
 * Full QoS support
 * Variable framerate support

Fixes bug #626048, #624905.
2010-09-04 14:52:11 +02:00
Pavel Kostyuchenko
6940559c46 matroskademux: Relax parsing of date tags
Before we required a complete date in matroskademux but in
id3demux for example only the year or year and month was possible too.

Fixes bug #628454.
2010-09-04 14:52:11 +02:00
Sebastian Dröge
55a52262d3 wavparse: Don't use GST_FLOW_IS_FATAL() 2010-09-04 14:52:10 +02:00
Sebastian Dröge
d224251df4 rtspsrc: Don't use GST_FLOW_IS_FATAL() and GST_FLOW_IS_SUCCESS() 2010-09-04 14:52:10 +02:00
Sebastian Dröge
7fe34f3889 qtdemux: Don't use GST_FLOW_IS_FATAL() 2010-09-04 14:52:10 +02:00
Sebastian Dröge
e8743b3789 matroskademux: Don't use GST_FLOW_IS_FATAL() 2010-09-04 14:52:09 +02:00
Sebastian Dröge
1243b76df7 rndbuffersize: Don't use GST_FLOW_IS_FATAL() 2010-09-04 14:52:09 +02:00
Sebastian Dröge
78eca34a6d flvdemux: Don't use GST_FLOW_IS_FATAL() 2010-09-04 14:52:09 +02:00
Sebastian Dröge
1ce0b2dfc7 avidemux: Don't use GST_FLOW_IS_FATAL()
And document why wrong-state doesn't need an error message.
2010-09-04 14:52:09 +02:00
Sebastian Dröge
77c7f5fdcd videomixer: Update disted ORC files 2010-09-04 14:52:09 +02:00
Sebastian Dröge
6da14d0c41 videomixer: Optimize ARGB blending and implement BGRA blending with orc
This now means, that we have absolutely no handwritten assembly anymore
in videomixer and it's also faster now when using SSE.
2010-09-04 14:52:09 +02:00
David Schleef
7cfa519547 videomixer: Add orc implementation for blending
videomixer: Add orc implementation for blending
2010-09-04 14:52:08 +02:00
David Schleef
1ace738c3a videomixer: Fix example pipelines
videomixer: Fix example pipelines
2010-09-04 14:52:08 +02:00
Sebastian Dröge
86403e85c5 imagefreeze: Fix another subtle race condition related to starting the srcpad task
Due to a seek the srcpad task could be started in rare circumstances although
it shouldn't be started anymore because no upstream buffer is available.
2010-09-04 14:52:08 +02:00
Sebastian Dröge
e51fe6c181 imagefreeze: Protect the flushing-seek variable by the srcpad's stream lock
This fixes a subtle race condition, that caused bufferalloc to fail
with wrong-state due to a seek but caused it to be not retried as
it should.
2010-09-04 14:52:08 +02:00
Sebastian Dröge
d8ef9bb691 imagefreeze: Always generate a perfectly timestamped stream
Before there could be rounding errors when calculating the duration,
resulting in timestamp + duration being smaller than the next buffer's
timestamp.
2010-09-04 14:52:07 +02:00
Sebastian Dröge
95f5b494fa wavparse: Post an error message if EOS happens before valid input is found
Fixes bug #627341.
2010-09-04 14:52:06 +02:00
Sebastian Dröge
44a5cb4313 avidemux: Send close newsegment event from the streaming thread 2010-09-04 14:52:06 +02:00
Sebastian Dröge
62dd7c4efd imagefreeze: Retry bufferalloc if it was aborted with WRONG_STATE because of a flushing seek 2010-09-04 14:52:05 +02:00
Sebastian Dröge
dffab828c6 imagefreeze: Return GST_FLOW_UNEXPECTED when getting a second buffer
This prevents upstream from pushing many useless buffers and makes
it go into EOS state.
2010-09-04 14:52:05 +02:00
Sebastian Dröge
134b1f0eee imagefreeze: Passthrough buffer allocations 2010-09-04 14:52:05 +02:00
Tim-Philipp Müller
b26897dd84 Release 0.10.25 2010-09-02 23:44:19 +01:00
David Schleef
4eee45debb deinterlace: use separate buffer metadata for fields
Call gst_buffer_make_metadata_writable() on buffers that are
duplicated into fields.  Fixes #627689.
2010-08-23 02:51:24 -07:00
Sebastian Dröge
9e981f6c2d 0.10.24.4 pre-release 2010-08-21 21:41:36 +02:00
Sebastian Dröge
90f273b165 imagefreeze: Send close segments when seeking only for non-flushing seeks and if we already sent a newsegment event
Fixes bug #626619.
2010-08-12 11:29:53 +02:00
Mark Nauwelaerts
8ea04c66b8 qtdemux: prevent reading past avc1 atom when parsing
... when one of the subatoms has a large/invalid size.

Fixes #626609.
2010-08-11 12:58:17 +02:00
Sebastian Dröge
19c8226c6d videomixer: Fix pipeline in the documentation
Make sure that we have the same color format on all streams, i.e. AYUV

Fixes bug #625452.
2010-08-06 19:24:56 +02:00
Sebastian Dröge
fc00857c82 videomixer: Move debug categories into the source files and add debug category for the blend functions 2010-08-04 19:43:08 +02:00
Wim Taymans
af70b300cc rtpmp4gpay: implement perfect timestamps
Use bitreader for parsing the config string
Reset state variables when going to READY
Parse frame length and use it to keep track of the rtptimestamps
2010-08-04 10:40:24 +02:00
Wim Taymans
29b32853d5 rtph263pdepay: allow more clock-rates as input
Although the spec says that the clock-rate should always be 90000, some rtsp
servers send different clock-rates so we must accept then in order to handle
those streams too.
2010-08-04 10:40:24 +02:00
Wim Taymans
d37c5e9021 L16depay: default to 1 channel
When we can't find any channel or encoding-params on the caps for dynamic
payload types, set the default number of channels to 1, as the spec says we
should.

See #623209
2010-08-04 10:40:24 +02:00
Wim Taymans
9dcfed0a5b rtspsrc: don't reuse udp sockets
Don't reuse sockets but make the udpsrc element fail the state change when the
socket is already in use. If we don't prevent reuse, we might end up using the same
port for different streams in some cases.

Fixes #622017
2010-08-04 10:40:23 +02:00
Wim Taymans
e739998adf udpsrc: add property to enable port reuse 2010-08-04 10:39:45 +02:00
Wim Taymans
ed80c1834c L16depay: use encoding-params for the channels
When parsing the number of channels, use the encoding-params property from the
RTP caps because that is where we can find the channels according to the spec.
Fall back to the channels property in the caps when needed.

Fixes #623209
2010-08-04 10:39:44 +02:00
Wim Taymans
e39d7f7359 rtspsrc: improve error and warning message
Improve error and warning message.

Fixes #622577
2010-08-04 10:39:44 +02:00
Mark Nauwelaerts
f1fe0e7157 rtpg729pay: avoid basertppayload perfect-rtptime mode
G729 packets may only occur intermittently (e.g. cn packets), and as such
do not allow for perfect-rtptime calculating rtp times based on frame or byte
count.  In particular, do not use rtp audio base payloader as base class, but
rather base payloader directly.
2010-08-02 13:05:05 +02:00
Mark Nauwelaerts
6405df0c50 rtph264pay: fix element leak 2010-08-02 13:04:41 +02:00
Mark Nauwelaerts
fadff26eec rtpmp4vdepay: fix buffer leak 2010-08-02 13:04:39 +02:00
Mark Nauwelaerts
99dd8fb921 avidemux: push mode; use proper movi offset for movi based index
Fixes #623357.
2010-07-29 17:19:22 +02:00
Thiago Santos
bef350bf34 qtdemux: Correctly parse mvhd atoms
Parse mvhd data according to its version to avoid failing
on valid files.
2010-07-29 10:00:15 -03:00
Thiago Santos
a15430a862 qtdemux: Fix the max/avg in btrt atom reading
According to ISO media base format, the max bitrate is the
first one, and the avg comes next.
2010-07-28 12:22:23 -03:00
Mark Nauwelaerts
8419df627b matroskademux: proper handling of streaming upstream without duration
Fixes #625371.
2010-07-28 14:45:25 +02:00
Tim-Philipp Müller
a0de5e8a4f matroskademux: initialize some variables to fix compiler warnings on OSX build bot 2010-07-26 18:33:09 +02:00
Arnaud Vrac
c6f47c34fb rtspsrc: add port-range property to rtspsrc
To support setups with firewall/ipsec, it is useful for an rtsp client to be
able to set the range of ports that can be used for rtp/rtcp reception.
Allows this by adding a "port-range" property to the rtspsrc element.

Fixes #625153
2010-07-26 17:47:35 +02:00
Andoni Morales Alastruey
e6d7e69844 qtdemux: set the pixel-aspect-ratio field also for par=1/1
https://bugzilla.gnome.org/show_bug.cgi?id=625302
2010-07-26 16:08:37 +02:00
Wim Taymans
8696d10a5b rtspsrc: fix memory leak in server request reply
The RTSP server rtspsrc is communicating with, sends a GET_PARAMETER request
periodically as a ping.  The code in gst_rtspsrc_handle_request forms an OK
response and sends, but doesn't call gst_rtsp_message_unset to free the memory
after sending the response.  This results in a constant slow memory leak.

Fixes #624770
2010-07-26 15:33:44 +02:00
Zaheer Abbas Merali
c00cd43e8b cpureport: remove bogus docs 2010-07-24 22:39:54 +01:00
Zaheer Abbas Merali
961ab6d4b2 debugutils: new element cpureport
cpureport posts bus messages after every buffer received of cpu used, system
clock time, buffer time
2010-07-24 22:37:11 +01:00
Mark Nauwelaerts
c626e90fda matroskademux: pull mode non-cue seeking
That is, in files that have no index (Cue), perform seek by scanning for
nearest cluster with timecode before requested position.  Scanning is done
as a combination of interpolation and sequential scan.

Fixes #617368.
2010-07-22 12:18:14 +02:00
Mark Nauwelaerts
4b76e95abe matroskamux: streamable files need no _finish
Fixes #624455.
2010-07-22 12:18:11 +02:00
Mark Nauwelaerts
f62c6ce5c8 avidemux: push mode; handle 0-size data chunks
Fixes #618535.
2010-07-22 11:46:51 +02:00
Sebastian Dröge
38124ef5e5 videomixer: Only reset QoS information and send a NEWSEGMENT event downstream for NEWSEGMENT events on the master pad 2010-07-21 10:23:30 +02:00
David Schleef
eb81574469 capsdebug: Add new element 2010-07-20 14:02:52 -07:00
Tim-Philipp Müller
819fb47b78 matroskamux: demote WARNING message to LOG level
It's not a warning.
2010-07-20 16:12:21 +01:00
Mark Nauwelaerts
fd959ca77f matroskademux: add missing argument in debug message 2010-07-16 18:05:21 +02:00
Mark Nauwelaerts
39268f10d3 matroskademux: remove bogus UNLOCK 2010-07-16 14:00:40 +02:00
Mark Nauwelaerts
65fdbe68ec qtdemux: also calculate PAR using track width and height for QT files
(... as opposed to only for ISO style files).

Fixes #624173.
2010-07-16 14:00:18 +02:00
Mark Nauwelaerts
16b57b49c9 matroskademux: handle bogus files storing ADTS AAC data 2010-07-16 13:59:22 +02:00
Mark Nauwelaerts
18f37ffc9a matroskademux: do not error out on a block with unknown tracknumber 2010-07-16 13:58:39 +02:00
Mark Nauwelaerts
bbded080e0 qtdemux: do not align reverse playback reference stream twice
Timestamp rounding issues could lead to going backwards 2 keyframe periods
(rather than only 1).  While this is not necessarily a problem, it might
potentially place additional (buffering) load on downstream and could be
avoided (because We Can).

Fixes #623629.
2010-07-16 13:58:34 +02:00
Mark Nauwelaerts
2a22e9d487 qtdemux: convert some more mov format timestamp to gst time 2010-07-16 13:58:21 +02:00
Mark Nauwelaerts
7955c01f19 avidemux: additional verification heuristics for VBR audio stream
Check for and override some header field(s) for reasonable values, according
to later expected use in calculations.
2010-07-16 13:58:12 +02:00
Alessandro Decina
d5a4da9a69 videobalance: Fix wrong lock order that could lead to a deadlock. Fixes #624331. 2010-07-16 12:45:35 +02:00
Arun Raghavan
8aed3176ce qtdemux: Fix order of bitrates in 'btrt' atom
There seems to be a bug in libmp4v2 that generates a MPEG4BitRateBox as
(bufferSizeDB, avgBitrate, maxBitrate) instead of (bufferSizeDB,
maxBitrate, avgBitrate), according to the spec. I used the mp4file
output while writing this code, so the order is wrong. This patches
fixes that.

https://bugzilla.gnome.org/show_bug.cgi?id=623654
2010-07-06 10:33:16 +01:00
Edward Hervey
fcf1995020 qtdemux: strip out bogus tags from XMP atom
https://bugzilla.gnome.org/show_bug.cgi?id=623366
2010-07-02 14:39:36 +02:00
Andrzej K. Haczewski
0b5172eb06 flvmux: Write duration at the correct position 2010-07-02 14:25:22 +02:00
Thijs Vermeir
244a35a226 rtpptdemux: fix memleak on custom downstream events
by not sending custom downstream event twice and fix memleak when
not handling the event

https://bugzilla.gnome.org/show_bug.cgi?id=623196
2010-06-30 12:39:09 +02:00
Tim-Philipp Müller
c66c3d354c wavparse: fix unportable printf format specifiers in commented out code
To avoid false positives when grepping for unportable specifiers.
2010-06-29 20:14:53 +01:00
Tim-Philipp Müller
cf8dddd5c7 goom: don't allocate 260kB struct on the stack
PluginInfo is quite a sizeable struct, let's not allocate it on the
stack, especially not if we're copying it over into another dynamically
allocated copy anyway.

Fixes #570761.
2010-06-28 14:59:25 +01:00
Tim-Philipp Müller
240dec038c gst: update orc files 2010-06-26 18:41:49 +01:00
Sebastian Dröge
8172c478aa matroskamux: Fix leaking of the streamheader buffers
gst_value_set_buffer() increases the refcount and doesn't
take ownership of the buffer.
2010-06-25 19:40:06 +02:00