Commit graph

6318 commits

Author SHA1 Message Date
Wim Taymans
e2a4d28c1f rtspsrc: clear variables before retrying
Else we might unref an old udpsrc twice in cleanup.
2012-11-16 12:17:37 +01:00
Wim Taymans
cc9cb26be1 rtspsrc: propose ports in multicast
When the user configured a port-range, propose ports from this range
as the multicast ports. The server is free to ignore this request but if it
honours it, increment our ports so that we suggest the next port pair for the
next stream.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=639420
2012-11-16 12:17:37 +01:00
Wim Taymans
5025b3f1b3 rtspsrc: add more debug 2012-11-16 12:17:37 +01:00
Tim-Philipp Müller
6f1aa3e4d5 multifilesink: post messages in max-size mode as well
No reason not to really.
2012-11-16 09:13:22 +00:00
Wim Taymans
c33507f186 udpsrc: post error before stopping 2012-11-15 14:48:59 +01:00
Tim-Philipp Müller
bdf3c77828 gst_adapter_prev_timestamp -> gst_adapter_prev_pts
https://bugzilla.gnome.org/show_bug.cgi?id=675598
2012-11-14 00:13:36 +00:00
Nicolas Dufresne
673d2d24b8 videoflip: Add NV12/NV21 support
https://bugzilla.gnome.org/show_bug.cgi?id=688225
2012-11-13 14:25:04 +01:00
Wim Taymans
c755af0cb0 rtpsource: protect against invalid RTP packets 2012-11-12 11:18:30 +01:00
Tim-Philipp Müller
35fafae241 videocrop: add support for YV12
We can do I420, so we can do YV12 as well.
2012-11-10 18:21:28 +00:00
Alessandro Decina
b916d2b398 multifilesink: don't write stream headers with key-unit-event
Don't write stream headers, let upstream elements insert them in the stream if
all_headers=true is set in key unit events.
2012-11-10 12:41:33 +01:00
Nicolas Dufresne
e111068f7b videocrop: Add NV12/NV21 support
https://bugzilla.gnome.org/show_bug.cgi?id=687964
2012-11-10 01:52:44 +01:00
Sebastian Dröge
c70ba7765a udpsrc: Also clear GError 2012-11-09 11:22:30 +01:00
Sebastian Dröge
b86d20e45b udpsrc: Don't error out if we get an ICMP destination-unreachable message when trying to read packets
See bug #529454 and #687782 and commit
751f2bb364
2012-11-09 11:20:27 +01:00
Christian Fredrik Kalager Schaller
485505f323 Fix vp8rtp header names in Makefile 2012-11-07 13:36:33 +01:00
Nicolas Dufresne
1ad8ebac44 videocrop: Add support for automatic cropping
This change enable automatic cropping using -1 set to left, top, right or
bottom property. In the case both side are set to automatic cropping, the
croping will be done equally on both side (in the odd case, right and
bottom cropping will be 1 pixel more).

https://bugzilla.gnome.org/show_bug.cgi?id=687761
2012-11-07 11:20:24 +01:00
Marc Leeman
7cbca3dcd1 rtsp: the RTCP port number is inclusive
The configured port number pair has its upper bound set to the maximum
allowed RTCP port, inclusive.

See https://bugzilla.gnome.org/show_bug.cgi?id=639420
2012-11-06 13:22:58 +01:00
Tim-Philipp Müller
230cf41cc9 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:07:18 +00:00
Wim Taymans
9857e6af4d vrawdepay: don't access rtp buffer after unmap
Read the marker bit before we unmap the rtp packet.
2012-11-02 18:48:17 +00:00
Douglas Bagnall
0b898ab911 videoconvert: Compare y offset with height, not width, when testing for overlap
This could have prevented images showing that should have when the
source height is greater than its width.

When width exceeds height, as is common, it probably only caused a
miniscule amount of unnecessary work.  I haven't tested.
2012-11-02 09:29:30 +01:00
Tim-Philipp Müller
5ac789408b rtpvp8: include config.h and minor style fixes 2012-11-01 21:10:21 +00:00
Tim-Philipp Müller
4a849d6690 rtp: fix tabs/space mess in Makefile.am 2012-11-01 20:53:48 +00:00
Tim-Philipp Müller
321acd14dc rtp: move VP8 payloader and depayloader from -bad
Spec is still in draft state, but should hopefully not
change much now. Besides, we announce things as VP8-DRAFT-IETF-01
in our caps, so even if things change in incompatible ways it
should not break anything.

