Commit graph

4889 commits

Author SHA1 Message Date
Philip Jägenstedt
6cf398cdf3 matroskademux: don't crash if vorbis/theora codec data is missing
Error out properly in this case instead of crashing.

https://bugzilla.gnome.org/show_bug.cgi?id=632682
2010-10-23 14:05:46 +01:00
Mark Nauwelaerts
ca7870de49 rtspsrc: fix duration reporting
Init segment prior to storing duration info in it.

Fixes #632548.
2010-10-19 16:47:20 +02:00
David Schleef
e9d4710cc8 Update generated orc code 2010-10-15 14:02:57 -07:00
Olivier Crête
077a61932a rtpbin: Use the right constant to define the "use-pipeline-clock" property
The wrong #define was being used, now use the correct one.
2010-10-14 17:41:30 -04:00
Mark Nauwelaerts
4085f12058 ac3: demuxers provide framed output 2010-10-14 17:29:26 +02:00
Tim-Philipp Müller
7a8ebc4a79 matroskamux: reduce newsegment event spam and set discont flag where needed
Only send newsegment events with new positions downstream when actually
needed, instead of sending multiple newsegment events with new seek
positions in a row. Also set the discont flag on buffers after a
discontinuity.
2010-10-14 14:00:59 +01:00
Tim-Philipp Müller
84e47e579b matroskamux: set correct buffer offsets after seeks
Re-use the existing 'pos' field maintained by ebml writer to set
buffer offsets. This also makes sure that we set the right offsets
on buffers after a seek (e.g. when writing an index at the end).
2010-10-14 12:48:33 +01:00
Tim-Philipp Müller
6ff3dfe946 matroskamux: don't forward tag events downstream
Don't forward stream-specific tag events downstream (esp. not
before any newsegment event).x
2010-10-14 12:48:00 +01:00
Mark Nauwelaerts
c7a8d672a7 qtdemux: handle another mp4v variation
... including the glbl atom containing codec-data.
2010-10-13 17:26:33 +02:00
Stefan Kost
d8167e3071 various (gst): add a missing G_PARAM_STATIC_STRINGS flags 2010-10-13 18:00:28 +03:00
Stefan Kost
2975307f86 various: wrap property registration and add a single fixme for long desc. 2010-10-13 17:39:21 +03:00
Wim Taymans
9f8b56b974 h264depay: always mark the codec_data as keyframe
We need to mark the codec_data as a keyframe or else downstream decoders might
decide to skip it, waiting for a keyframe.

Fixes #631996
2010-10-13 11:48:49 +02:00
Zaheer Abbas Merali
6f0030f701 matroskamux: make buffer offsets a byte count rather than a buffer count 2010-10-13 07:17:24 +01:00
Tim-Philipp Müller
d65eb2b91a ext, gst: canonicalise property names where this wasn't the case
ie. "foo_bar" -> "foo-bar"
2010-10-12 16:04:21 +01:00
Thijs Vermeir
bcde8c1b29 rtpmpvpay: fix timestamping of rtp buffers
Incomming buffer is only pushed on the adapter at the end of the
handle_buffer function. But duration/timestamp of this buffer is already
taken into account for the current data in the adapter. This leads to
wrong rtp timestamps and extra latency.
2010-10-12 15:17:02 +02:00
Wim Taymans
ee7207aa3e rtspsrc: mark as a source
Mark the rtspsrc element as a source.
Requires 0.10.31.1 now
2010-10-11 15:12:51 +02:00
Sebastian Dröge
bcb4f50323 autodetect: Set GST_ELEMENT_IS_SOURCE flag on sources 2010-10-11 14:24:52 +02:00
Zaheer Abbas Merali
f012ab67cc matroskamux: set offsets on outgoing buffers 2010-10-10 14:44:43 +01:00
Robert Swain
6a6f90e745 deinterlace: Fix required fields logic
Both history_count and fields_required count from 1. As per the while loop
condition that follows this code, to perform the deinterlacing method, we need
history_count >= fields_required fields in the history. Therefore if we have
history_count < fields_required (not fields_required + 1), we need more fields.
2010-10-06 15:05:36 +02:00
Andoni Morales Alastruey
0bffae750b flvmux: resend onMetada tag when tags changes in streamable mode 2010-10-06 09:14:24 +02:00
Arun Raghavan
4a244e0d55 qtdemux: AAC codec_data can be > 2 bytes long
This fixes the assumption that DecoderSpecificInfo must be 2 bytes long
for AAC files. The specification allows HE-AAC to be explicitly
signalled in a backward compatible way. This is done by means of an
additional information after the regular AAC header. It is expected that
decoders that can play AAC but not HE-AAC will parse the header normally
and ignore extended bits, much as they do for the HE-AAC specific payload
in the actual stream.

https://bugzilla.gnome.org/show_bug.cgi?id=612313
2010-10-05 19:45:31 +01:00
Mark Nauwelaerts
bb9a8a9b7d matroskademux: only unref buffer when no longer needed for cluster scanning
Fixes #629047.
2010-10-05 16:03:10 +02:00
Mark Nauwelaerts
e0d11f0644 matroskademux: avoid infinite cluster scanning 2010-10-05 16:03:08 +02:00
Wim Taymans
49d5d8f69e goom: take duration into account when doing QoS
Take the duration of the frames into account so that we don't drop frames that
are only partially past the QoS deadline.
2010-10-05 12:23:15 +02:00
Wim Taymans
cd5f31f751 goom: use adapter for timestamping
Use the adapter timestamp code to get more accurate timestamps.
Fix latency calculation, we add our own latency in the worst case.
2010-10-05 12:23:15 +02:00
Andoni Morales Alastruey
4c2f5333bb icydemux: forward tag events
https://bugzilla.gnome.org/show_bug.cgi?id=630205
2010-10-04 20:10:02 +02:00
Wim Taymans
a060a65786 goom2k1: report our latency correctly
Fixes #631303
2010-10-04 19:01:03 +02:00
Wim Taymans
8c910a25fe goom2k1: add defines for default width/height/fps
Add some defines for the default width/height/fps instead of using different
values in different places.
2010-10-04 18:56:15 +02:00
Wim Taymans
418eae3ee3 goom: add latency compensation code.
Implement a latency query and report how much latency we will add to the
stream.
Alse make some defaults for the default width/height/framerate

Fixes #631303
2010-10-04 18:52:14 +02:00
Sebastian Dröge
a4c27169b6 rtp: Fix unitialized compiler warnings on OS X build bot
These warnings are wrong though, the variables are only used in
the cases where they *are* initialized by the bit reader.
2010-10-04 09:39:59 +02:00
Sebastian Dröge
c1877deee0 rtpg722pay: Fix uninitialized variable compiler warning
The clock rate is always 8000 Hz according to the RFC and
the sampling rate must always be 16000 Hz.
2010-10-03 23:49:08 +02:00
Vladimir Eremeev
8bf7381385 rtpjitterbuffer: improve article reference in comment block
https://bugzilla.gnome.org/show_bug.cgi?id=631082
2010-10-01 18:07:03 +01:00
Arun Raghavan
c65305d70e qtdemux: Use pbutils for H.264 profile/level extraction
The functions used to extract this data have been moved to gstpbutils to
facilitate reuse.

https://bugzilla.gnome.org/show_bug.cgi?id=617318
2010-10-01 17:07:36 +01:00
Arun Raghavan
9e786de9c8 matroskademux: Use pbutils for H.264 profile/level extraction
The functions used to extract this data have been moved to gstpbutils to
facilitate reuse.

https://bugzilla.gnome.org/show_bug.cgi?id=617318
2010-10-01 16:58:46 +01:00
Arun Raghavan
1a37a62454 qtdemux: Export MPEG-4 video profile and level in stream caps
This uses gstpbutils to extract the profile and level from the video
object sequence and adds this to stream caps. This can be used as
metadata and for fine-grained decoder selection.

