Commit graph

13716 commits

Author SHA1 Message Date
Torrie Fischer
22ceb80ba9 rtpjitterbuffer: implement rtx statistics 2013-11-14 09:24:26 +01:00
Marc Leeman
be01e80e6b v4l2object: print FOURCC_FORMAT when enumerating
https://bugzilla.gnome.org/show_bug.cgi?id=712206
2013-11-13 13:52:49 +01:00
Wim Taymans
2e5b462ae3 jitterbuffer: advance expected seqnum after dropping
After dropping a buffer, move our expected seqnum

Conflicts:
	gst/rtpmanager/gstrtpjitterbuffer.c
2013-11-13 12:02:57 +01:00
Wim Taymans
a065b4fcde gstpay: only send one caps
Only send one caps in a packet. Two caps can happen when setcaps is called and
the config-interval expires at the same time.
2013-11-13 12:02:57 +01:00
Sebastian Dröge
9ae6981578 rtspsrc: Use the synced buffer mode in auto mode if a clock provider is in the SDP 2013-11-13 10:54:19 +01:00
Marc Leeman
bc87f39a90 v4l2: init v4l2_buffer to 0x0 before ioctl
https://bugzilla.gnome.org/show_bug.cgi?id=712137
2013-11-12 13:08:33 -05:00
Wim Taymans
e4bc81d7d2 rtpsession: remove collision reconfigure event
Remove bogus reconfigure event on collision, we don't want to send the event on
the receiving RTP pad and the collision event is now handling this
case.

See https://bugzilla.gnome.org/show_bug.cgi?id=711560
2013-11-11 15:27:18 +01:00
Julien Isorce
b32fc6f416 gstrtpsession: send custom upstream event "GstRTPCollision" on send_rtp_sink pad
See https://bugzilla.gnome.org/show_bug.cgi?id=711560
2013-11-11 15:25:52 +01:00
Wim Taymans
3623ebf01e check: add rtpsession test
Add a basic rtpsession test to ensure that RR blocks are generated when
multiple SSRC senders are active.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711270
2013-11-11 14:28:52 +01:00
Mark Nauwelaerts
49d52a64d6 ac3parse: correctly handle timestamps when parsing x-private1-ac3
... the way it has always worked fine in a52dec.
2013-11-11 13:35:29 +01:00
George Kiagiadakis
b81b2efa3e rtpjitterbuffer: fix crash when do-retransmission=true and a lot of buffers are lost
The problem here was that the jitterbuffer lock was unlocked to push
the event, but that caused another thread to remove the timer currently
being processed, probably because the amount of rtx events
(and therefore timers) was getting too high. The solution is to
unlock and push the event only after timer processing has finished.

fixes https://bugzilla.gnome.org/show_bug.cgi?id=711131
2013-11-11 11:51:45 +01:00
Per x Johansson
b3e0b1dbca matroskademux: Avoid division by zero assert in gst_matroska_demux_search_pos
https://bugzilla.gnome.org/show_bug.cgi?id=711829
2013-11-11 11:30:54 +01:00
Philippe Normand
0ee332378b wavenc: generate a non-empty data header
Restore the behavior of the element to the state before commit
db29522a43. A non-empty header is
generated and when the EOS event is received the header is generated
again, this time with the correct size.

https://bugzilla.gnome.org/show_bug.cgi?id=711699
2013-11-09 11:22:12 +01:00
Wim Taymans
c8db05d610 rtpsource: update receiver stats for sender
An internal sender in a session is also a receiver of its own packets so update
the receiver stats. Other senders in the session will use this info to generate
correct RB blocks in their SR reports.
2013-11-07 16:24:30 +01:00
Wim Taymans
268a75e705 rtpsource: refactor receiver stats update 2013-11-07 16:24:30 +01:00
Thiago Santos
33ebda8ecf qtdemux: handle fragmented files with mdat before moofs
Assume a file with atoms in the following order: moov, mdat, moof,
mdat, moof ...

The first moov usually doesn't contain any sample entries atoms (or
they are all set to 0 length), because the real samples are signaled
at the moofs. In push mode, qtdemux parses the moov and then finds the mdat,
but then it has 0 entries and assumes it is EOS.

This patch makes it continue parsing in case it is a fragmented file so that
it might find the moofs and play the media.

https://bugzilla.gnome.org/show_bug.cgi?id=710623
2013-11-07 11:22:04 -03:00
Thiago Santos
0e78ffc9d6 qtdemux: When using a buffered mdat, store all received data for later use
In push mode, when qtdemux can't use a seek to skip the mdat buffer it has
to buffer it for later use.