https://bugzilla.gnome.org/show_bug.cgi?id=687263
2012-11-01 20:53:48 +00:00
Tim-Philipp Müller
44efab8e3d rtpvp8: use gst_element_class_set_static_metadata()
where possible. Avoids some string copies. Also re-indent
some stuff. Also some indent fixes here and there.
2012-11-01 20:53:48 +00:00
Mark Nauwelaerts
bc7dbbbd4f rtpvp8: replace gst_element_class_set_details_simple with gst_element_class_set_metadata 2012-11-01 20:53:48 +00:00
Sebastian Dröge
4853001547 rtpvp8: update for GST_PLUGIN_DEFINE() API changes 2012-11-01 20:53:48 +00:00
Wim Taymans
fccfca38d4 rtpvp8: update for buffer changes 2012-11-01 20:53:48 +00:00
Danilo Cesar Lemes de Paula
3edffb13e3 rtpvp8; fix compatibility with the third draft
https://bugzilla.gnome.org/show_bug.cgi?id=671073
2012-11-01 20:53:48 +00:00
Mark Nauwelaerts
d9581832a0 rtpvp8: port some more to new memory API 2012-11-01 20:53:47 +00:00
Olivier Crête
c6761daa27 rtpvp8: port to 0.11 2012-11-01 20:53:47 +00:00
Sebastian Dröge
2c5ea76bdc rtpvp8pay: Fix typo 2012-11-01 20:53:47 +00:00
Youness Alaoui
1cf155d70d rtpvp8: Update the pay/depay to the ietf-draft-01 spec 2012-11-01 20:53:47 +00:00
Vincent Penquerc'h
88aade4150 rtpvp8: fix bitstream parsing using the wrong kind of bitreader
VP8 uses a probabilistic bool coder, not a straight bit coder.
This fixes parsing when error-resilient is set.

This commit includes a copy of libvpx's bool coder, BSD licensed.

https://bugzilla.gnome.org/show_bug.cgi?id=652694
2012-11-01 20:53:47 +00:00
Olivier Crête
97c3f3617c rtpvp8: Reject unknown bitstream versions 2012-11-01 20:53:47 +00:00
Edward Hervey
74a1a704bf rtpvp8: Fix unitialized variable
Makes macosx compiler happy.
2012-11-01 20:53:47 +00:00
Sjoerd Simons
6ed6318076 rtpvp8depay: Accept packets with only one byte of data
When fragmenting partions it can happen that an RTP packet only caries 1
byte of RTP data.
2012-11-01 20:53:47 +00:00
Sjoerd Simons
a45e7a3fc0 rtpvp8pay: Treat the frame header just like any other partition
When setting up the initial mapping just act as if the global frame
information is another partition. This saves special-casing it later in
the actual packetizing code.
2012-11-01 20:53:47 +00:00
Sjoerd Simons
e9f4e9342f rtpvp8: Add simple payloaders and depayloaders for VP8
Minimal implementation of http://www.webmproject.org/code/specs/rtp/,
version 0.3.2
2012-11-01 20:53:47 +00:00
Wim Taymans
d6fd0ebd04 gstpay: fix for 1.0 events
Caps events are sometimes not followed by a buffer but by an event. Flush any
pending caps before we make a packet with the event.
Chain up to the parent event handler before we attempt to push RTP packets, it
might be a segment event.
2012-11-01 18:42:39 +00:00
Wim Taymans
05232c55a5 gstdepay: fix small leak 2012-11-01 18:42:24 +00:00
Wim Taymans
08e5a197b4 gstdepay: add support for events
Conflicts:
	gst/rtp/gstrtpgstdepay.c
2012-11-01 18:18:19 +00:00
Wim Taymans
54b783b5a3 rtpgstpay: add support for sending events
We currently only send tags and custom events. The other events
might interfere with the receiver timings or are otherwise handled
by RTP.

Conflicts:
	gst/rtp/gstrtpgstpay.c
2012-11-01 18:06:11 +00:00
Wim Taymans
6502d08e43 gstpay: rewrite payloader
Use adapter to assemble the payload and make a flush function to
turn this payload into (fragmented) packets.

Conflicts:
	gst/rtp/gstrtpgstpay.c
	gst/rtp/gstrtpgstpay.h
