Commit graph

4276 commits

Author SHA1 Message Date
Thiago Santos
52f5e95aee qtdemux: Parse uuid atoms in push mode
Parses uuid atoms in push mode when they are found, they might
contain xmp tags.

Also does a minor refactoring to put the global tags posting
into a single function instead of repeating it in 3 different
places.

Fixes #629839
2010-09-20 23:39:38 -03:00
Thiago Santos
9227352e31 qtdemux: Delay tags posting a little
Delay tags posting until we've parsed all the headers so
that the native and xmp tags get merged before posting

https://bugzilla.gnome.org/show_bug.cgi?id=629839
2010-09-20 22:37:26 -03:00
Thiago Santos
8d6cabf9c3 qtdemux: Parse xmp packet in uuid atom
xmp packet is placed into a top-level uuid atom for
isom/mp4 variants.

This patch makes qtdemux parse all top-level atoms
in pull-mode before starting to push data, making
it able to find those tags.

https://bugzilla.gnome.org/show_bug.cgi?id=629839
2010-09-20 22:37:26 -03:00
Wim Taymans
2c8b725591 rtpstats: printf format fixes 2010-09-17 11:07:52 +02:00
Wim Taymans
9cc24e1b94 rtppay: some printf format fixes 2010-09-17 11:07:02 +02:00
Alessandro Decina
3605bd454a qtdemux: fix logic when pushing EOS.
Don't check for return values when pushing EOS. Still post an error if EOS is
reached and no streams have been found.
2010-09-15 18:27:24 +02:00
Alessandro Decina
42cde1ba3c qtdemux: don't send EOS twice on the same pad. 2010-09-14 17:43:33 +02:00
Wim Taymans
604c6555a4 rtpjpegpay: cleanups for DRI markers
Protect against invalid DRI markers.
do some cleanups
2010-09-13 17:31:35 +02:00
American Dynamics
0f3151c73b gstrtpjpegpay: Added Define Restart Interval (DRI) Marker
Added ability to detect and respond to a JPEG-defined DRI marker
2010-09-13 16:47:23 +02:00
Olivier Crête
8e73da10b3 gstrtpsession: Split getting the caps into its own function 2010-09-13 16:25:42 +02:00
Wim Taymans
8e1c9b5b33 rtpbin: small cleanup. 2010-09-13 16:25:42 +02:00
Wim Taymans
d541f5e24d rtpsession: Small cleanups
Make the property description prettier.
Actually multiple the bandwidth with the fraction.
2010-09-13 15:51:20 +02:00
Olivier Crête
1f17b334ff rtpsession: Calculate RTCP bandwidth as a fraction of the RTP bandwidth
Calculate the RTCP bandwidth to be a fraction of the RTP bandwidth if it is
specified as a value between 0 and 1.
2010-09-13 15:51:20 +02:00
Wim Taymans
8381d9788d session: improve bandwidth recalculation
Also recalculate bandwidth when one of the source bandwidths changed.
Use the newly calculated bandwidth.
2010-09-13 15:51:20 +02:00
Olivier Crête
6f53a2b240 rtpsession: Add the option to auto-discover the RTP bandwidth 2010-09-13 15:51:19 +02:00
Thijs Vermeir
f38e37470a rtpbin: set use-pipeline-clock on correct GObject 2010-09-13 14:39:51 +02:00
Olivier Crête
94e87ef8ee rtpsession: Initialise the average scaled by 16 2010-09-13 13:10:19 +02:00
Wim Taymans
e6db74764b rtpsession: add running_time argument docs 2010-09-13 12:41:56 +02:00
Olivier Crête
00fd89c074 rtpstats: Rectify description of current_time in RTPArrivalStats
It is the current time, it is unrelated to when the packet was actually received.
2010-09-13 12:37:01 +02:00
Wim Taymans
cb6de429a0 rtpsession: compute the average correctly scaled 2010-09-13 12:31:40 +02:00
Olivier Crête
64e4ffa25b rtpsession: Count sent RTCP packets after they have been finished
If they are counted before calling gst_rtcp_buffer_end(), then the
size is way too big.
2010-09-13 12:13:23 +02:00
Olivier Crête
306ee454c6 gstrtpsession: Don't unref pads in finalize
The gstrtpsession object is not holding any reference to them directly
2010-09-13 12:10:11 +02:00
Wim Taymans
8f2d254e24 rtspsrc: don't clear sdp when set as uri
when we set the SDP with an uri, don't clear it when we go to READY.
2010-09-10 18:06:48 +02:00
Wim Taymans
7698d8bc4a rtspsrc: use sdp uri parse method
Use the sdp parse method that does proper uri escaping.
2010-09-10 18:02:04 +02:00
Mark Nauwelaerts
d8a27ebe3e rtpmparobustdepay: fix some mis-implementation
Also add some debug.
2010-09-10 13:26:43 +02:00
Mark Nauwelaerts
81773f9cce rtpmparobustdepay: properly insert dummy buffers 2010-09-10 13:26:31 +02:00
Wim Taymans
ae84ae1b36 rtspsrc: add rtsp-sdp protocol support
Allow setting an SDP with the rtsp-sdp:// url.