The issue is that after parsing the next moov/moof, there might be some
trailing bytes from the next atom in the file. This data was being discarded
along with the already parsed moov/moof and playback would fail to continue
after the contents of this moov/moof are played.

This is particularly bad on fragmented files that have the mdat before the
corresponding moof. So you'd get:

mdat|moof|mdat|moof ...

When a moof was received, it usually came with some extra bytes that would
belong to the next mdat (because upstream doesn't care about atoms alignment).
So those bytes were being discarded and playback would fail.

This patch makes qtdemux store those extra bytes to reuse them later after the
mdat is emptied.

https://bugzilla.gnome.org/show_bug.cgi?id=710623
2013-11-07 11:22:03 -03:00
Sebastian Dröge
fd89e36c8a multiudpsink: Also use the bind-port property if no bind-address was given 2013-11-07 09:50:39 +01:00
Andoni Morales Alastruey
619f4f5c5a osxaudiosink: fix segfault when we can't get the channels layout 2013-11-07 00:53:48 +01:00
Sebastian Dröge
111982de28 rtpvp8pay: Make Picture ID mode configurable and default to no picture ID
Some implementations (linphone) only support no picture at all in the
stream and will fail if one is provided.

https://bugzilla.gnome.org/show_bug.cgi?id=711497
2013-11-05 17:26:49 +01:00
Tim-Philipp Müller
27a2fa51e1 Automatic update of common submodule
From 865aa20 to dbedaa0
2013-11-05 11:18:34 +00:00
Paul HENRYS
8eceb8f327 Add call to gst_rtp_h264_pay_clear_sps_pps() when receiving a STREAM_START event
https://bugzilla.gnome.org/show_bug.cgi?id=692787
2013-11-04 14:36:28 -05:00
Rico Tzschichholz
b137f79581 rtsp: Add missing gio-2.0 deps and includes 2013-11-02 23:12:13 +01:00
Sebastian Dröge
f180f3d1ba audioiirfilter: Fix initialization coefficient handling
Broke unit test.
2013-11-01 18:31:36 +01:00
Aleix Conchillo Flaque
82b8374af8 rtspsrc: allow setting tls certificate validation flags
Added a new property "tls-validation-flags". If the url transport is
TLS, the validation flags will be set to the rtsp connection.

https://bugzilla.gnome.org/show_bug.cgi?id=711230
2013-11-01 16:47:36 +01:00
Sebastian Dröge
2559557ff1 audioiirfilter: Don't crash if no filter coefficients are provided
...and by default use a identity filter.

https://bugzilla.gnome.org/show_bug.cgi?id=710215
2013-10-31 22:43:49 +01:00
Sebastian Dröge
4f288a5234 wavpackenc: Fix writing of MD5 sums and other metadata blocks
These don't have the FINAL_BLOCK flag set.
2013-10-31 19:15:12 +01:00
Djalma Lúcio Soares da Silva
a22d61007a hdv1394src: Make it possible to select a camera by its GUID
The source hdv1394src has the guid property that permits select a camera
connected from its GUID number.
However when this property is setted the selected camera is not changed.
The source continues using the default camera.

This problem was solved using the function iec61883_cmp_connect.
The reference for the function could be found here:
http://www.dennedy.org/libiec61883/API-iec61883-cmp-connect.html

The solution came from dvgrab source code.

https://bugzilla.gnome.org/show_bug.cgi?id=710415
2013-10-31 17:26:08 +01:00
Thiago Santos
43602e2d8a tests: souphttpsrc: add explicit cast to silence warning
Silencing this warning:

elements/souphttpsrc.c:533:14: error: comparison between ‘SoupKnownStatusCode’ and ‘enum <anonymous>’ [-Werror=enum-compare]
   if (status != SOUP_STATUS_OK && !send_error_doc)

With gcc 4.8.2 (debian)
2013-10-31 13:22:40 -03:00
Wim Taymans
e96f8f519c rtspsrc: proxy new buffer mode 2013-10-31 10:38:35 +01:00
Wim Taymans
43645d5981 jitterbuffer: add new timestamp mode
Add a new timestamp mode that assumes the local and remote clock are
synchronized. It takes the first timestamp as a base time and then uses the RTP
timestamps for the output PTS.
2013-10-31 10:15:25 +01:00
Sebastian Dröge
4a8082856a matroska-demux: Fix compiler warning
matroska-demux.c: In function 'gst_matroska_demux_add_stream':
matroska-demux.c:1379:7: error: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'guint64' [-Werror=format=]
       "%03u", context->uid);
       ^