2012-11-01 17:57:52 +00:00
Douglas Bagnall
e3c77ba709 videomixer: get height via GST_VIDEO_FRAME_HEIGHT, not _WIDTH
https://bugzilla.gnome.org/show_bug.cgi?id=687330
2012-11-01 13:03:44 +00:00
Douglas Bagnall
79403bcb0c videbox: fix border filling for gray formats
Get the height via GST_VIDEO_FRAME_HEIGHT, not _WIDTH.

https://bugzilla.gnome.org/show_bug.cgi?id=687330
2012-11-01 13:02:16 +00:00
Wim Taymans
c0713e4b80 gstdepay: check for correct fragment offset
Make sure we only insert the rtp packet in the adapter when the
frag_offset matches. When the first packet of a fragment is dropped,
it avoids putting the remaining packets in the adapter and processing
the partial fragment.

Conflicts:
	gst/rtp/gstrtpgstdepay.c
2012-11-01 12:09:47 +00:00
Wim Taymans
8a402e0c06 gstpay: set C flag on all buffers of the fragment
Set the C flags on all the fragments instead of only those with
caps in them. This makes it easier in the receiver to check if there
is a caps in the assembled fragments just by looking at the last RTP
packet flags.
2012-11-01 12:06:08 +00:00
Wim Taymans
d78ff07f7d gstdepay: use the capsversion
Take the caps from the input caps and store it in the slot given
by capsversion.
2012-11-01 11:37:44 +00:00
Wim Taymans
936c3819b5 gstpay: send caps inline
Place the capsversion on the outgoing caps so that they end up in
an SDP as well. Receivers need to know what capsversion a particular
caps is for to be able to match the caps to the CV in the RTP packets.
Place the caps inside the RTP packet whenever the caps change.

Based on patch by Andrzej Bieniek <andrzej.bieniek@pure.com>

Conflicts:
	gst/rtp/gstrtpgstpay.c
	gst/rtp/gstrtpgstpay.h
2012-11-01 11:34:33 +00:00
Andrzej Bieniek
3b1931a039 gstpay: add debug
Conflicts:
	gst/rtp/gstrtpgstpay.c
2012-11-01 11:28:50 +00:00
Andrzej Bieniek
ee5ecc7773 depay: correctly skip caps header size
Conflicts:
	gst/rtp/gstrtpgstdepay.c
2012-11-01 11:27:13 +00:00
Tim-Philipp Müller
ef0805ea14 matroskademux: put streamheaders on vorbis/speex/flac/theora caps to make remuxing work
https://bugzilla.gnome.org/show_bug.cgi?id=640589
2012-10-30 23:29:46 +00:00
Tim-Philipp Müller
752cf98745 gst: fix variable order in some Makefile.am
https://bugzilla.gnome.org/show_bug.cgi?id=687013
2012-10-27 23:27:38 +01:00
Antoine Tremblay
a1c86de09a gst: add various missing GST_PLUGINS_BASE_LIBS in Makefile.am
Those plugins depend on either libgstaudio or libgstvideo,
which are in gst-plugins-base.

https://bugzilla.gnome.org/show_bug.cgi?id=687013
2012-10-27 23:26:41 +01:00
Alexey Fisher
29cd24bc41 matroskademux: mark invisible VP8 frames with the DECODE_ONLY flag
https://bugzilla.gnome.org/show_bug.cgi?id=654259
2012-10-27 14:46:02 +01:00
Stas Sergeev
238a5ec826 multifilesrc: fix stop index handling
Make sure the stop index is always honoured. Avoids
endless loop if one wants to read and output the same
file N times, for example.

https://bugzilla.gnome.org/show_bug.cgi?id=654853
2012-10-26 11:04:01 +01:00
Руслан Ижбулатов
78193dfe71 matroskademux: Support recursive SimpleTags
Fixes #682644
Depends on #682615
2012-10-26 10:16:42 +02:00
Руслан Ижбулатов
cd719bb808 matroskademux: Expand the tag mapping.
* Also expose unknown tags as key=value pairs.
* Arrange tag map in the same order tags are listed in Matroska spec, leaving
unmapped tags as comments.
* More specific TODOs.
* Remove duplicate DATE define.

Fixes #682615
Depends on #682524
2012-10-26 10:12:52 +02:00
Sebastian Dröge
6c635ce64f matroskademux: Fix uninitialized variable compiler warning 2012-10-26 10:09:39 +02:00
Руслан Ижбулатов
71fd688ef0 matroskademux: Matroska tag TargetType support
* Reads TargetType and TargetTypeValue from a Tag.
* After Tag is completely read, processes taglist, substituting some of the
tags depending on target type value and the presence of video/subtitle streams.
* Supports reading two new simpletags - PART_NUMBER and TOTAL_PARTS