https://bugzilla.gnome.org/show_bug.cgi?id=616521
2010-10-01 14:41:44 +01:00
Tim-Philipp Müller
64753bdbe8 qtdemux: fix aac channel override based on codec data for 7.1 case 2010-10-01 11:42:15 +01:00
Arun Raghavan
845a3d6c3d qtdemux: Export AAC profile and level in caps
This exports the AAC profile and level in caps for use as metadata and
(eventually) for more fine-grained selection of decoders at
caps-negotiation time. (Doesn't work for HE-AAC yet though.)

https://bugzilla.gnome.org/show_bug.cgi?id=612313
2010-10-01 11:41:53 +01:00
Wim Taymans
78e4a260b4 rtp: add G722 pay and depayloader 2010-09-30 18:34:36 +02:00
Thijs Vermeir
2c2c90a723 rtpjitterbuffer: update link to documentation 2010-09-30 12:08:49 +02:00
Tim-Philipp Müller
a461b94629 wavenc: miniscule code clean-up
GST_CLOCK_TIME_NONE is not something that should be used in connection with
GST_FORMAT_BYTES.
2010-09-29 18:53:26 +01:00
Mark Nauwelaerts
8d69663026 avidemux: reverse playback; prevent overlap of subsequent fragments 2010-09-29 11:00:08 +02:00
René Stadler
0cfe24d132 rtspsrc: fix missing null-terminator in protocols array
Fixes random crash regression from commit ae84ae.
2010-09-28 16:21:48 +03:00
Wim Taymans
ef29a59903 rtspsrc: don't add /UDP in the transport, it's the default
don't add the default UDP lower-transport, some servers don't seem to like it.

Fixes #630500
2010-09-24 16:26:20 +02:00
Pascal Buhler
7a8c2a4b8a rtpmanager: packet lost should not be a warning. It happens all the time... 2010-09-24 16:00:03 +02:00
Pascal Buhler
ca6a512b5e rtpbin: Make cleaning up sources in rtp_session_on_timeout MT safe
Using _foreach_remove on the hashtable, while releasing the lock protecting
that table inside the callback is not a good idea. The hashtable might
then change (a source removed or added) while signals like on_timeout
are being sent.

This solution makes a copy of the table, performs the _foreach without
actually removing any sources, but marks them for removal on a second
iteration with the real list, but this time not letting go of the lock.

Fixes #630452
2010-09-24 15:38:00 +02:00
Edward Hervey
87a9d7f679 id3demux: Sanitize id3 frame names
This is similar to what is done in qtdemux. Avoids providing invalid
structure/tags names
2010-09-24 15:27:24 +02:00
Edward Hervey
c6c941f315 apedemux: Skip empty tags
Avoid creating bogus string tags. Also added logging of the string
values of the tag name and value.
2010-09-24 15:27:24 +02:00
Pascal Buhler
bd8d80a8e4 rtpbin: Handle rysnc of iterator when looking for free pad name
If a new pad was added while iterating then a pad could be
returned that was already in use.

Fixes #630451
2010-09-24 14:10:26 +02:00
Wim Taymans
8337c89c74 rtpsession: fix compilation 2010-09-24 14:10:26 +02:00
Trond Andersen
800b4bdb26 rtpbin: Unlock before adding pad in new_payload_found
Holding internal locks while potentially calling out is a source
of deadlocks, and in this case the application might subscribe to the
pad-added signal.

Fixes #630449
2010-09-24 14:00:11 +02:00
Havard Graff
062568a9f5 rtpsession: relax third-party collision detection
If the source has been inactive for some time, we assume that it has
simply changed its transport source address. Hence, there is no true
third-party collision - only a simulated one.

Fixes #630447
2010-09-24 13:56:56 +02:00
Wim Taymans
ce007b244e rtpsource: whitespace fixes 2010-09-24 13:50:02 +02:00
Wim Taymans
c5203a479b rtpsource: simplify the rate estimation some more 2010-09-24 13:48:50 +02:00
Havard Graff
0fa589a3dd rtpmanager: provide additional statistics 2010-09-24 13:26:10 +02:00
Tim-Philipp Müller
730cfd609a equalizer: fix class definitions
Class structures must be based on the parent class struct, not on
the parent instance struct.
2010-09-23 21:22:45 +01:00
Tim-Philipp Müller
4451718eff videomixer2: pre-register pad class properly with g_type_class_ref
Fix code to match the comment. Also, there's no need to register the
background enum type again, this is already done via install_property.
2010-09-23 21:22:45 +01:00
Havard Graff
3e894a1f29 level: avoid division by zero on silence
Fixes bug #630458.
2010-09-23 21:19:01 +02:00
Wim Taymans
9e7b890a22 flvdemux: parse and use cts
For H264, there is an extra header containing the CTS, which is a timestamp
offset that should be applied to the PTS. Parse this value and use it to adjust
the pts.

Fixes #630088
2010-09-23 16:46:31 +02:00
Wim Taymans
77f02c2d7e flvdemux: improve pts debugging 2010-09-23 16:45:41 +02:00
Edward Hervey
6ce6ad41d5 qtdemux: Don't post tags if there are none
And make all code go through _post_global_tags.
2010-09-22 12:56:39 +02:00
Wim Taymans
f5c65a919f rtph264depay: refactor and simplify AU merging
Move the processing of the NALU to a separate method.
Simplify the merging of NALU into AU and use common code when possible.
2010-09-22 12:41:23 +02:00
Sebastian Dröge
72b7685bef shapewipe: Force format to AYUV in the example pipeline for the same reason 2010-09-21 19:15:22 +02:00
Sebastian Dröge
a1890f8d44 shapewipe: Improve debugging and immediately return empty caps from the getcaps functions 2010-09-21 19:15:22 +02:00
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
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
Tim-Philipp Müller
19216e7218 matroska, videobox, videofilter: fix compiler warnings when debugging is disabled in gstreamer
Fixes unused variable warnings when GStreamer's debugging system has been disabled.
2010-06-24 16:34:03 +01:00
Michael Grzeschik
b26785d9f9 reset the have_index flag at transition PAUSED_TO_READY
If we restart the Stream in the case of doing a transition from
PAUSED_TO_READY and back with READY_TO_PAUSED aso. the duration of the video
will get calculated even if we have a avi header with that information.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
2010-06-23 21:40:50 +02:00
Sebastian Dröge
7e0ea232d0 videobox: Fix negotiation for I420/YV12
We don't support conversion into *all* YUV
formats for them, only into I420/YV12/AYUV.

Fixes bug #622501.
2010-06-23 20:30:11 +02:00
Mark Nauwelaerts
0a2d9a2269 wavparse: proper closing segment construction
Fixes #618982.
2010-06-22 15:37:46 +02:00
Wim Taymans
5534c7d91d rtspsrc: fix locking after moving things around 2010-06-18 20:04:08 +02:00
Wim Taymans
651c82a01f rtspsrc: make some errors as warnings
Avoid spamming the testsuite with these error debug lines.
2010-06-18 16:56:19 +02:00
Keith Nicholson
0773eed960 udpsrc: fix multicast support on windows builds
On windows builds, sets source address for bind to INADDR_ANY, while
maintaining the original multicast group address for subsequent join.

Fixes #595978
2010-06-18 16:49:08 +02:00
Wim Taymans
e25cdc31d3 udp: make url parsing compatible with VLC syntax
Skip everything before the @ sign in the url location. VLC uses that as the
remote address to connect to (but we ignore it for now). This makes our udp urls
compatible with the ones used by VLC.

Fixes #597695
2010-06-18 16:16:28 +02:00
Wim Taymans
966ced2208 rtspsrc: factor out the connections
Keep a global connection for aggregate control but also keep stream connections
for non-aggregate control.
Add some helper methods to connect/close/flush the connections.
2010-06-18 15:13:06 +02:00
Wim Taymans
ddc214d322 rtspsrc: add non-aggregate control
Add non-aggregate control.
Separate retrieving thr SDP from parsing and setting up the streaming from the
SDP.
2010-06-18 15:13:06 +02:00
Zaheer Abbas Merali
8269a028a0 flvmux: add documentation for streamable property 2010-06-17 17:24:22 +01:00
Sebastian Dröge
968ce701a7 matroskademux: Fix an uninitialized variable compiler warning 2010-06-17 10:44:33 +02:00
Sebastian Dröge
f44e5e630b ebml-read: Zero-sized ints/uints/floats have a value of 0 according to the EBML spec 2010-06-16 21:02:13 +02:00
Sebastian Dröge
e4a5f0911e matroskademux: Fix possible NULL pointer dereference and assertion that could be caused by invalid files 2010-06-16 20:02:58 +02:00
Sebastian Dröge
20b9022289 matroskademux: Clean up/fix some minor error handling bugs 2010-06-16 19:50:34 +02:00
Sebastian Dröge
711e0cc90b audioiirfilter: Fix possible NULL pointer dereference 2010-06-16 19:24:54 +02:00
Sebastian Dröge
1f545da974 warptv: Don't use floats as loop counters 2010-06-16 19:20:02 +02:00
Mark Nauwelaerts
a69e419c8e avidemux: improve audio vbr detection
Subsequent entry time calculations use blockalign value to determine
number of frames per chunk, and blockalign == 1 is then most unlikely to result
in reasonable values (which also aligns with "spec").
2010-06-16 15:53:47 +02:00
Mark Nauwelaerts
6a9c70486f rtph264depay: tweak DELTA_UNIT labeling
Consider SPS, PPS and IDR as keyframe, all others as DELTA_UNIT.

See #620154.
2010-06-16 15:53:45 +02:00
Sebastian Dröge
e49d8a286b avidemux: Assign variables before printing them 2010-06-15 20:04:35 +02:00
Sebastian Dröge
715eb33d24 wavparse: Initialize uninitialized variable 2010-06-15 20:00:28 +02:00
Edward Hervey
342543325b matroska: Fix unitialized variable 2010-06-15 17:20:20 +02:00
Wim Taymans
e6ec5cce2e rtspsrc: respect aggregate control attributes
when the SDP specifies an aggregate control url, use that for playback
control.

Fixes #619531
2010-06-14 19:24:14 +02:00
Sebastian Dröge
ff755250c3 goom: Call orc_init() before trying to get target flags 2010-06-14 15:38:02 +02:00
Sebastian Dröge
a11b271bf4 deinterlace: Call orc_init() before trying to get target flags 2010-06-14 15:38:02 +02:00
Zaheer Abbas Merali
e49c31fd25 matroskamux: revert change that set a reserved flag on the Block.
So matroska's Block structure has no keyframe flag, only the SimpleBlock has it.
To detect keyframes in Blocks, it is just the BlockGroup container that needs
to have a ReferenceBlock attached if it is a delta frame in video.
2010-06-14 14:28:53 +01:00
Mark Nauwelaerts
dde3825405 rtph264depay: also consider AU and SEI NALUs as DELTA_UNIT
Fixes #620154.
2010-06-14 11:49:42 +02:00
Stefan Kost
a1da36d5a6 build: include stdio.h for sscanf 2010-06-12 21:26:16 +03:00
Tim-Philipp Müller
97a2111c58 rtpmparobustdepay: don't try to unref NULL buffers
Fixes generic/states unit test.
2010-06-11 21:18:52 +01:00
Tim-Philipp Müller
754f3a315b wavparse: use typefind functions to check if PCM data contains dts stream
Use new dts audio typefinder from -base to check if the PCM data
contains a dts stream. This way we recognise more varieties more
reliably and also detect the dts stream if there isn't a frame
sync right at the start of the data.

Fixes #413942.
2010-06-11 20:50:23 +01:00
Tim-Philipp Müller
12ec2c3d6d wavparse: set buffer offsets before using the buffer for the first time
gst_type_find_helper_for_buffer() will need the correct offset
set on the buffer (ie. 0) and not the byte offset we started
pulling the data from.
2010-06-11 20:47:22 +01:00
Mark Nauwelaerts
815e06ba55 rtp: add mpa-robust depayloader
Fixes #589997.
2010-06-11 11:45:48 +02:00
Mark Nauwelaerts
de5cb168ee avimux: fix avi header bytewriting
... by using proper offsets for tag list writing.
Also use _reset rather than _free and consistently use bytewriter position.

See #619293.
2010-06-11 10:57:41 +02:00
Sebastian Dröge
e84136ba03 videomixer: Port most blending related functions to orc
Only remaining MMX implementation is the ARGB/BGRA/AYUV blending
for which we first need the orc compositing opcodes.
2010-06-10 22:46:00 +02:00
Sebastian Dröge
e87802efdd videomixer: Replace some tabs by spaces 2010-06-10 22:46:00 +02:00
Zaheer Abbas Merali
823a514161 matroskamux: some non-delta buffers were not marked as keyframes 2010-06-10 01:32:15 +02:00
Zaheer Abbas Merali
45f711044f matroskamux: change 2 second limit per cluster
Start cluster at every keyframe or when we would overflow the previous
cluster's relative timestamp field. This would avoid as much as possible
starting clusters at non-keyframes.
2010-06-10 01:32:15 +02:00
Sebastian Dröge
b7d435911f auto{audio,video}sink: Don't lose the GST_ELEMENT_IS_SINK flag after removing the child 2010-06-09 20:23:16 +02:00
Zaheer Abbas Merali
f22c7d0f7c matroskamux: change indexed property to streamable
The property streamable has reverse semantics to indexed.
2010-06-09 15:42:19 +02:00
Thiago Santos
c27dc49bf7 flvmux: Rename unreleased property 'indexed' to 'streamable'
Rename 'indexed' to 'streamable' for a better name while it
hasn't been released
2010-06-09 09:13:09 -03:00
David Schleef
bd893e4dfb level: remove unused liboil include 2010-06-08 17:25:35 -07:00
David Schleef
b83cd99aeb videomixer: liboil to orc conversion 2010-06-08 17:25:35 -07:00
David Schleef
4e84ab1f87 videobox: liboil to orc conversion 2010-06-08 17:25:35 -07:00
David Schleef
2cb6cfed22 goom: liboil to orc conversion 2010-06-08 17:25:34 -07:00
David Schleef
9ff3ef0c92 deinterlace: orcify some deinterlacing methods 2010-06-08 17:25:34 -07:00
David Schleef
f14972bf20 deinterlace: convert from liboil to orc 2010-06-08 17:25:34 -07:00
Zaheer Abbas Merali
44c911d255 flvmux: Add indexed property to replace disabled is-live.
Add indexed property to be the negation of what the disabled is-live property
was. Fixes bug #613066.
2010-06-08 14:12:16 +02:00
Sebastian Dröge
48934764e7 flvdemux: Don't handle non-TIME seeks
Don't send them upstream because for upstream a BYTES seek
might make sense but is completely wrong because upstream
can't seek to a byte position of the audio or video stream.

Also don't build the index in push mode for non-TIME seeks,
things will go wrong here otherwise.
2010-06-07 18:34:11 +02:00
Sjoerd Simons
c39e82a1ce Cope with short startcodes in the h264 bytestream 2010-06-07 10:28:06 +02:00
Sebastian Dröge
f16ed4a91c gst: Don't use GST_DEBUG_FUNCPTR for GObject vfuncs 2010-06-06 17:52:40 +02:00
Philip Jägenstedt
21c84e23e8 matroskademux: refactor delta unit handling
This allows us to skip delta units earlier and is a bit clearer in my
opinion. It also makes only video buffers ever be delta units, not
just for SimpleBlock as before.
2010-06-06 15:38:00 +02:00
Sebastian Dröge
6e9e48c0b9 flvdemux: Clear adapter on discontinuities 2010-06-06 15:17:00 +02:00
Philip Jägenstedt
b2ff8042d3 matroskademux: Ignore keyframe flag for non-video streams
When the keyframe bit of SimpleBlock Flags wasn't set, the buffer was being
marked with GST_BUFFER_FLAG_DELTA_UNIT, causing all buffers to be skipped
after a seek. This may be a problem with the Sorenson Squish encoder, but
arguably the keyframe bit should only be applied to video.

Fixes bug #620358.
2010-06-06 14:59:29 +02:00
Sebastian Dröge
0fe56cc0d6 flvdemux: First try upstream when handling seek events/queries 2010-06-06 14:57:27 +02:00
Tristan Matthews
8e0adba996 gstrtpceltpay: don't always fixate sink caps to 1 channel
The getcaps function should not fixate the channels field until we
get the encoding-params field from our srcpad's caps. Fixes #620591
2010-06-05 10:02:35 +02:00
Wim Taymans
cb8252275d rtsp: try all ranges from the sdp
Try all ranges in the SDP before giving up.
2010-06-04 13:58:38 +02:00
Wim Taymans
6fbca707bb rtspsrc: make parse_range return result
Make the parse_range function return if the parsing succeeded or failed.
2010-06-04 13:58:38 +02:00
Edward Hervey
2ff87c0fb9 videomixer: if we're not linked downstream, we can do any format
Stupid me, assuming _get_allowed_caps() would actually return the
pad templates if there was no peer.
2010-06-04 11:44:09 +02:00
Sjoerd Simons
952fd666b3 Keep announcing the delivery-method in the capabilities
Even though we don't use delivery-method in our payloader, older versions of
the theora payloader in gstreamer required it. As such we need to keep this
around in the caps for backwards-compatibility.

This reverts part of 49463a37cb

Fixes #618940
2010-06-03 18:47:40 -04:00
Wim Taymans
ffc06e17f0 mp4gdepay: calculate the frame duration correctly
When we calculate the frame duration, we need to use the amount of
frames in the _previous_ packet, not the current packet. The frame duration is
needed to correctly de-interleave interleaved streams. This fixes the case where
there are a variable number of frames in a packet.

Fixes #620494
2010-06-03 19:39:04 +02:00
Edward Hervey
d72a2fb6da videomixer: Don't return caps in get_caps() that will be rejected
This commit basically puts _get_caps() in sync with accept_caps().

If we don't have a master pad OR the master pad caps aren't negotiated
then we just return the downstream allowed caps.

If we have a master pad with negotiated caps, we return those caps
with a free range of width/height/framerate
2010-06-03 19:01:14 +02:00
Mark Nauwelaerts
a8ffe6f593 flvdemux: delayed seek handling also deserves TRUE event response 2010-06-02 17:27:22 +02:00
Thijs Vermeir
0bb2be3a7e rtpjitterbuffer: fix compiler warning
unused variable ‘estimated’
2010-06-02 15:32:36 +02:00
Alessandro Decina
4b6cb93025 rtpjitterbuffer: stop buffering and emit EOS at the end of a stream
When using RTP_JITTER_BUFFER_MODE_BUFFER, make sure that the ringbuffer doesn't
get stuck buffering forever when there isn't enough data left to fill the
buffer.
2010-06-02 14:21:16 +02:00
Benjamin Otte
d516fc5fd8 debugutils: Don't consume preroll buffer twice 2010-06-02 14:20:26 +02:00
Benjamin Otte
81c4dc4574 debugutils: Replace md5 implementation with glib's
https://bugzilla.gnome.org/show_bug.cgi?id=619824
2010-06-02 14:20:26 +02:00
Mark Nauwelaerts
53365b91e6 avimux: clean up code for avi header using a bytewriter
https://bugzilla.gnome.org/show_bug.cgi?id=619293
2010-06-02 14:20:26 +02:00
Edward Hervey
59dcdc37a0 videomixer: filter caps returned from downstream with our pad template. 2010-06-01 20:45:29 +02:00
Zaheer Abbas Merali
bfaeffcfd0 matroskamux: Remove more unneeded warnings 2010-06-01 16:56:32 +01:00
Zaheer Abbas Merali
7fc21317af matroskamux: remove unneeded warning 2010-06-01 16:54:03 +01:00
Zaheer Abbas Merali
d73cecd8c0 matroskamux: remove unneeded debug statement 2010-06-01 16:49:14 +01:00
Zaheer Abbas Merali
8c165b49a7 matroskamux: change is-live property to indexed 2010-06-01 16:43:04 +01:00
Zaheer Abbas Merali
3d876d2b16 matroska: use the uint64 scaling functions
In demuxer and muxer use the gst_util_uint64 scaling functions rather than
standard integer division. Add warnings (to be changed to debug) for debugging
the timestamp and duration.
2010-06-01 16:43:04 +01:00
Zaheer Abbas Merali
ec23b22d29 matroskamux: set delta unit on all buffers except cluster start ones 2010-06-01 16:43:04 +01:00
Zaheer Abbas Merali
d3daa12473 matroskamux: store caps and set on buffers rather than using pad caps 2010-06-01 16:43:03 +01:00
Zaheer Abbas Merali
b4e6fcd051 matroskamux: make sure pads caps are set before any buffers pushed. 2010-06-01 16:43:03 +01:00
Zaheer Abbas Merali
7c402d5866 matroskamux: add streamheaders 2010-06-01 16:43:03 +01:00
Zaheer Abbas Merali
d0bf310876 matroskamux: no need to set cache twice 2010-06-01 16:43:03 +01:00
Xavier Queralt
40eda471a1 Do not create a SeekHeader, Cues, .. when doing live 2010-06-01 16:43:03 +01:00
Xavier Queralt
032d9b90ff Add is-live property 2010-06-01 16:43:02 +01:00
Mark Nauwelaerts
44fa95d5cb matroskademux: improve reverse playback
Slightly modify approach to also handle cases where cue entries do not reliably
lead to initial keyframes.

Fixes #619817.
2010-06-01 15:56:34 +02:00
Mark Nauwelaerts
69d47ef4a0 deinterlace: avoid gtk-doc confusing comments 2010-06-01 15:56:25 +02:00
Mark Nauwelaerts
b8fd1a91f1 matroskamux: use write caching also when writing buffer data
Specifically, this reduces pushing several small buffers for each
data buffer and also avoids a seek for each buffer altogether
(though a seek is still needed for each cluster).

Fixes #619273.
2010-06-01 15:54:35 +02:00
Mark Nauwelaerts
81bf657aa7 matroskamux: fix ebml write caching with bytewriter implementation
Also cache a bit more during header writing.

Fixes #619273.
2010-06-01 15:53:43 +02:00
Mark Nauwelaerts
7895ddbc38 matroskamux: use consistent debug category name for ebmlwrite 2010-06-01 15:53:37 +02:00
Mark Nauwelaerts
085e333283 matroskademux: use bytereader based GstEbmlRead as a helper
... rather than basing on it by inheritance.
Also use more common code for push and pull mode.

Fixes #619198.
Fixes #611117.
2010-06-01 15:52:12 +02:00
Mark Nauwelaerts
973c8ddfdf matroskamux: _get_pad_template result needs no unref 2010-06-01 15:51:16 +02:00
Edward Hervey
01abf5b94e videomixer: Implement sinkpad GetCapsFunction.
This allows returning only the formats, width, height, framerate
and pixel-aspect-ratio that downstream can support.

https://bugzilla.gnome.org/show_bug.cgi?id=620148
2010-06-01 12:42:10 +02:00
Sebastian Dröge
0d5ae784b1 matroskademux: Don't compare running times with stream times when doing QoS 2010-06-01 11:21:30 +02:00
Sebastian Dröge
d09ff4124e deinterlace: Don't reconfigure the caps when changing properties
Fixes bug #619848.
2010-06-01 11:21:30 +02:00
Sebastian Dröge
ab3b4bc82f alpha: Add property to allow passthrough mode
This passthrough mode is used if the alpha method is "set"
and the alpha value is 1.0.

Fixes bug #617512.
2010-06-01 11:21:29 +02:00
Alexander Kojevnikov
2d13b15376 spectrum: support 24-bit width
Fixes #619045
2010-06-01 11:21:29 +02:00
Alexander Kojevnikov
c69dd320af spectrum: support arbitrary bit depth
Partially fixes #619045
2010-06-01 11:21:29 +02:00
Philip Jägenstedt
596331c6f0 matroskademux: fix deadlock introduced by video keyframe QoS 2010-06-01 11:21:29 +02:00
Philip Jägenstedt
80926a5596 matroskademux: skip buffers before a late keyframe (QoS)
Before, vp8dec had no option but to decode all frames even if some/all
of them would be late. With this change, performance when keyframes are
frequent is helped a great deal. On my Thinkpad X60s, decoding a 20 s
1080p sunflower encode with keyframes every 10 frames went from taking
42 s with 5 frames shown to 21 s with 15 frames shown (still slow
enough to count by hand). When keyframes are more sparse, you will
still be able to catch up eventually, but the results won't be as
noticable.
2010-06-01 11:21:29 +02:00
Sebastian Dröge
f5bca501e5 videomixer: Don't mix input with different pixel aspect ratios
Fixes bug #618530.
2010-06-01 11:21:29 +02:00
Sebastian Dröge
dc6dd62824 deinterlace: Add MMX/3DNow implementations of greedyh for UYVY 2010-06-01 11:21:29 +02:00
Sebastian Dröge
2096cf6e55 deinterlace: Fix UYVY implementation of greedyh to be actually used 2010-06-01 11:21:29 +02:00
Tim-Philipp Müller
97de4b217d Revert "matroska: add temporary webm typefinder"
This reverts commit d148ec0ad2.

We depend on -base git now, which has a webm typefinder in the usual
place.
2010-06-01 09:39:38 +01:00
Tim-Philipp Müller
d51576b14c Revert "avimux, flvmux, matroskamux: don't crash if tags arrive on multiple input pads at the same time"
This reverts commit 6a9983cd20.

Rely on locking done in GstTagSetter in core git.
2010-06-01 09:39:38 +01:00
Sebastian Dröge
f8c906e475 flvdemux: Fix position query 2010-05-29 13:55:07 +02:00
Tim-Philipp Müller
a9c13cd4f7 docs: remove unnecessary videorate element from webmmux example pipeline 2010-05-28 15:14:32 +01:00
Sebastian Dröge
ad9ffeed03 videobox: Fix floating point to integer conversion for the alpha values
Fixes bug #619835.
2010-05-27 18:33:35 +02:00
Mark Nauwelaerts
3462eed7e0 wavparse: handle truncated input data at EOS in pull mode
Fixes #617733.
2010-05-26 12:01:26 +01:00
Robert Swain
50273537dc qtdemux: Round timestamp up when scaling to mov format
Fix timestamp rounding to allow the correct index to be located.

The issue was that scaling from GStreamer time format to mov time format was
rounding down causing the timestamp of the newsegment event received after a
flushing keyframe seek to find the sample index before the one it should
causing further backward seeking to the keyframe prior until no rounding error
occurred.

Rounding up when scaling to mov format has the desired effect, and it is
not clear whether just the _round () variant would be sufficient.

Fixes bug #619105
2010-05-26 00:08:16 +01:00
Tim-Philipp Müller
6a9983cd20 avimux, flvmux, matroskamux: don't crash if tags arrive on multiple input pads at the same time
This is a temporary fix for the release only.

Fixes #619533.
2010-05-26 00:05:54 +01:00
Wim Taymans
49463a37cb rtptheora: remove delivery-method from caps
We can accept all delivery methods so don't advertise anything on the caps or
parse anything, we will handle whatever we receive.

Fixes #618940
2010-05-25 18:53:48 +02:00
Tim-Philipp Müller
d148ec0ad2 matroska: add temporary webm typefinder
Add webm typefinder just for the release, so webm works for
people whose distros don't patch gst-plugins-base as well.
We'll remove this again after the release.
2010-05-25 15:40:01 +01:00
Tim-Philipp Müller
9bdfc7254a docs: add some pipeline examples to webmmux docs 2010-05-23 11:17:27 +01:00
Tim-Philipp Müller
a4fabfb959 matroska: fix up plugin and element descriptions a bit 2010-05-21 15:06:14 +01:00
Tim-Philipp Müller
0e12bf83a3 matroska: move webmmux into own source files
Makes things easier for gtk-doc.
2010-05-21 15:04:48 +01:00
Sebastian Dröge
82e4807d10 matroska: Remove the doctype enum, it's not needed anymore 2010-05-20 21:49:43 +02:00
Sebastian Dröge
6a25cd475c webmmux: Add new webmmux element that only supports muxing of WebM
...and remove the doctype property from matroskamux again.
2010-05-20 21:49:43 +02:00
Philip
9c59da8601 ebmlread: rm floatcast.h include (not used) 2010-05-19 20:38:50 +02:00
Philip Jägenstedt
cbde946768 matroskamux: bump default doctype version to 2
In this day and age this should be safe. There's otherwise a risk people
will be creating unneccessarily big WebM files as they can't use
SimpleBlock in v1.
2010-05-19 20:38:31 +02:00
Philip Jägenstedt
9610c7f354 matroska: handle matroska and webm doctype versions equally
The original plan was to let WebM v1 be the same as Matroska v2 (with
extra constraints), but for simplicity it was decided to handle the
versions equally, such that e.g. SimpleBlock is only allowed in WebM v2.
2010-05-19 20:38:16 +02:00
Philip Jägenstedt
081f2d00aa matroskademux: Verify lace size in _parse_blockgroup_or_simpleblock
Failure to do this for corrupt input can cause a subbuffer bigger
than the actual buffer to be created, quickly leading to segfault.
Test case:
bug_s222005751_r0.001____memcpy.webm
2010-05-19 20:35:52 +02:00
Philip Jägenstedt
c659c92091 ebml: crude hack to avoid crashing on unexpected metadata
The comment says this cannot happen, but it did and I don't know
why. This is not the correct fix, needs investigation. Test case:
bug_s555010094_r0.0005:0.008____IA__g_assertion_message_expr.webm
2010-05-19 20:35:28 +02:00
Philip Jägenstedt
9c1267b1a9 ebml: don't modify out str if returning an error in _read_ascii
This is a regression from ASCII validation changes. Test case:
bug_s66876390_r0.001____malloc_printerr.webm
2010-05-19 20:35:06 +02:00
Philip Jägenstedt
c712d28796 ebml: Validate 7-bit ASCII in gst_ebml_read_ascii
This was triggering an UTF-8 assertion in gst_caps_set_simple for
corrupt files with garbage as codec id. Test case:
gstreamer_error_trying_to_set_invalid_utf8_as_codec_id.webm

Old gst_ebml_read_ascii renamed to gst_ebml_read_string, also used by
gst_ebml_read_utf8. Unlike for UTF-8, failure to validate is an error,
as gst_ebml_read_ascii is used for reading doctype and codec id and we
might just as well give up early in those cases.
2010-05-19 20:33:38 +02:00
Philip Jägenstedt
d146971128 matroskademux: Ignore unexpected CodecState
Because GstMatroskaTrackContext *stream is set up in the first
SimpleBlock or Block, a rogue CodecState otherwise causes a segfault on
derefencing the NULL pointer. Test case:
bug_s5506167_r0.001____gst_matroska_demux_parse_blockgroup_or_simpleblock.webm
2010-05-19 20:33:35 +02:00
Philip Jägenstedt
9dc7889eea matroskademux: Add video/webm sink caps 2010-05-19 20:32:13 +02:00
Philip Jägenstedt
ad05dfc032 matroskamux: Use SimpleBlock for WebM when possible 2010-05-19 20:32:02 +02:00
Philip Jägenstedt
1daeb26df1 matroskademux: Support "webm" DocType 2010-05-19 20:31:36 +02:00
Philip Jägenstedt
3b4759de18 matroskamux: rename matroska_version to doctype_version 2010-05-19 20:29:19 +02:00
Philip Jägenstedt
27069088db matroskamux: Support "webm" DocType 2010-05-19 20:28:42 +02:00
David Schleef
e847957790 qtdemux: Add VP8 2010-05-17 17:18:25 +02:00
Sebastian Dröge
e5e90f6035 matroskamux: Add support for On2 VP8
...matroskademux automatically supports it through libgstriff.
2010-05-17 17:18:24 +02:00
Sebastian Dröge
d1842481c1 avimux: Add support for On2 VP8
...avidemux automatically supports it through libgstriff.
2010-05-17 17:18:24 +02:00
Wim Taymans
dc2662e22b rtpbin: fix docs
Documentation error spotted by tony <caicai0119 at gmail.com>

Fixes #618419
2010-05-13 13:01:26 +02:00
Olivier Crête
28f509fdca rtptheoradepay: make delivery-method parameter optional
It probably will not be in the final RFC as it is not in RFC 5215 for Vorbis.
If there is a configuration specified, assume it is in-line and if nothing is
specified, assume it is in-band.

https://bugzilla.gnome.org/show_bug.cgi?id=618386
2010-05-13 12:22:36 +02:00
Wim Taymans
3e4bc043a5 celtpay: fix queue duration calculations
Don't blindly add the durations of incomming buffers to the total queued
duration because it might be invalid. Mark the total queued duration invalid
when we receive an invalid incomming timestamp because that's when we lose track
of the total queued duration.

Fixes #618324
2010-05-13 11:30:27 +02:00
Mark Nauwelaerts
4cff2e2c67 rtph264pay: extract SPS and PPS from property provided parameter set
... so it can also be regularly inserted into the stream if so configured.

Fixes #617164.
2010-05-12 10:24:10 +02:00
Tim-Philipp Müller
c209a6ab40 rtp: dist missing header file to fix make distcheck 2010-05-11 20:26:37 +01:00
Mark Nauwelaerts
bcde9fab09 qtdemux: fix push based seeking
... where it comes down to transforming incoming BYTE segment
to a corresponding TIME segment.

Also fixes #609405.
2010-05-11 18:44:01 +02:00
Sebastian Dröge
2e5262cda2 imagefreeze: Set fixed caps on the correct pad
This makes the sink getcaps function actually used instead of using
the fixed caps function for it.
2010-05-11 14:31:44 +01:00
Sebastian Dröge
f9d8174471 imagefreeze: Only start the task after a seek if a buffer was received already 2010-05-11 14:31:44 +01:00
Sebastian Dröge
3e574eafe3 imagefreeze: Set undefined framerate in sink getcaps function 2010-05-11 14:31:43 +01:00
Sebastian Dröge
53de7943c7 imagefreeze: Implement reverse playback and set buffer offsets 2010-05-11 14:31:43 +01:00
Sebastian Dröge
f1e07fcd0f imagefreeze: Add still frame stream generator element 2010-05-11 14:31:43 +01:00
Tim-Philipp Müller
f9ced7df94 Move capsfilter element from -bad to -good
Hook up moved files to the build infrastructure and docs.

Fixes #617739.
2010-05-11 14:31:43 +01:00
Sebastian Dröge
5aacc8dd29 capssetter: Some minor cleanup 2010-05-11 14:31:43 +01:00
Benjamin Otte
076d3ff456 gst_element_class_set_details => gst_element_class_set_details_simple 2010-05-11 14:31:43 +01:00
Mark Nauwelaerts
8217895170 capssetter: import element into -bad 2010-05-11 14:31:43 +01:00
Mark Nauwelaerts
5ae7119d11 avimux: check that pads have been negotiated
Also set fcc_handler field in audio stream header.

Fixes #618351.
2010-05-11 13:58:03 +02:00
Mark Nauwelaerts
e934f637b6 qtdemux: fix partial parsing of ctts table
Fixes #616516.
2010-05-11 11:06:20 +02:00
Mark Nauwelaerts
a9e688cf32 qtdemux: cleanup a comment and add some debug and conditional compilation 2010-05-11 11:06:17 +02:00
Jan Urbański
cf57f1b220 flvmux: only store the last buffer timestamp if it's valid
Fixes bug #618305
2010-05-11 06:35:48 +02:00
Olivier Crête
34d0d59142 rtph264pay: Re-send SPS/PPS when requested
https://bugzilla.gnome.org/show_bug.cgi?id=606689
2010-05-10 15:07:09 +02:00
Mark Nauwelaerts
90311e522f rtph264pay: fix typo in debug message 2010-05-10 13:35:55 +02:00
Mark Nauwelaerts
af6fc84377 rtptheorapay: add config-interval parameter to re-insert config in stream
Add a new config-interval property to instruct the payloader to insert
configuration headers at periodic intervals in the stream
(when a keyframe is countered).
2010-05-10 13:35:52 +02:00
Mark Nauwelaerts
14b14fdf7a rtptheoradepay: fix in-band configuration parsing
Also make configuration header parsing a bit more relaxed with respect
to length field interpretation.
2010-05-10 13:35:50 +02:00
Mark Nauwelaerts
b899afaeb6 rtpvorbisdepay: fix in-line configuration parsing
Also make configuration header parsing a bit more relaxed with respect
to length field interpretation.
2010-05-10 13:35:48 +02:00
Mark Nauwelaerts
7bd3943bb9 rtptheorapay: do not discard downstream flow return 2010-05-10 13:35:44 +02:00
Mark Nauwelaerts
53928a74fa rtptheorapay: refactor buffer payloading 2010-05-10 13:35:41 +02:00
Sebastian Dröge
a9ed56b1ad deinterlace: Add support for UYVY 2010-05-07 20:41:31 +02:00
Wim Taymans
50f26c671b rtpsession: fix return value 2010-05-07 19:06:35 +02:00
Wim Taymans
a50cd7c27d rtspsrc: don't leak the session 2010-05-07 19:02:21 +02:00
Wim Taymans
bc72d8250c rtsp: configure bandwidth properties in the session 2010-05-07 18:59:42 +02:00
Wim Taymans
aadf4ddf7e rtpsession: add properties to configure the bandwidth
Add properties to proxy the bandwidth configuration to the session object.
2010-05-07 18:58:58 +02:00
Wim Taymans
69cde0e874 rtpsession: add properties to configure bandwidths
Add properties to configure the sender and receiver bandwidths.
Configure the bandwidths before calculating the RTCP timeout when we need to.
2010-05-07 18:57:13 +02:00
Wim Taymans
d84dc1112d rtpstats: add some debug info 2010-05-07 18:56:30 +02:00
Wim Taymans
5690331c9e rtpsession: small cleanups 2010-05-07 18:55:34 +02:00
Wim Taymans
0da5cf2e21 rtpstats: make bandwidths more configurable
Add a method to configure the various bandwidths in the session.
2010-05-07 16:55:13 +02:00
Wim Taymans
6eee730c4a rtpsession: handle NONE RTCP intervals
Prepare for handling RTCP reporting intervals of GST_CLOCK_TIME_NONE, which
means don't send RTCP at all.
2010-05-07 13:32:30 +02:00
Wim Taymans
db3c4e7f46 rtspsrc: fall back to SDP ports instead of server_port
In multicast, fall back to the ports in the SDP instead of the server_port
attribute as this is more in line with the RFC.
2010-05-07 12:51:05 +02:00
Wim Taymans
4e1ced0a77 rtspsrc: refactor collecting the transport info
Make a method to collect the ports and destination address.
2010-05-07 12:24:51 +02:00
Wim Taymans
05352d7ea8 rtspsrc: handle servers that send broken Transports
Handle servers that send their port pairs with the wrong name.

Fixes #617537
2010-05-07 11:28:36 +02:00
Wim Taymans
ef4d2901aa rtspsrc: use the SDP connection info in multicast
Parse the connection info from the SDP.
When we need to configure the multicast destination, fall back to the SDP
connection info when the transport did not specify a destination and ttl.

Fixes #617537
2010-05-06 16:52:26 +02:00
Stefan Kost
de4b0ef7dd goom,monoscope: truncate own caps, instead of copying and using the first only
We got the caps from an intersect, it is our own, hence we can truncate it.
2010-05-06 15:43:54 +03:00
Stefan Kost
899d03dcc6 auto{audio,video}{src,sink}: use can_intersect to avoid a caps copy 2010-05-06 15:43:53 +03:00
Stefan Kost
0148a230ac flvdemux: tell what we can do
Any-caps are bad. If apps scan the registry, they'd like to know what we can
output.
2010-05-06 15:43:53 +03:00
Sebastian Dröge
85c6b9b712 videomixer: Make selection of a sinkpad number threadsafe 2010-05-05 19:35:48 +02:00
Sebastian Dröge
9d6e4a7ac8 deinterlace: Add support for all common RGB formats 2010-05-05 17:39:32 +02:00
Sebastian Dröge
848f071ef4 deinterlace: Add support for AYUV 2010-05-05 16:06:51 +02:00
Wim Taymans
d6579912cb rtspsrc: make setup url in a smarter way
Make sure we always separate the base and control url parts with a / when
creating the setup url.
2010-05-04 16:36:15 +02:00
Alessandro Decina
c8a02a91a6 rtspsrc: handle SEEKING queries. 2010-05-04 16:05:13 +02:00
Mark Nauwelaerts
220f865f77 rtpmp4vpay: add config-interval parameter to re-insert config in stream
Add a new config-interval property to instruct the payloader to insert
config (VOSH, VOS, etc) at periodic intervals in the stream
(when a GOP or VOP-I is encountered).

Based on patch by <marc.leeman at gmail.com>

Fixes #607452.
2010-05-04 11:19:43 +02:00
Alessandro Decina
40899379c0 rtpjitterbuffer: move some initialization code from change_state to _init.
Set ->active to TRUE in _init so it can be set to FALSE after creating the
jitterbuffer and it won't be mistakenly reset to TRUE in the change_state
function.
This is needed to start the jitterbuffer as inactive when rtpbin is buffering.
2010-05-03 13:34:59 +02:00
Alessandro Decina
ffc2da30fc rtpbin: fix a bug handling BUFFERING messages.
If a session exists but has no streams, set the min buffering percent to 0
since it means that we haven't received anything for that session yet.
2010-05-03 11:56:58 +02:00
Alessandro Decina
f6e9f359b9 rtpbin: when a stream is created, pause the jitterbuffer if rtpbin is buffering. 2010-05-03 11:51:37 +02:00
Alessandro Decina
38a5b08ef2 rtpbin: fix a bug calculating stream offsets. 2010-05-03 11:23:59 +02:00
Sebastian Dröge
ad1c01661f matroskamux: Write previous cluster's size
This is useful for backwards playback, which should be implemented
in matroskademux at some point.
2010-05-01 14:20:59 +02:00
Sebastian Dröge
1e1cf5df70 matroskademux: Set interlaced flag in the caps if the flag is set in the Matroska file 2010-05-01 14:15:49 +02:00
Sebastian Dröge
db6a3e55c6 matroskamux: Write interlaced flag if the input video content is interlaced
Unfortunately Matroska has no way to specify TFF and friends...
2010-05-01 14:13:24 +02:00
Tim-Philipp Müller
c1d24699f5 rtp: fix printf format of some debug messages 2010-05-01 11:25:26 +01:00
Tim-Philipp Müller
fa4b2938bc matroska: init variable to avoid compiler warning on OSX
Fixes (bogus) "'offset' may be used uninitialized in this function"
warning on build bot (also spotted by philn).
2010-05-01 11:15:04 +01:00
David Schleef
1df1d34fe1 qtdemux: UYVY is 4:2:2, not 4:2:0 2010-04-30 17:19:44 -07:00
Sebastian Dröge
2ac1f1c7ee deinterlace: Make automatic detection of interlacing the default
Previously "force deinterlacing" was the default, which is a not very
sensible default for the normal use case where deinterlace should act
in passthrough mode unless interlaced content is present.
2010-04-30 22:17:12 +02:00
Mark Nauwelaerts
be5ffd96fe rtptheoradepay: also accept in-band configuration
Fixes #574416 (theora).
2010-04-30 13:54:56 +02:00
Mark Nauwelaerts
a344cfba27 rtpvorbisdepay: also accept in-line configuration
Fixes #574416 (vorbis).
2010-04-30 13:54:52 +02:00
Olivier Crête
7bc3253761 rtptheoradepay: Ignore packets without a known codebook
Don't produce an error if a packet is received without a valid codebook,
it's possible that the codebook will just be coming later.

See #574416.
2010-04-30 13:54:50 +02:00
Benjamin M. Schwartz
c3dc498278 y4menc: add 4:2:2, 4:1:1, and 4:4:4 output support
Fixes #610902.
2010-04-30 13:50:08 +02:00
Mark Nauwelaerts
6bf7f5cfd3 rtph264depay: DELTA_UNIT marking of output buffers
... which evidently makes (most) sense if output buffers are
actually frames.

Partially based on a patch by
Miguel Angel Cabrera <mad_aluche at hotmail.com>

Fixes #609658.
2010-04-30 13:50:03 +02:00
Mark Nauwelaerts
0206b67b1d rtph263depay: extra keyframe info from PTYPE header
... as opposed to taking it from h263 payload header, which need not
be so reliable.

Fixes #610172.
2010-04-30 13:50:00 +02:00
Mark Nauwelaerts
fe9e6d82ee rtph263depay: also use Picture Start Code to detect packet loss
This ensures a whole frame is dropped if a (start) packet is lost,
rather than relying only on the DISCONT flag.
2010-04-30 13:49:57 +02:00
Mark Nauwelaerts
84ac277add rtph263depay: detect frame start using Picture Start Code
So we stop dropping fragments as soon as there is a picture start (code).
In particular, this prevents dropping the first frame following
initial DISCONT.
2010-04-30 13:49:54 +02:00
Mark Nauwelaerts
e7903311f5 rtph263depay: handle a few FIXMEs 2010-04-30 13:49:51 +02:00
Mark Nauwelaerts
3692bbb7ae rtph263depay: slightly refactor payload dropping 2010-04-30 13:49:47 +02:00
Mark Nauwelaerts
a08f76a92e rtph263pay: use found GOBs to apply Mode A payloading
... rather than falling back to sending the whole frame in one packet
if number of GOB startcodes < maximum.
One might take this further and still perform Mode B/C payloading,
but at least this should cater for decent fragments in typical cases.

Fixes #599585.
2010-04-30 13:49:43 +02:00
Mark Nauwelaerts
a6bb8338fd matroskademux: implement push mode seeking 2010-04-30 13:49:39 +02:00
Tim-Philipp Müller
e79f7beba6 docs: update for videofilter plugin merge and add gtk-doc blurb for new property 2010-04-29 20:08:43 +01:00
Sebastian Dröge
61217b521c deinterlace: Improve segment handling a bit 2010-04-29 19:28:24 +02:00
Sebastian Dröge
05a2732851 deinterlace: Order caps by amount of contained information 2010-04-29 19:28:24 +02:00
Sebastian Dröge
cb789617f9 deinterlace: Properly set interlaced field in getcaps 2010-04-29 19:28:24 +02:00
Sebastian Dröge
eeb5a23483 deinterlace: Add planar YUV support to all other simple methods 2010-04-29 19:28:24 +02:00
Sebastian Dröge
4ca4ac3f03 deinterlace: Add planar YUV support to greedyh method 2010-04-29 19:28:24 +02:00
Sebastian Dröge
bdb9675519 deinterlace: Add support for planar YUV formats in greedyl method 2010-04-29 19:28:24 +02:00
Sebastian Dröge
03a8379e20 deinterlace: Add support for Y444, Y42B, I420, YV12 and Y41B
The vfir method supports them and will be used until something else
supports it.
2010-04-29 19:28:23 +02:00
Sebastian Dröge
a626b19490 deinterlace: Define deinterlace method base classes as abstract types 2010-04-29 19:28:23 +02:00
Sebastian Dröge
600f82fbfe deinterlace: Move deinterlacing methods to their own file 2010-04-29 19:28:23 +02:00
Sebastian Dröge
a405d5a4f1 deinterlace: Simplify passthrough mode detection 2010-04-29 19:28:23 +02:00
Sebastian Dröge
3dc7215492 deinterlace: Refactor deinterlacing as preparation for supporting more color formats 2010-04-29 19:28:23 +02:00
Sebastian Dröge
e2eb012a41 videobox: Add support for Y444, Y42B and Y41B 2010-04-29 19:28:23 +02:00
Sebastian Dröge
d20306b699 videobox: Add support for YVYU and reorder template caps 2010-04-29 19:28:23 +02:00
Sebastian Dröge
4e836d3271 videobox: Translate navigation events to make sense again upstream 2010-04-29 19:28:23 +02:00
Sebastian Dröge
a105bf49e3 videobox: Properly handle ranges/lists of width or height when transforming caps
Code partly taken from the videocrop element.
2010-04-29 19:28:23 +02:00
Sebastian Dröge
f71157fa06 alpha: Fix planar YUV->RGB processing 2010-04-29 19:28:22 +02:00
Sebastian Dröge
1897ab2928 alpha: Correctly clamp after YUV->RGB conversion 2010-04-29 19:28:22 +02:00
Sebastian Dröge
545b21c9bd alpha: Add support for YUY2, YVYU and UYVY 2010-04-29 19:28:22 +02:00
Sebastian Dröge
90058bc076 videobox: Sync properties to the controller in before_transform 2010-04-29 19:28:22 +02:00
Sebastian Dröge
9fa14f8c37 videobox: Add support for YUY2 and UYUV 2010-04-29 19:28:22 +02:00
Sebastian Dröge
0294e1e48a alpha: Refactor processing and add support for other planar YUV formats
This reduces the generated code size by a factor of 2.5.
2010-04-29 19:28:22 +02:00
Sebastian Dröge
ba72a058bb alpha: Add support for YV12 input 2010-04-29 19:28:22 +02:00
Sebastian Dröge
6dd3edd0f7 videomixer: Add support for YUY2, YVYU, UYVY 2010-04-29 19:28:22 +02:00
Sebastian Dröge
bd0b307a74 videomixer: Add support for Y444, Y42B, Y41B and YV12 2010-04-29 19:28:22 +02:00
Sebastian Dröge
314fbd80e8 videofilter: Order color formats by their contained amount of information 2010-04-29 19:28:21 +02:00
Sebastian Dröge
1bc924d8ad videoflip: Drop Y41B/Y42B support
Rotating 90°/270° with subsampled YUV where horizontal
and vertical subsampling are different doesn't really work.
2010-04-29 19:28:21 +02:00
Sebastian Dröge
45571f4bd4 videoflip: Also flip the pixel-aspect-ratio if width/height are exchanged 2010-04-29 19:28:21 +02:00
Sebastian Dröge
c0e990b58f videoflip: Change the default method to identity 2010-04-29 19:28:21 +02:00
Sebastian Dröge
0515f88f7c videobalance: Reduce number of allocations per instance 2010-04-29 19:28:21 +02:00
Sebastian Dröge
3ef25c28cd videofilter: Update last-reviewed comments 2010-04-29 19:28:21 +02:00
Sebastian Dröge
c5805b6e38 videobalance: Add support for all RGB formats 2010-04-29 19:28:21 +02:00
Sebastian Dröge
80676e1777 videobalance: Add support for YUY2, UYVY, AYUV and YVYU 2010-04-29 19:28:21 +02:00
Sebastian Dröge
3d70ce60fa videobalance: Add debug category 2010-04-29 19:28:20 +02:00
Sebastian Dröge
37de42977a videobalance: Make property access threadsafe 2010-04-29 19:28:20 +02:00
Sebastian Dröge
5f396b9a71 videobalance: Add support for Y41B, Y42B and Y444 2010-04-29 19:28:20 +02:00
Sebastian Dröge
2cb7ac0192 videobalance: Use libgstvideo for format specific things 2010-04-29 19:28:20 +02:00
Sebastian Dröge
fe4f9ea16b videobalance: Make properties controllable 2010-04-29 19:28:20 +02:00
Sebastian Dröge
ea06bd33f8 videobalance: Emit "value-changed" signal of color balance interface when values change 2010-04-29 19:28:20 +02:00
Sebastian Dröge
e13cd55fab videobalance: Some random cleanup 2010-04-29 19:28:20 +02:00
Sebastian Dröge
17ba0818b1 videobalance: Stop using liboil
The used liboil function is deprecated and has no optimized
implementation anyway.
2010-04-29 19:28:20 +02:00
Sebastian Dröge
bc2edb9706 videoflip: Make property access threadsafe 2010-04-29 19:28:20 +02:00
Sebastian Dröge
650072abed gamma: Sync properties to the controller in before_transform 2010-04-29 19:28:19 +02:00
Sebastian Dröge
537effad12 videoflip: Add support for all RGB formats and AYUV 2010-04-29 19:28:19 +02:00
Sebastian Dröge
516b5f7f2e videoflip: Add support for Y41B, Y42B and Y444 2010-04-29 19:28:19 +02:00
Sebastian Dröge
e8ca390be8 videoflip: Make processing more general and use libgstvideo for all format specific things 2010-04-29 19:28:19 +02:00
Sebastian Dröge
754690dad6 videoflip: Make method property controllable and improve debug output 2010-04-29 19:28:19 +02:00
Sebastian Dröge
8c4aeb2eac videoflip: Some random cleanup 2010-04-29 19:28:19 +02:00
Sebastian Dröge
1584d16b1c videofilter: Move all elements into a single plugin
Having all these small elements in a separate plugin
is not very memory effective...
2010-04-29 19:28:19 +02:00
Sebastian Dröge
92cedb0510 gamma: Improve docs a bit 2010-04-29 19:28:19 +02:00
Sebastian Dröge
e23d74ca84 gamma: Add support for all RGB formats 2010-04-29 19:28:19 +02:00
Sebastian Dröge
2d1e6cf3f5 gamma: Add support for many packed YUV formats
That is YUY2, UYVY, AYUV and YVYU.
2010-04-29 19:28:19 +02:00
Sebastian Dröge
2de3eabac6 gamma: Add support for all other planar YUV formats
That is Y41B, Y42B, Y444, NV12 and NV21.
2010-04-29 19:28:19 +02:00
Sebastian Dröge
9f727ea05c gamma: Stop using liboil
The used liboil function is deprecated, only has a reference implementation
and is more complex than what's needed here.
2010-04-29 19:28:19 +02:00
Sebastian Dröge
155e48fb90 gamma: Use libgstvideo for format specific values and make gamma processing more generic
Allows us to easily add support for new color formats later.
2010-04-29 19:28:18 +02:00
Sebastian Dröge
18273152b3 gamma: Make gamma property controllable
...and properly use liboil.
2010-04-29 19:28:18 +02:00
Sebastian Dröge
2a3f99ca5f gamma: Some random cleanup 2010-04-29 19:28:18 +02:00
Sebastian Dröge
ecb0c3a932 smptealpha: Sync properties to the controller in before_transform 2010-04-29 19:28:18 +02:00
Sebastian Dröge
f005c87037 smptealpha: Add support for YV12 (converted to AYUV) 2010-04-29 19:28:18 +02:00
Sebastian Dröge
ae1783e5cd smptealpha: Add support for all 4 ARGB formats
...without format conversion.
2010-04-29 19:28:18 +02:00
Sebastian Dröge
055c90359a smptealpha: Make color format support more generic
This allows easier addition of new formats later.
2010-04-29 19:28:18 +02:00
Sebastian Dröge
56d4230b22 smptealpha: Some random cleanup 2010-04-29 19:28:18 +02:00
Sebastian Dröge
04a1b1dc48 smpte: Add property for inverting the transition mask
This converts a left-to-right transition to right-to-left or
clock-wise to counter-clock-wise.
2010-04-29 19:28:17 +02:00
Sebastian Dröge
e17954aa6b smptealpha: Correctly detect property changes and update properties 2010-04-29 19:28:17 +02:00
Wim Taymans
754007b344 qcelpdepay: add first version of a QCELP depayloader 2010-04-29 18:07:10 +02:00
Tim-Philipp Müller
f48bc702af flvmux: hide is-live property for release
At the very least it needs a better/less wrong name.

See #613066.
2010-04-26 00:01:19 +01:00
Sebastian Dröge
5a530b19e8 videomixer: Fix byte order for MMX ARGB/AYUV color filling
Fixes bug #616409.
2010-04-22 13:30:55 +02:00
Sebastian Dröge
a27856e6b8 videomixer: Fix AYUV checker/color filling 2010-04-21 17:53:49 +02:00
Sebastian Dröge
3f88dce350 videomixer: Add i387 floating point registers to the clobbered registers list
They are the same as the mm0-mm7 MMX registers and will be overwritten
by the assembly code if gcc doesn't know about the MMX registers.

Note: They're all added to the list of clobbered registers in all cases
and not only when __MMX__ is not defined just to make sure that no other
bugs happen with this code just because some compiler version gets things
wrong.

Fixes bug #614466.
2010-04-19 16:57:19 +02:00
Sebastian Dröge
a904edfaf5 videobox: Use libgstvideo to get the order of RGB 2010-04-19 14:43:41 +02:00
Brian Cameron
f3c032e6ac goom: add edx to clobber list in inline assembly code
mull modifies %edx, so should be mentioned in clobber list.
Fixes crash on Solaris (#615998).
2010-04-17 10:26:25 +01:00
Sebastian Dröge
386169b9fe videobox: Fix I420->I420 copying
Fixes bug #615143.
2010-04-16 15:27:56 +02:00
Sebastian Dröge
e6dd1fc3db videobox: Fix AYUV->I420 copying 2010-04-16 15:27:56 +02:00
Mark Nauwelaerts
e053a89c21 rtph264depay: profile-level-id is an optional parameter
So, if needed, extract the corresponding info from
sprop-parameter-sets.

Based on patch provided by <dxssx at gmail.com>

Fixes #612657.
2010-04-16 12:14:26 +02:00
Edward Hervey
146e50455b videobox: transform_caps : We can only convert AYUV to xRGB
We were previously stating that we could convert AYUV/I420/YV12 to xRGB.
2010-04-14 18:27:52 +02:00
Tim-Philipp Müller
a155deaabf matroskademux, qtdemux: minor code cleanup in avc_level_idc_to_string()
Do the same with slightly fewer LOC.
2010-04-12 15:10:11 +01:00
Sebastian Dröge
37e3d2d9d5 videobox: Fix I420->AYUV copying 2010-04-12 11:43:49 +02:00
Sebastian Dröge
9da4f2906f videobox: Correctly clamp frame/background alphas to [0,255] before writing them 2010-04-12 11:27:40 +02:00
David Schleef
289f69eb84 deinterlace: Only check interlaced flag in sink caps
Fixes #615460.
2010-04-11 13:15:32 -07:00
Stefan Kost
d6e9af2a11 docs: do proper escaping for "%" 2010-04-08 18:05:46 +03:00
Stefan Kost
0e048803b9 rtsp: remove obsolete google extension
This was not build for a while and can be removed.
2010-04-08 17:50:49 +03:00
Stefan Kost
6772badb88 docs: enable the 2 of 65 rtp elements in the docs 2010-04-08 17:19:41 +03:00
Stefan Kost
ddfb2827d1 docs: upd -> udp and voila it shows up in the docs 2010-04-08 16:56:37 +03:00
Stefan Kost
04d9490ca9 docs: fix doc blob syntax 2010-04-08 16:51:27 +03:00
Stefan Kost
054b84359b flvdemux: make debug category static 2010-04-08 14:34:59 +03:00
Stefan Kost
fa09b5d519 flxdemux: rename GstFLVDemux for GstFlvDemux 2010-04-08 14:29:59 +03:00
Stefan Kost
fcc3db73a3 flvdemux: merge flvparse into the demuxer and make function static
No need to hide certain function in the docs. Allows to do more cleanups.
2010-04-08 14:29:59 +03:00
Sebastian Dröge
afed9b959c alpha: Add documentation 2010-04-08 13:14:23 +02:00
Stefan Kost
9967a4112b rtpsession: remove prototype for non existing function
There is no function by that name anywhere.
2010-04-08 14:02:50 +03:00
Sebastian Dröge
4d906b4a0a alphacolor: Improve docs a bit 2010-04-08 12:56:30 +02:00
Stefan Kost
acc742bbc9 matroska-mux: fix last commit
Use a local define for WAVEFORMAT_EX based on the size of the struct + 2 bytes
for the extension size.
2010-04-08 13:29:35 +03:00
Stefan Kost
7e3ccacc2f wavenc: remove internal copy of riff.h and use riff-library instead.
We don't use any function yet, just the structures and defines.
2010-04-08 13:03:43 +03:00
Stefan Kost
0c35e0c4db matroskamux: use riff lib more
Remove BITMAPINFOHEADER and use the one from riff-lib. Also remove the
WAVEFORMATEX_SIZE define and use a sizeof together with the respective struct.
Besides better code reuse this lessens the ununsed symbols in the docs.
2010-04-08 12:57:03 +03:00
Stefan Kost
e7a5ff40bd docs: trim sections file more
Rename some defines and move some itesm to *.c files. Add more items to internal
subsection.
2010-04-08 12:14:07 +03:00
Stefan Kost
43ebe8235f docs: fix xml
The title tag belongs into the refsect2.
2010-04-08 10:30:06 +03:00
Sebastian Dröge
4e277ebe7b videobox: Add support for YV12, including conversion support for I420/AYUV 2010-04-07 17:43:56 +02:00
Sebastian Dröge
b4e3532c1f videobox: Add support for grayscale input/output
This doesn't do any conversion and is the next step to
replacing videocrop by supporting all remaining formats
in passthrough mode.
2010-04-07 17:27:12 +02:00
Sebastian Dröge
02a4a150e8 videobox: Add support for filling the background with red, yellow and white 2010-04-07 16:24:38 +02:00
Sebastian Dröge
a0fd92dfc1 videobox: Add support for direct RGB<->AYUV conversion 2010-04-07 16:12:51 +02:00
Sebastian Dröge
84ce6f2a2b videobox: Fix RGB24 filling 2010-04-07 16:12:51 +02:00
Marco Ballesio
2ff1558a87 h264depay: handle properly STAPs
in rtph264depay.c, lines 577-576, NALU-type 24 (Single-Time Aggregation
Packet) is handled in fall-through as NALU-type 26 (unhandled).

This leads high quality h264 streams such as:

rtsp://stream.yle.mobi/yle/areena/MEDIA_E0342657_p3.mp4

to fail with "NAL unit type 24 not supported yet" (but it's actually
supported), and thus to close any stream which contains STAPs.

The proposed one-liner patch fixes the issue.
Fixes #615051.
2010-04-07 16:17:06 +03:00
Thijs Vermeir
d17ad171c9 build: fix compiler warnings
fix warnings for all plugins that use: setlocale (LC_ALL...
2010-04-07 13:48:12 +02:00
Thijs Vermeir
1e5bb1c300 avi: fix compiler warning 2010-04-07 13:32:09 +02:00
Mark Nauwelaerts
dc09ace2bd matroskademux: restrict resyncing to subtitle tracks
This should prevent skipping audio or video in not so well interleaved
cases.

Fixes #614460.
2010-04-07 12:40:13 +02:00
Arun Raghavan
861311e8f6 qtdemux: Post avg./max. bitrate tags for H.264
This reads the average and maximum bitrates from the 'btrt' atom if
available, and pushes these as tags,

https://bugzilla.gnome.org/show_bug.cgi?id=614927
2010-04-07 11:55:32 +02:00
Sebastian Dröge
3c1940c187 videobox: Fix conversion from 3 byte RGB to ARGB 2010-04-05 17:31:36 +02:00
Sebastian Dröge
687ff84592 videobox: Add support for 3 byte RGB formats and refactor RGB code a bit 2010-04-05 17:08:15 +02:00
Sebastian Dröge
d0ad28ad54 videobox: Add support for all 32 bit RGB formats
...including conversion between them.
2010-04-05 15:52:11 +02:00
Wim Taymans
b84bf10455 rtspsrc: add property to control the buffering method
Add a property to control how the jitterbuffer performs timestamping and
buffering.
2010-04-05 15:26:03 +02:00
André Dieb Martins
5a395846c6 alphacolor: Removing unused variable
Fixes bug #614843.
2010-04-05 10:31:45 +02:00
Thiago Santos
f966ff66f8 qtdemux: Read replaygain peak/gain tags
Make qtdemux read tags replaygain tags that are within '----' atoms.

Fixes #614471
2010-04-02 15:23:51 -03:00
Arun Raghavan
95c6d558f0 matroska: Export h.264 profile and level in caps
This replicates the code in qtdemux to export the h.264 profile and
level in the stream caps.

https://bugzilla.gnome.org/show_bug.cgi?id=614651
2010-04-02 18:51:34 +02:00
Sebastian Dröge
9317ad6fe9 qtdemux: Fix off-by-one introduced in last commit 2010-04-02 18:50:45 +02:00
Arun Raghavan
ccef64be39 qtdemux: Minor refactor of the code
This will make it easier to clump together common code when copying to
mastroskademux.

https://bugzilla.gnome.org/show_bug.cgi?id=614651
2010-04-02 18:49:20 +02:00
Arun Raghavan
d6dcd70b4c qtdemux: Export h.264 level in caps
This exports the h.264 level in the stream caps (as a string) which can
be used to match a decoder, or as metadata.

https://bugzilla.gnome.org/show_bug.cgi?id=614651
2010-04-02 18:48:45 +02:00
Arun Raghavan
503f0988bf qtdemux: Export h.264 profile in caps
This adds the h.264 profile for a given stream into caps. This can
(eventually) be used to select an appropriate decoder and as metadata
for certain applications.

https://bugzilla.gnome.org/show_bug.cgi?id=614651
2010-04-02 18:48:23 +02:00
Mark Nauwelaerts
2d6d2a4d95 flvdemux: remove obsolete reverse playback code path 2010-04-01 10:46:16 +02:00
Mark Nauwelaerts
1c7b1d110b flvdemux: support (pull mode) negative seek rate 2010-04-01 10:46:12 +02:00
Mark Nauwelaerts
d3ae0ef71f flvdemux: also check for segment stop for non-segment-seek 2010-04-01 10:46:10 +02:00
Mark Nauwelaerts
b9f569bfd0 matroskademux: push correctly sized flac header buffers
Fixes #614353.
2010-03-30 16:51:36 +02:00
Tim-Philipp Müller
9e1f5031cc id3demux: fix parsing of unsynced frames with data length indicator
Fixes bug #614158.
2010-03-30 01:54:40 +01:00
Tim-Philipp Müller
d756bab488 build: build plugins and examples in parallel where possible 2010-03-29 11:00:57 +01:00
Tim-Philipp Müller
af5e4d935a qtdemux: extract stream language in more cases
The 16-bit language code can be either a packed ISO-639-2T code
or a 'Macintosh language code'. Handle the latter type of language
codes as well, and map to the matching ISO code. Lastly, fix
language code posting for language #0, which is valid and stands
for 'English'.

Fixes #614001.
2010-03-26 17:02:50 +00:00
Sebastian Dröge
2873c3ad6b videobox: Fix AYUV->I420 frame copying 2010-03-26 13:45:46 +01:00
Sebastian Dröge
3bdd50c93b videobox: Always fill the complete frame if borders should be added
This makes sure that we don't get any gaps between rectangles because
of chroma subsampling for example.
2010-03-26 13:28:53 +01:00
Sebastian Dröge
298f1c3202 videobox: Refactor boxing to reduce code duplication 2010-03-26 13:28:53 +01:00
Sebastian Dröge
2e043908de alpha: Simplify caps transformation 2010-03-26 13:28:53 +01:00
Sebastian Dröge
cd6b4214a6 videobox: Add const qualifier to the source frame data 2010-03-26 13:28:53 +01:00
Mark Nauwelaerts
b1f3e4d0cf matroskademux: only seek when in proper state
... and data structures can be thread-safely accessed.

See #601617.
2010-03-26 11:45:47 +01:00
Mark Nauwelaerts
9157c262ba matroskademux: support (pull mode) negative seek rate 2010-03-26 11:45:41 +01:00
Mark Nauwelaerts
95e38e59a2 matroskademux: track clip duration in segment 2010-03-26 11:45:39 +01:00
Mark Nauwelaerts
6ccffcf5f1 matroskademux: prefer index of video track to perform seeking 2010-03-26 11:45:36 +01:00
Mark Nauwelaerts
d654eeb6de avidemux: fix typo in header validation check 2010-03-25 11:40:20 +01:00
Edward Hervey
66d9dbe49e icydemux: Handle upstream Content-Type.
Allows us to handle ShoutCast TV (NSV) streams.

If the upstream caps have the 'content-type' field set to video/nsv, then
we shortcut the typefinding and set video/x-nsv directly.
2010-03-23 19:48:24 +01:00
Stefan Kost
f1a75adcbc i18n: build fixes: #if -> #ifdef for ENABLE_NLS 2010-03-22 17:26:37 +02:00
Benjamin Otte
382afe983b multifile: Include headers instead fo defining functions 2010-03-21 17:36:28 +01:00
Benjamin Otte
c2846f698b Make goom not use aggregate returns 2010-03-21 17:23:43 +01:00
Benjamin Otte
412cc10314 Add -Wold-style-definition flag
And fix the warnings
2010-03-21 15:17:46 +01:00
Benjamin Otte
3f511ec361 Add -Wwrite-strings to the configure flags
... and fix all warnings
2010-03-21 14:17:47 +01:00
Sebastian Dröge
0f7631f8ec shapewipe: Add support for the remaining ARGB formats
And handle AYUV like ARGB, we need no YUV specific handling.
2010-03-21 11:14:12 +01:00
Sebastian Dröge
b78937aa6f alpha: Add support for RGB and xRGB input 2010-03-20 21:30:58 +01:00
Sebastian Dröge
5bbc7dd114 alpha: Add support for ARGB input 2010-03-20 21:13:23 +01:00
Sebastian Dröge
985ec0260c alpha: Add support for generating ARGB output 2010-03-20 20:46:19 +01:00
Sebastian Dröge
fe4ff4f324 videomixer: Add support for ABGR and RGBA
Now all 4 ARGB variants are supported by videomixer.
2010-03-20 17:32:48 +01:00
Sebastian Dröge
1fdbfb35ff alpha: Move chroma keying parameters into stack variables to prevent multiple pointer dereferences per pixel 2010-03-20 10:26:13 +01:00
Sebastian Dröge
9d9ba5b00e alpha: Move color conversion matrixes into stack variables to speed up processing 2010-03-20 10:20:53 +01:00
Sebastian Dröge
eb7a146b51 alpha: Use correct matrixes to convert chroma keying color to YUV 2010-03-20 10:18:04 +01:00
Sebastian Dröge
b64619dc4e alpha: Add support for different color matrixes 2010-03-19 19:30:32 +01:00
Sebastian Dröge
00b3eb1dfc alpha: Rename and move functions as further preparation for supporting more color formats 2010-03-19 19:30:32 +01:00
Sebastian Dröge
46025bbd8f alpha: Remove some unneeded calculations and instance struct fields
And document the instance struct fields a bit better
2010-03-19 19:30:32 +01:00
Sebastian Dröge
6b0c535e8d alpha: Some preparations for supporting more color formats 2010-03-19 19:30:32 +01:00
Wim Taymans
b019a78ab8 h264pay: fix config-interval property
Use the same units for comparing the elapsed time against the interval.

Fixes #613013
2010-03-19 17:13:07 +01:00
Sebastian Dröge
e3584bf52c alphacolor: Implement color-matrix support and use integer arithmetic only
Alphacolor now uses the correct matrixes for SDTV and HDTV and can
convert between them.
2010-03-19 16:45:07 +01:00
Wim Taymans
ef804589ca rtsp: use GType from -base and bump required version
Use the transport flags GType from -base and bump the required version of -base
because of this.
2010-03-19 15:03:43 +01:00
Tim-Philipp Müller
553e0295b2 apetag: minor Makefile.am surgery
-I$(top_srcdir)/gst-libs/ is already in $(GST_CFLAGS)
2010-03-19 00:05:19 +00:00
Tim-Philipp Müller
073201b329 build: Makefile.am cleanups
Mostly add $(GST_BASE_CFLAGS) where it was missing, but also fix up
order of flags and libs if needed (see docs/random/moving-plugins).
2010-03-18 21:34:24 +00:00
Sebastian Dröge
dad4e96672 alpha: Remove remaining floating point arithmetic when processing a pixel 2010-03-18 19:01:47 +01:00
Sebastian Dröge
f7ba12513e alpha: Refactor chroma keying into a single function
This reduces code duplication once we add support for more color formats.
2010-03-18 19:01:47 +01:00
Benjamin Otte
cccfeaa59c gst_element_class_set_details => gst_element_class_set_details_simple 2010-03-18 14:32:00 +01:00
Benjamin Otte
bc1b65bee3 Remove oldcore directory
The elements have been unused for ages and all important ones have been
replaced or copied elsewhere.
2010-03-18 14:32:00 +01:00
Benjamin Otte
46fdd8b624 avi: Remove old file
Seems to be leftover from the 0.4 days or so.
2010-03-18 14:32:00 +01:00
Mark Nauwelaerts
fd5164af96 rtph264depay: do not call _push_ts with unneeded (and wrong) time parameter
Fixes #613206.
2010-03-18 12:43:14 +01:00
Mark Nauwelaerts
abd9c0c657 avidemux: fix typo in header validation check 2010-03-18 11:37:12 +01:00
Jan Urbański
7d32f46b7a flvmux: put more information in the metadata
Additional tags are: audiocodecid, videocodecid framerate and (in the
non-live case) filesize.

While at it, fix index rewriting to update duration and filesize
values even if the index is empty.

Fixes #613094.
2010-03-18 10:00:58 +01:00
Benjamin Otte
c76e72a7f5 Add -Wundef to configure flags
and fix the resulting warnings
2010-03-17 21:33:28 +01:00
Benjamin Otte
1055aaa9cb Add -Wredundant-decls warning flag
Also fix compile issues
2010-03-17 19:35:10 +01:00
Benjamin Otte
18bc896605 Fix warnings in experimental plugins, too 2010-03-17 18:49:11 +01:00
Benjamin Otte
3342b1679e Add -Wmissing-declarations -Wmissing-prototypes warning flags
And fix all the warnings.
2010-03-17 18:23:28 +01:00
Wim Taymans
7e363149f3 mp4gdepay: improve constantDuration guessing
When no constantDuration has been given in the caps, try to derive one from the
timestamp difference between packets. Also keep doing this for each packet
because some broken streams might simply provide wrong timestamps.
2010-03-17 16:27:13 +01:00
Jan Urbański
dcb5afd351 flvmux: Put width and height in the metadata
Some players use that info to scale their display.

See #613094.
2010-03-17 09:28:03 +01:00
Jan Urbański
96de71d74b flvmux: don't put timestamps larger than G_MAXINT32 in the FLV tags
For non-live input respond by pushing EOS, for live wrap the
timestamps every G_MAXINT32 miliseconds.

Fixes #613003.
2010-03-17 09:24:49 +01:00
Sebastian Dröge
f961f884b6 alphacolor: Fix RGBA<->AYUV conversion 2010-03-16 21:23:11 +01:00
Sebastian Dröge
117e7401c5 alpha: Remove redundant instance field 2010-03-16 21:16:26 +01:00
Sebastian Dröge
9e4ebba45e alpha: Protect property values from changes during frame processing 2010-03-16 21:10:08 +01:00
Jan Urbański
a99ee96172 flvmux: Always put a duration tag in the metadata
Some Flash players (for instance JW Player) always expect a duration
tag, otherwise they don't start playback.

If duration can be queried from the sink pads or is provided as a tag,
use it. Otherwise try to determine it from the last seen timestamp of
the sink pads after EOS and rewrite it in the header before writing
the index.
2010-03-16 15:12:46 +01:00
Jan Urbański
ef8f7614ff flvmux: Remove the send_codec_data field from GstFlvPad
That field is not used anymore after the changes in
9fdecbc1c1.
2010-03-16 15:12:46 +01:00
Wim Taymans
efbdecd0ac multiudpsink: get family of external sockets too
Get the family of externally configured sockets so that we can configure it
correctly.
2010-03-16 13:53:26 +01:00
Sebastian Dröge
3197490c2f alphacolor: Add support for the remaining ARGB formats 2010-03-15 20:37:51 +01:00
Sebastian Dröge
d6379362e5 alphacolor: Simplify ARGB<->AYUV conversions by code generation macros 2010-03-15 19:16:18 +01:00
Sebastian Dröge
322a8f5e6d alpha: Minor cleanups and move declarations into a separate header file 2010-03-15 19:07:28 +01:00
Sebastian Dröge
6f80d41c04 alpha: Use GstVideoFilter as base class for automatic QoS support 2010-03-15 18:58:51 +01:00
Sebastian Dröge
c01cf035c1 alphacolor: Add support for inplace conversions from AYUV to ARGB 2010-03-15 18:52:39 +01:00
Sebastian Dröge
8cbb9608f9 alphacolor: Use libgstvideo for caps parsing 2010-03-15 18:22:21 +01:00
Sebastian Dröge
751b293df8 alphacolor: Use GstVideoFilter as base class for automatic QoS support 2010-03-15 18:09:55 +01:00
Sebastian Dröge
e46f0261c8 alphacolor: Some minor cleanup 2010-03-15 18:07:29 +01:00
Jan Urbański
c69c5cb0d7 flvmux: Correctly mark buffers as delta units
Mark video interframes, video codec data buffers and audio buffers (if
it's not an audio-only stream) as delta units.
2010-03-15 13:54:39 +01:00
Jan Urbański
9fdecbc1c1 flvmux: Support streamheaders
Put the FLV header, the metadata tag and (if present) codec
information in the streamheader to allow the muxer to be used for
streaming.
2010-03-15 13:53:53 +01:00
Jan Urbański
7deee29d2c flvmux: Preallocate index space and fill it after finishing output
Make the index appear at the beginning of the file, which is what most
players are expecting.

Fixes #601236.
2010-03-15 13:52:03 +01:00
Sebastian Dröge
7c74f7d525 flvmux: Minor coding style fixes and cleanup 2010-03-15 13:47:13 +01:00
Jan Urbański
54a8237d62 flvmux: Add a is-live property
If it is set, the muxer will not write the index. Defaults to false.
2010-03-15 13:46:09 +01:00
Jan Urbański
c9bb3edd6f flvmux: Only put valid seek points in the index
For files containing video only video keyframes are valid points to
which a player can seek. For audio-only files any tag start is a valid
seek point.

See #601236.
2010-03-15 13:45:21 +01:00
Jan Urbański
b21c5c9015 flvmux: Fix index building to make entries point to tag's start offset
Previous coding was wrongly incrementing the total byte count before
adding an index entry.
2010-03-15 13:44:14 +01:00
Wim Taymans
ba6dbaecfc rtspsrc: don't forget to send keepalive messages
When we operate in TCP mode, still send keepalive messages when we
need to.

Fixes #612696
2010-03-15 11:38:23 +01:00
Thiago Santos
5efda5caf7 qtdemux: add XMP parsing support
Use xmp helpers to parse XMP metadata in udta atom.

Fixes #609539
2010-03-11 19:04:49 -03:00
Michael Smith
5b357ce22e udp: fix compilation errors on non-windows. 2010-03-11 12:32:56 -08:00
Andoni Morales Alastruey
7f980d28aa multiudpsink: avoid getting the socket family using getsockname() 2010-03-11 10:33:10 -08:00
Edward Hervey
32498746ad qtdemux: Fix print statements for pointer differences.
This fixes it for both 32 and 64 bit
2010-03-11 17:28:47 +01:00
Edward Hervey
8d794e6a9f qtdemux: Fix unitialized variables 2010-03-11 17:28:35 +01:00
Edward Hervey
6dfcee8fdb flvdemux: Fix printf formatting for macosx 2010-03-11 17:04:41 +01:00
Edward Hervey
8e0a8b30b8 flvdemux: Fix unitialized variables 2010-03-11 17:04:41 +01:00
Edward Hervey
c4d55cf782 avidemux: Fix unitialized variable. 2010-03-11 17:04:41 +01:00
Edward Hervey
95d087ed77 flvparse: Make script tag parsing more flexible.
* The nb_elements for arrays is just an indication, we can therefore ignore
  it and carry on parsing metadata items until we reach the end marker.
* If type == 3, then the script tag contains a list of object followed
  by the end marker.

Refactor code slightly to handle both cases

https://bugzilla.gnome.org/show_bug.cgi?id=610447
2010-03-11 17:04:41 +01:00
Mark Nauwelaerts
c007d8535c avidemux: ignore stream with invalid header time metadata 2010-03-11 15:04:19 +01:00
Thiago Santos
145b3a3079 qtdemux: Set stream-format=raw on AAC caps
Set stream-format=raw for AAC caps, as that is the
expected AAC format to be in this container family.

Fixes #566250
2010-03-11 09:38:32 -03:00
Wim Taymans
d29fa60f97 rtspsrc: check for NULL before doing strcmp
Check the connection and address type for NULL before doing strcmp and
crashing.

Fixes #612553
2010-03-11 12:56:11 +01:00
Stefan Kost
0a43c86723 build: include stdlib.h for atoi() 2010-03-11 11:09:55 +02:00
Stefan Kost
f405f9c775 audiopanorama: move invariant check out of the inner loop
Improves performance for simple method.
2010-03-11 10:35:05 +02:00
Benjamin Otte
21f66635e8 Update for recent changes to common submodule
This just replaces every "$ERROR_CFLAGS" usage with a usage of
"$WARNING_CFLAGS $ERROR_CFLAGS" to get the same functionality as
previously.

Actually using that separation will happen later.
2010-03-10 21:53:51 +01:00
Andoni Morales Alastruey
2eb651d46f multiudpsink: Reset windows error code after getting corresponding error message. 2010-03-10 10:51:28 -08:00
Michael Smith
c3b0509beb avimux: put the codec_data blob into the actual data for MPEG4 video,
to match other implementations in the wild.
2010-03-10 10:40:47 -08:00
Mark Nauwelaerts
1a60c7b040 avidemux: push mode; also report seekable without an element index
... since recent code also seeks around to obtain required data
from avi index.
2010-03-10 11:48:07 +01:00
Mark Nauwelaerts
3a1a140e2d avidemux: add some check and standardized seek event handling in push mode 2010-03-10 11:48:07 +01:00
Mark Nauwelaerts
d90aed1857 avidemux: fix offset handling in push mode seeking
Push mode seeking uses same index data as pull mode, and stores
offset to data in chunk, whereas push mode operates in chunks,
and as such needs offset consistently corresponding to chunk headers.
Also fix determining best matching stream for incoming newsegment event,
as well as setting some stream state accordingly.
2010-03-10 11:48:07 +01:00
Mark Nauwelaerts
1dfcc3227c flvdemux: conduct index scan in task thread
... rather than in seeking thread, which might then occupy mainloop
for some time with possible unresponsive side-effects.
2010-03-10 11:48:07 +01:00
Mark Nauwelaerts
f23fb39bc7 flvdemux: avoid indefinite index growth
That is, check for and do not add an index entry that has already
been added.
2010-03-10 11:48:07 +01:00
Mark Nauwelaerts
f79de81bb4 flvdemux: also collect index info on-the-fly in pull mode 2010-03-10 11:48:07 +01:00
Mark Nauwelaerts
86a1aec2c0 flvdemux: incrementally build index in pull mode
Scan for needed part upon a seek as opposed to doing a complete scan
at startup, which may take some time depending on file and/or platform.
Also accept index metadata in pull mode and peek for some metadata
at the end of the file when deemed appropriate.
2010-03-10 11:48:06 +01:00
Mark Nauwelaerts
66fabd8bfd flvdemux: some more variable cleanup 2010-03-10 11:48:06 +01:00
Mark Nauwelaerts
122daaf6af flvdemux: refactor adding index entry 2010-03-10 11:48:06 +01:00
Mark Nauwelaerts
6aa4d5df2d flvdemux: fix setting DELTA_UNIT flag on outgoing buffers
... which should not depend on having index available or not.
Also refactor resulting collapsed code.
2010-03-10 11:48:06 +01:00
Mark Nauwelaerts
561a506822 qtdemux: avoid erroneous codec-data overriding of stsd information 2010-03-10 11:48:06 +01:00
Wim Taymans
821096c4f1 rtspsrc: parse connection information
Parse the connection information from the SDP and use it to figure out if we are
dealing with ipv4 or ipv6 connections.
2010-03-10 11:28:22 +01:00
Wim Taymans
8eb5c2c794 rtspsrc: require a destination for multicast
When setting up the multicast sockets, we need a destination address to listen
on or else we error.
2010-03-10 11:21:20 +01:00
Wim Taymans
574447b092 rtspsrc: handle ipv6 listening ports when needed
Add some code to make udpsrc listen on an ipv6 address when needed. The
detection of IPV6 is not yet implemented.
2010-03-10 11:21:20 +01:00
Wim Taymans
455f53c896 udp: use uri parsing code
Use the uri parsing helper functions to manage the host and port pairs. This
adds support for IPV6.
2010-03-10 11:21:19 +01:00
Wim Taymans
14ae2080d2 udpnetutils: add helper functions for udp uri handling
Add some helpers to parse udp uris. Make sure IPV6 is supported too.
2010-03-10 11:21:19 +01:00
Olivier Crête
a6dfe96169 rtpsession: Make it possible to favor new sources in case of SSRC conflict
Add a "favor-new" property that tells the session to favor new sources when
there is a SSRC conflict. This is useful for SIP calls and other such cases
where a remote loop is extremely unlikely.

Fixes #607615
2010-03-10 11:21:19 +01:00
Olivier Crête
f336ea283f rtpsession: Move SSRC conflicts lists into RTPSource
We will also need to track SSRC conflicts in remote sources.

See #607615
2010-03-10 11:21:18 +01:00
Wim Taymans
38f2b4735d rtspsrc: send keep alive when paused
When we are paused, send keep alive messages to the server so that our session
doesn't time out when we go back to playing later.
2010-03-10 11:21:18 +01:00
David Schleef
acb6ebbc9a multifilesink: Add key-frame option to next-file
This allows segmenting of MPEG-TS files at key frames, which is
exactly what is needed for Apple's HTTP streaming.
2010-03-09 13:52:30 -08:00
Sebastian Dröge
42ff597f41 videobox: Fix autocropping for odd width/height differences 2010-03-09 21:03:18 +00:00
Sebastian Dröge
1819fcb4a5 videobox: Use libgstvideo for format specific stuff 2010-03-09 21:03:18 +00:00
Sebastian Dröge
79e720052a audiofx: Sync properties to the stream time 2010-03-09 21:03:18 +00:00
Sebastian Dröge
4381b9296f videobox: Make properties controllable 2010-03-09 21:03:18 +00:00
Sebastian Dröge
7dcb294b54 videobox: Some cleanup 2010-03-09 21:03:18 +00:00