2013-10-30 22:13:06 +01:00
Matthieu Bouron
52d0588c21 videomixer: remove unneeded guint comparaison
https://bugzilla.gnome.org/show_bug.cgi?id=711010
2013-10-29 16:38:26 +00:00
Matthieu Bouron
d57b9628fc osxvideosink: fix missing selector name warnings
The spaces matter in ObjC

https://bugzilla.gnome.org/show_bug.cgi?id=711013
2013-10-28 14:40:16 +00:00
Matthieu Bouron
ec8c141d6a y4menc: fix uninitialized variable warning
https://bugzilla.gnome.org/show_bug.cgi?id=711011
2013-10-28 14:20:13 +00:00
Thiago Santos
2eec7909aa qtdemux: check if the end_time is defined before using it
Avoids sending EOS too soon because of overflow. Can happen on
fragmented mp4 playback.
2013-10-25 11:30:36 -03:00
Thiago Santos
673301ef48 qtdemux: use correct unref function
Events aren't GstObjects, but GstMiniObjects
2013-10-23 13:38:56 -03:00
Stefan Sauer
ae1150e85c qtdemux: rename chunks_are_chunks to chunks_are_samples and flip the logic
As the variable name suggests, sometimes chunks are chunks. Rename the variable
to tell what they are when they are not chunks.
2013-10-15 09:53:30 +02:00
Stefan Sauer
6789ba1ece qtdemux: fix typos and add more logging for unhandled parts 2013-10-15 09:53:30 +02:00
Ognyan Tonchev
c81ce6b152 multiudpsink: Fix memory leak
Unmap all GstMemory of the current buffer when flushing.

https://bugzilla.gnome.org/show_bug.cgi?id=710110
2013-10-14 18:21:54 +02:00
Tim-Philipp Müller
771ffe5609 flvmux: fix broken sample pipeline
which was muxing raw audio and video into flvmux, which won't work,
even if there were converters.
2013-10-12 20:44:31 +01:00
Tim-Philipp Müller
29effb522a flvmux: require stream-format=raw for mpeg-2 too, but don't require framed field
raw implies that it's framed already. Fixes .. ! faac ! flvmux
2013-10-12 20:37:41 +01:00
Thiago Santos
856c07ea00 souphttpsrc: do not emit EOS when connection drops
If the pipeline is stalled for too long, souphttpsrc will block and
stop fetching data from the network. This can cause the connection to
drop and souphttpsrc would handle it as an EOS. This patch makes it
persist and try to fetch more data until the end of the content length
or until receiving an error that it is beyong limits in case the content
is unknown.

https://bugzilla.gnome.org/show_bug.cgi?id=683536
2013-10-11 16:10:16 -03:00
Sebastian Dröge
c65a8881f9 dvdec: Don't send segment event before caps
https://bugzilla.gnome.org/show_bug.cgi?id=709728
2013-10-10 13:52:35 +02:00
Sebastian Dröge
fa399bf834 dvdemux: Send stream-start, caps and segment events in the right order
https://bugzilla.gnome.org/show_bug.cgi?id=709728
2013-10-09 17:46:33 +02:00
Sebastian Dröge
b8f9e966d5 wavenc: A-Law and Mu-Law don't have width/depth/signed caps fields
https://bugzilla.gnome.org/show_bug.cgi?id=709614
2013-10-08 11:28:04 +02:00
Sebastian Dröge
a5bf9f24c9 deinterlace: Fix handling of planar video formats in greedyh method
https://bugzilla.gnome.org/show_bug.cgi?id=709507
2013-10-07 12:54:11 +02:00
Reynaldo H. Verdejo Pinochet
38c5e5efdc matroska: Trivial grammar fix on debug msg 2013-10-06 10:02:09 -07:00
Reynaldo H. Verdejo Pinochet
1cb31eeacc matroskamux: Add context flag for WebM
WebM has a couple of specific requirements we need to handle.
Idea is to set this flag once and just rely on mux->is_webm
at run time instead of repeatedly figuring this out from
GST_MATROSKA_DOCTYPE_WEBM (which requires a strcmp()).
2013-10-06 09:54:28 -07:00
Reynaldo H. Verdejo Pinochet
edeed575ae matroska: Do not write SegmentUID for WebM mux
WebM spec states SegmentUID is Unsupported. Files produced
with gstreamer without this change will spit an error like
this when passed to mkvalidator:

ERR201: Invalid 'SegmentUID' for profile 'webm' in Info at 192
2013-10-06 08:12:50 -07:00