Based on patch from Marco Ballesio.

See #628214
2010-09-10 12:14:21 +02:00
Alessandro Decina
51c9ad0233 alphacolor: make passthrough work. 2010-09-10 11:35:58 +02:00
Stefan Kost
d569cd8195 mp4adepay: small logging cleanup and addition to debug config parsing 2010-09-09 21:49:43 +03:00
Wim Taymans
de4a7fc4c4 rtpjpegpay: improve debugging 2010-09-09 18:48:53 +02:00
Mark Nauwelaerts
075afb6693 rtpmparobustdepay: use valid bitrate for dummy frame 2010-09-09 16:33:29 +02:00
Mark Nauwelaerts
91a60245b7 matroskademux: QoS handling logic only applies to forward playback
Fixes #628894.
2010-09-08 17:51:34 +02:00
Sebastian Dröge
640cb863d4 rtpjpegpay: Fix uninitialized variable compiler warning
Fixes bug #629018.
2010-09-08 07:13:42 +02:00
Wim Taymans
bd43ac854a qtdemux: use older g_array_free
g_array_unref() is only since 2.22
2010-09-07 17:06:02 +02:00
Wim Taymans
2ed53fd77f rtpjpegpay: do some more sanitity checks
Protect some more against invalid input.
2010-09-07 16:40:08 +02:00
American Dynamics
a482677a14 jpegpay: handle corrupted jpeg better
Protect against corrupted jpeg input.
2010-09-07 15:20:12 +02:00
Wim Taymans
474c013051 rvawdepay: cleanup unused fields 2010-09-07 13:56:54 +02:00
Wim Taymans
6be0c7b762 vrawdepay: handle invalid payload better
Make sure we don't read more data than available in the input buffer.
Clip the input data into the output buffer.
2010-09-07 13:56:53 +02:00
Stefan Kost
988f228da7 rtpmp4adepay: grab the sampling arte and put into caps
This is needed to be able to mux the received audio into mp4 (in the case of
aac). Fixes #625825.
2010-09-06 21:54:25 +03:00
Tim-Philipp Müller
22560c473d rtp: mark constant tables as const 2010-09-06 14:40:02 +01:00
Mark Nauwelaerts
2953801a5f rtpamrpay: properly support perfect-rtptime 2010-09-06 14:47:05 +02:00
Mark Nauwelaerts
275e352a2e rtpamrpay: proper duration for multiple frame payload 2010-09-06 14:47:02 +02:00
Mark Nauwelaerts
f5bbc56745 rtpamr(de)pay: support AMR-WB SID frame 2010-09-06 14:46:59 +02:00
Mark Nauwelaerts
d1974e386a rtpg729pay: properly support perfect-rtptime 2010-09-06 14:46:56 +02:00
Mark Nauwelaerts
713719f705 qtdemux: improve framerate determining
Collect a limited number of starting sample durations and use the median of
those to determine caps framerate.
2010-09-06 14:45:43 +02:00
Mark Nauwelaerts
13b553bce7 matroskademux: attempt more resync upon (cluster) parse error
That is, if parse error occurs in state requiring to move to next cluster,
and doing so to the expected next position of cluster fails, then scan for a
next cluster from present position and resume from there.

Fixes #620790.
2010-09-06 14:45:40 +02:00
Mark Nauwelaerts
4d9c1e99f2 matroskademux: not so fatal error handling
If some bits out of place in block(group) parsing, forego and move to next.
Also skip large blocks in pull mode, but need to give up in push mode.

Fixes #626463.
Improves #620790.
2010-09-06 14:45:37 +02:00
Mark Nauwelaerts
680eb51b68 matroskademux: additional parse recovery
In particular, upon parse failure in one cluster, we may forego remaining
content and try resuming from next cluster onwards.

Fixes #620790.
2010-09-06 14:45:30 +02:00
American Dynamics
5999e8e716 rtspsrc: Add property to configure udpsrc buffer size
Add a new udp-buffer-size property to configure the buffer-size on the udpsrc
elements.

Fixes #628058
2010-09-06 12:22:11 +02:00
Wim Taymans
93228ccd52 rtpbin: add ntp-sync property
Add an ntp-sync property that will sync the received streams to the server
NTP time. This requires synchronized NTP times between the sender and receivers,
like with ntpd.

Based on patch from Thijs Vermeir.

Fixes #627796
2010-09-06 11:01:57 +02:00
Wim Taymans
f03fd91400 jitterbuffer: rename a variable to avoid confusion 2010-09-06 11:01:57 +02:00
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