Depends on #682448
Fixes #682524
2012-10-26 10:08:18 +02:00
Руслан Ижбулатов
b75628f041 matroskademux: Per-track tags for Matroska
Requires Matroska file to have sane layout (track info before tag info).
Uses replace-merge.
Makes track UIDs 64-bit.

Fixes #682448
2012-10-26 10:03:55 +02:00
Tim-Philipp Müller
fe7236230c multifilesrc: fix typo in property description 2012-10-25 20:19:44 +01:00
Michael Smith
a88caf84b4 qtdemux: read video format header fully (so we can find 'pasp' atoms) for more fourccs.
Fixes aspect ratio of prores files.
2012-10-25 12:18:50 -07:00
Thiago Santos
02d91dcd24 imagefreeze: the new get_caps already does the filter intersection
It should be faster to pass the caps to intersect as the filter caps,
rather than using NULL and intersecting 'manually' later.

https://bugzilla.gnome.org/show_bug.cgi?id=686837
2012-10-25 10:32:17 -03:00
Thiago Santos
115581eb2e imagefreeze: avoid assertion when using accept caps query
This query must receive a fixed caps, so imagefreeze should
fixate its framerate before sending the query downstream.

https://bugzilla.gnome.org/show_bug.cgi?id=686837
2012-10-25 09:39:36 -03:00
Arnaud Vrac
bc79fe565c qtdemux: use correct type for channel-mask bitmask
Fixes crash on 32-bit systems.
2012-10-24 12:54:08 +01:00
Tim-Philipp Müller
7275860bdd flacparse: fix coverart extraction if vorbis comments come after picture header
See sample file for bug #684701.
2012-10-23 16:02:05 +01:00
Tim-Philipp Müller
7c41f42eec flacparse: ignore bad headers if we have a valid STREAMINFO header
If we run into any header parsing issues and we have a valid
STREAMINFO header already, don't error out, but just stop
header parsing and try to find some audio frames.

https://bugzilla.gnome.org/show_bug.cgi?id=684701
2012-10-23 13:56:54 +01:00
Tim-Philipp Müller
49cc719809 flacparse: post proper error message and fix buffer leak on header parsing error
https://bugzilla.gnome.org/show_bug.cgi?id=684701
2012-10-23 13:56:54 +01:00
Michael Smith
150bd97e96 qtdemux: with raw audio, set a default channel-mask for multichannel audio.
This doesn't actually parse 'chan' because it's absurdly complex.
2012-10-22 22:34:43 -07:00
Sebastian Rasmussen
9fc62a58e3 updsrc: fix typo causing compilation error
gstudpsrc.c: In function 'gst_udpsrc_create':
gstudpsrc.c:365: error: 'ret' may be used uninitialized in this function

https://bugzilla.gnome.org/show_bug.cgi?id=686642
2012-10-22 23:19:28 +01:00
Wim Taymans
a2eead3d60 avi_ fix invert function
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=686550
2012-10-22 11:55:59 +02:00
Wim Taymans
0e3ef30c31 avi: fix debug 2012-10-22 11:55:22 +02:00
Wim Taymans
199aaa4021 qtdemux: add support for 'generic' samples
Add support for stuffing a complete stream into 1 sample.

See https://bugzilla.gnome.org/show_bug.cgi?id=686550
2012-10-22 11:39:37 +02:00
Tim-Philipp Müller
aa3ba65eb5 qtdemux: don't leak gst_riff_strf_auds in case of MS/RIFF audio
https://bugzilla.gnome.org/show_bug.cgi?id=681192
2012-10-19 19:26:45 +01:00
Mark Nauwelaerts
35cd53867c matroskamux: unsigned subtitle template 2012-10-19 16:14:01 +02:00
Youness Alaoui
13328bc129 videomixer2: Fix race condition where a src setcaps is ignored
If both pads receive data at the same time, they will both get their
sink_setcaps called which will call the src_setcaps, but there is
a race condition where the second one might not be called.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=683842
2012-10-19 12:10:31 +02:00
Mark Nauwelaerts
5742352e10 matroskamux: do not use unoffical V_MJPEG codec id
Since it's not spec'ed, consider it a VfW compatibility
case. Many applications (e.g. avidemux) don't understand
the unofficial V_MJPEG id.

Fixes #659837.

Conflicts:
	gst/matroska/matroska-mux.c
2012-10-18 18:29:40 +01:00
Wim Taymans
e9040e90a5 jpegdepay: store quant tables in zigzag order 2012-10-17 14:23:01 +02:00
Wim Taymans
d5fd524a0c rtsession: fix compiler warning 2012-10-17 13:55:45 +02:00
Wim Taymans
26a21e85e2 rtpbin: clarify the ntp-sync option 2012-10-17 13:35:07 +02:00
Wim Taymans
f17db5c4ed rtpsession: update caps in the source
Inform the source when caps changed. This was removed in the port to 1.0
leaving the source unaware of the clock-rate and unable to interpollate
rtp timestamps for SR packets.
2012-10-17 13:22:40 +02:00
Wim Taymans
f4eef3f48d rtpbin: set PTS and DTS in jitterbufffer 2012-10-17 12:46:32 +02:00
Wim Taymans
796c1d8029 rtpbin: disable check for ntp-sync
Disable the check for the ntp-sync method. It is expected that
a rather larger offset needs to be applied with this method.
2012-10-17 12:27:03 +02:00
Wim Taymans
1cebcfa8c2 rtpbin: use running-time for NTP time
When use-pipeline-clock is set, use the running-time of the
pipeline to calculate the NTP timestamps. This method would previously
only work when the base-time is set to 0 but with this change it can
also work with different offsets and we can also implement pause/resume
of the sender and receiver now.
2012-10-17 12:26:05 +02:00
Wim Taymans
5ec642d0c3 videocrop: port to videofilter 2012-10-17 10:20:12 +02:00
Wim Taymans
3ef7c8ab93 videobox: use out_info for out properties 2012-10-17 09:36:50 +02:00
Wim Taymans
f701d980e6 median: small cleanups 2012-10-16 14:40:19 +02:00
Wim Taymans
0e21e80e9b median: remove now that it is in videofilter 2012-10-16 13:56:19 +02:00
Wim Taymans
9e67891f72 videomedian: copy media to videomedian
Copy the median video filter to videofilters and rename to
videomedian.
2012-10-16 13:47:24 +02:00
Wim Taymans
b893197317 media: port to 1.0 2012-10-16 13:16:29 +02:00
Tim-Philipp Müller
f94572fb36 avidemux: append palette data to paletted 8-bit RGB frames
Fixes playback of 8-bit indexed RGB videos, with fixes in -base.

https://bugzilla.gnome.org/show_bug.cgi?id=686046
2012-10-16 01:09:05 +01:00
Tim-Philipp Müller
e9682b938a qtdemux: don't assert if upstream size is not available when guessing bitrates
Fixes abort in push mode where the source is not seekable and the
size of the file is not available, as with

  cat foo.mp4 | gst-launch-1.0 playbin uri=fd://0

Less noticable with releases, since we disable all
g_assert() there.

https://bugzilla.gnome.org/show_bug.cgi?id=686008
2012-10-13 00:08:01 +01:00
Michael Smith
3a3a7c38aa qtdemux: allow more streams. Bump this constant to 32, which should be
enough for real-world files.
2012-10-12 14:38:33 -07:00
Michael Smith
d60c9ce2a4 qtdemux: support more different fourcc values for other ProRes variants. 2012-10-12 14:35:49 -07:00
Wim Taymans
adb70e89f9 rtspsrc: remove unused include 2012-10-10 12:05:34 +02:00
Rasmus Rohde
11ed7c0373 multiudpsink: add multicast-iface property
udpsrc already has support for setting the multicast interface, which
is useful for multi-homed machines. This patch adds the same code to
the multiudpsink.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=685864
2012-10-10 11:48:25 +02:00
Wim Taymans
54f049c355 multiudpsink: don't error on send errors but only warn
Don't error on send errors but simply post a warning, it's possible
that the next packet will be fine.
2012-10-10 11:32:17 +02:00
Rasmus Rohde
6c169312d1 multiudpsink: add force-ipv4 option
Add an option to the multiudpsink that makes it possible to force
the use of an IPv4 socket.

This can e.g. be used to handle the issue described in
https://bugzilla.gnome.org/show_bug.cgi?id=682481
2012-10-10 10:28:24 +02:00
Wim Taymans
2955f0e10c multiudpsink: remove unused field 2012-10-10 10:18:52 +02:00
Wim Taymans
f4e1bb02b7 udpsrc: use negotiated allocator or pool
Use the base class to allocate a buffer for us because it knows how
to use the negotiated allocator or bufferpool.
2012-10-10 10:10:26 +02:00