Commit graph

8089 commits

Author SHA1 Message Date
Thiago Santos
e00f0de4f3 multifilesink: post file message on EOS
When multifilesink is operating in any mode other than one file
per buffer, the last file created won't have a file message posted
as multifilesink doesn't handle the EOS event.

This patch fixes it by using the last position to post a file
message when EOS is received. This should ensure at least the
time related data and the filename are posted to the application
or other elements

https://bugzilla.gnome.org/show_bug.cgi?id=747000
2015-04-04 07:58:44 -03:00
Jan Schmidt
ffa5fce094 qtdemux: Guard against 64-bit overflow
For large-file atoms, guard against overflow in the size field,
which could make us jump backward in the file and cause
infinite loops.
2015-04-03 23:07:07 +11:00
Jan Schmidt
3d59b5f814 isomp4: Make non-seekable downstream an error in normal mode
When not in fast-start or fragmented mode, we need to be able
to rewrite the size of the mdat atom, or else the output just
won't be playable - the mdat placeholder with size == 0 will
cover the rest of the file, including any moov atom we write out.

https://bugzilla.gnome.org/show_bug.cgi?id=708808
2015-04-03 23:07:04 +11:00
Sebastian Rasmussen
cf54d4cc67 rtph263pay/-depay: add framesize SDP attribute
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=726416
2015-04-02 19:38:21 -04:00
Sebastian Rasmussen
896fc20806 rtpjpegpay/-depay: Remove incorrectly introduced framesize SDP attribute
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=726415
2015-04-02 17:52:41 -04:00
Olivier Crête
d410acf649 rtpvp8depay: Parse width/height/profile from keyframes
This makes it possible to mux the result into a container
such as matroska.

https://bugzilla.gnome.org/show_bug.cgi?id=747208
2015-04-01 19:31:18 -04:00
Jan Schmidt
c0d4986c8d flv: When passing seek event upstream, hold a ref.
In case upstream can't handle the seek, make sure we
keep a ref on the event to attempt to handle it ourselves.
2015-03-31 00:20:48 +11:00
Guillaume Desmottes
592cab1512 matroska: fix GValue leaks when parsing tags
gst_tag_list_add_value() doesn't consume the GValue we pass to it so there is
no point copying it.

https://bugzilla.gnome.org/show_bug.cgi?id=746810
2015-03-30 08:59:36 -03:00
Mark Nauwelaerts
71b0b8d943 qtdemux: resurrect some flow return handling
https://bugzilla.gnome.org/show_bug.cgi?id=744572
2015-03-29 13:58:56 +02:00
Mark Nauwelaerts
33cc1b4854 flvdemux: resurrect some flow return handling
https://bugzilla.gnome.org/show_bug.cgi?id=744572
2015-03-29 13:58:56 +02:00
Mark Nauwelaerts
593cfa086c matroskademux: resurrect some flow return handling
https://bugzilla.gnome.org/show_bug.cgi?id=744572
2015-03-29 13:58:56 +02:00
Thiago Santos
d56b11af56 matroska: store stream tags and push as updated
New tags can be found on different parts of the file, so this patch
keeps the stream taglists around for the life cycle of the pad
and adds those new tags as found. Then a new tag is found, the
pad's is marked with a tags changed flag, making the element push
a new tag event on the next check. Before this, we were sending
only the newly found tags, as the element was losing its taglist
when pushing the event.
2015-03-28 11:20:39 -03:00
Ramiro Polla
7b2b619a8f matroskademux: send global tags incrementally
Instead of sending only new tags once they are found, merge the taglist
and send them incrementally.
2015-03-28 10:24:57 -03:00
Ramiro Polla
af45021036 matroskaparse: send global tags
Global tags are already being read in matroskaparse, but they are not
currently being sent.

This patch makes global tags get sent incrementally whenever new ones
are found.

https://bugzilla.gnome.org/show_bug.cgi?id=746242
2015-03-28 10:24:57 -03:00
Vineeth T M
fb5394dbf0 quarktv: fix "planes" property range, a value of 0 is not allowed
When planes property is set to 0, the pipeline executes in
an infinite loop and never exits. Since planes must never
be 0, set the minimum value in the property description
to 1.

https://bugzilla.gnome.org/show_bug.cgi?id=743906
2015-03-28 11:31:42 +00:00
David Schleef
59756c1898 wavparse: Fix up comments regarding DTS 2015-03-26 16:24:52 -07:00
Nicolas Dufresne
84725d62b5 rtspsrc: Fix segment in TCP mode
It is expected that buffers are time-stamped with running time. Set
a segment accordingly. In this case we pick 0,-1 as this is what udpsrc
would do. Depayloaders will update the segment to reflect the playback
position.

https://bugzilla.gnome.org/show_bug.cgi?id=635701
2015-03-26 17:54:08 -04:00
David Schleef
c3bb399fd3 wavparse: be more strict about typefinding DTS
Code now matches comments.
2015-03-26 12:22:43 -07:00
Nicolas Dufresne
32aed67144 rtspsrc: Remove useless function
This function didn't do anything special, let's not use a function for
that.
2015-03-25 15:28:24 -04:00
Nicolas Dufresne
12762ad1a5 rtpjitter: Account for rtx_retry in overflow check
As rtx_retry is part of the substraction, we need to take it into
account, otherwise we may endup with a big value.
2015-03-25 15:25:56 -04:00
Nicolas Dufresne
8afc8c8f3b rtspsrc: Fix seeking query
The segment start/stop in the query is meant to represent the seekable
portion of the stream. It does not match the segment start/stop. Instead
export 0 to duration.
2015-03-24 16:51:12 -04:00
Sebastian Dröge
ac0141b6a0 flvdemux: Only set caps once if they don't change
Previously we were setting new caps with the same content for every H264 or
AAC codec_data we found in the stream, spamming everything and causing
renegotiations.
2015-03-24 16:18:53 +01:00
Sebastian Dröge
c9b42951fe flvdemux: Don't create AAC/H264 caps without codec_data
Instead delay creating the caps until we read the codec_data from the stream,
or fail if we get normal data before the codec_data.

AAC raw caps and H264 avc caps always need codec_data, setting caps on the pad
without them is going to make negotiation fail most of the time. Even if we
later set new caps with the codec_data, that's usually going to be too late.

https://bugzilla.gnome.org/show_bug.cgi?id=746682
2015-03-24 16:15:04 +01:00
Sebastian Dröge
5e88b53212 flvdemux: Fix indention 2015-03-24 15:39:40 +01:00
Sebastian Dröge
0e3609a6e1 rtpsession: Fix another instance of sticky event misordering warnings
Make sure that the sync_src pad has caps before the segment event.
Otherwise we might get a segment event before caps from the receive
RTCP pad, and then later when receiving RTCP packets will set caps.
This will results in a sticky event misordering warning

This fixes warnings in the rtpaux unit test but also in the
rtpaux and rtx examples in tests/examples/rtp

https://bugzilla.gnome.org/show_bug.cgi?id=746445
2015-03-21 19:30:32 +01:00
Sebastian Dröge
17d90b453f rtpsession: Also start the RTCP send thread when receiving RTP or RTCP
Before we only started it when either:
- there is no send RTP stream
or
- we received an RTP packet for sending

This could mean that if the send RTP pads are connected but never receive any
RTP data, and the same session is also used for receiving RTP/RTCP, we would
never start the RTCP thread and would never send RTCP for the receiving part
of the session.

This can be reproduced with a pipeline like:

gst-launch-1.0 rtpbin name=rtpbin \
udpsrc port=5000 ! "application/x-rtp, media=video, clock-rate=90000, encoding-name=H264" ! rtpbin.recv_rtp_sink_0 \
udpsrc port=5001 ! rtpbin.recv_rtcp_sink_0 \
rtpbin.send_rtcp_src_0 ! fakesink name=rtcp_fakesink silent=false async=false sync=false \
rtpbin.recv_rtp_src_0_2553225531_96 ! decodebin ! xvimagesink \
fakesrc ! valve drop=true ! rtpbin.send_rtp_sink_0 \
rtpbin.send_rtp_src_0 ! fakesink name=rtp_fakesink silent=false async=false sync=false -v

Before this change the rtcp_fakesink would never send RTCP for the receiving
part of the session (i.e. no receiver reports!), after the change it does.

And before and after this change it would send RTCP for the receiving part of
the session if the sender part was omitted (the last two lines).
2015-03-21 17:38:07 +01:00
Sebastian Dröge
1018aacb35 rtprtxsend: Add support for buffer lists 2015-03-19 11:54:37 +01:00
Sebastian Dröge
57ff27f8c8 rtprtxqueue: Implement support for buffer lists 2015-03-19 11:54:37 +01:00
Nicolas Dufresne
1c27002ebd rtspsrc: Improve trace readability
Change the command number into strings.
2015-03-18 17:32:36 -04:00
Jan Alexander Steffens (heftig)
be8e3196a3 flvdemux: Don't repeatedly warn after no_more_pads (v2)
This can get rather spammy for such a high log level.
Only warn once per stream.

https://bugzilla.gnome.org/show_bug.cgi?id=746274
2015-03-16 12:01:43 +00:00
Jan Alexander Steffens (heftig)
ac8a272381 flvdemux: Introduce constant for no-more-pads threshold
https://bugzilla.gnome.org/show_bug.cgi?id=746274
2015-03-16 12:01:43 +00:00
Jan Alexander Steffens (heftig)
f2a1f74cec flvdemux: Fix warning to contain 'video'
https://bugzilla.gnome.org/show_bug.cgi?id=746274
2015-03-16 12:01:43 +00:00
Nicola Murino
bb3d82ef04 matroskademux: for dts only stream set pts=dts for intra only formats
https://bugzilla.gnome.org/show_bug.cgi?id=745192
2015-03-15 14:28:36 +00:00
Ramiro Polla
0fad053497 matroskademux: fix sending of tags
* Fix critical when new tags are found after segment event has already
  been sent.
* Send global tags before stream tags.
* Split sending of tags out of gst_matroska_demux_send_event() into its
  own function.

https://bugzilla.gnome.org/show_bug.cgi?id=745973
2015-03-14 18:17:48 +00:00
Ramiro Polla
90be7b4e1e rtspsrc: properly escape percent sign in documentation 2015-03-14 14:22:39 +00:00
Ramiro Polla
63944753b0 rtpdtmfmux: properly escape percent sign in documentation 2015-03-14 14:22:26 +00:00
Tim-Philipp Müller
3c595f308a multiudpsink: fix crash with GST_DEBUG enabled
g_inet_socket_address_get_address() does not give
us a ref to the address, so don't unref it.
2015-03-13 18:38:42 +00:00
Sebastian Dröge
7b90bf3215 level: Don't read over the end of the input memory
Previously we advanced the in_data pointer by bps for every channel, and then
later again for block_size*bps. This caused us to be one sample further than
expected if an input buffer covered two analysis frames. And in the end lead
to completely bogus values reported by level.

https://bugzilla.gnome.org/show_bug.cgi?id=746065
2015-03-12 13:51:56 +00:00
Tim-Philipp Müller
c4fa54da17 Fix double semicolons 2015-03-10 09:31:20 +00:00
Jan Schmidt
d441140cd6 splitmux: Shut down element before downward state change
Make sure the state change won't hang trying to shut down pads
by making sure the streaming has stopped before chaining up.
2015-03-10 15:49:33 +11:00
Luis de Bethencourt
823194284c rtph264depay: remove unused value
CID #1226474
2015-03-09 16:22:33 +00:00
Luis de Bethencourt
5cd293fe76 rtph263pay: fix leak
CID 1212156
2015-03-09 16:17:45 +00:00
Luis de Bethencourt
e87113781a rtph263pay: remove uneeded variable
We just need to save the ebit information in case there is an error decoding.
2015-03-09 16:17:45 +00:00
Luis de Bethencourt
db3ade5bfb matroska: error mode if can't push buffer
If gst_pad_push() fails, inform and return flow error.
2015-03-09 12:51:21 +00:00
Luis de Bethencourt
f494da89b4 matroska: unused value
Value set in ret will be overwritten just before exiting the function.

CID #1226469
2015-03-09 12:13:40 +00:00
Sebastian Dröge
9e934d076b rtpjitterbuffer: Drop packets with sequence numbers before the seqnum-base
These are outside the expected range of sequence numbers and should be
clipped, especially for RTSP they might belong to packets from before a seek
or a previous stream in general.
2015-03-09 11:10:35 +01:00
Linus Svensson
398296d978 rtspsrc: Don't include payload type in the caps for framesize
When the sdp media attribute framesize are converted to caps
the <payload> should not be included.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725335
2015-03-09 10:18:35 +01:00
Sebastian Dröge
38bf3d3808 rtpjitterbuffer: Don't forget to unlock the mutex when receiving GAPs in TCP streams 2015-03-09 10:05:14 +01:00
Mark Nauwelaerts
d0587467fc avidemux: resurrect some flow return handling 2015-03-07 20:22:33 +01:00
Nicolas Huet
5ead23a14a aacparse: fix LOAS parsing issue
Fix missing index in syncword searching

https://bugzilla.gnome.org/show_bug.cgi?id=745585
2015-03-06 14:34:08 -03:00
Jan Schmidt
b0ce43cde3 splitmuxsink: Protect property variables with the object lock.
Use the object lock instead of the splitmux lock to protect
internal property variables, so they're not locked when
switching to a new file.

https://bugzilla.gnome.org/show_bug.cgi?id=744420
2015-03-07 00:55:47 +11:00
Sebastian Dröge
c34a7cb90d rtspsrc: Fix handling of interleaved (TCP) streams
We need to set up the transport in any case, not just if we have a container
stream or a non-interleaved stream. Only if we have an interleaved stream and
are retrying, we should not set up the stream again.

https://bugzilla.gnome.org/show_bug.cgi?id=745599
2015-03-05 12:15:04 +01:00
Sebastian Dröge
b4aaa11f97 rtspsrc: Don't unref caps we don't own 2015-03-05 09:56:37 +01:00
Sebastian Dröge
297d808acc rtspsrc: Push RTCP caps on the RTCP pads
Otherwise we will get not-negotiated later from rtpbin, and will never be able
to send RTCP packets back to the server. Note that error flow returns from the
RTCP pads are ignored, that's why it didn't fail more visible before.
2015-03-05 09:47:29 +01:00
Sebastian Dröge
788074733c rtspsrc: Make sure to send SEGMENT events on all pads 2015-03-05 09:47:29 +01:00
Santiago Carot-Nemesio
e05378ec16 rtp: Add Full Intra Request (FIR) packets to statistics
https://bugzilla.gnome.org/show_bug.cgi?id=745587
2015-03-04 12:04:40 +01:00
Santiago Carot-Nemesio
22791413f9 rtp: Add Packet Loss Indication (PLI) to statistics
This is helpful to provide statistics in the format defined in
http://w3c.github.io/webrtc-stats/#dictionary-rtcrtpstreamstats-members.

https://bugzilla.gnome.org/show_bug.cgi?id=745587
2015-03-04 12:04:07 +01:00
Nicola Murino
c4e542de69 matroskamux: Remove duration accumulation logic
Duration accumulation can cause rounding errors and generate wrong
duration with different buffers that share the same timestamp.

https://bugzilla.gnome.org/show_bug.cgi?id=745192
2015-03-04 11:37:48 +01:00
Nicola Murino
f727762c1f matroska: Add an helper method to get buffer timestamps
... and replace GST_BUFFER_TIMESTAMP that always return PTS with this method
that return PTS or DTS based on stream type.

https://bugzilla.gnome.org/show_bug.cgi?id=745192
2015-03-04 11:36:24 +01:00
Sebastian Dröge
8984e18ef7 rtpsession: Add explanation why we have space for 32 hash tables
And also create only one, there's no need yet to create all 32 until
we implement RFC2762.
2015-03-04 11:30:43 +01:00
Sebastian Dröge
af2bdd6e15 Revert "rtpsession: Do not use an array of maps if they are not being used"
This reverts commit 1591adf4cd.

https://bugzilla.gnome.org/show_bug.cgi?id=745586#c1:
It's the beginning of an implementation of RFC 2762, which is needed for
large multicast groups. The implementation is not yet complete but why
not leave what is there and implement RFC 2762 instead?
2015-03-04 11:26:57 +01:00
Santiago Carot-Nemesio
1591adf4cd rtpsession: Do not use an array of maps if they are not being used
rtpsession declares an array of maps to store srrcs but only the
the key 0 is being used. This patch replaces the array of maps
for just one map and remove useless parameters in rtpsession

https://bugzilla.gnome.org/show_bug.cgi?id=745586
2015-03-04 11:25:30 +01:00
Jimmy Ohn
42599eab76 avidemux: remove not needed code
In gst_avi_demux_handle_src_query, there is not needed code.
We already check about stream is vbr or not at the upper line.
o, we don't need to check this condition becase stream is not
vbr 100% in this case.

https://bugzilla.gnome.org/show_bug.cgi?id=745276
2015-03-04 10:08:21 +01:00
Matej Knopp
f75e443a7a qtdemux: fix key unit seek
Unlike many other seek flags, the KEY_UNIT seek
flag is not copied over into the GstSegment,
since it's only relevant for the seek itself,
so we need to pass it explicitly to the seek
handler here.

https://bugzilla.gnome.org/show_bug.cgi?id=745339
2015-03-01 13:06:55 +00:00
Nicola Murino
e676b8ba9c matroskamux/demux: initialize dts_only
https://bugzilla.gnome.org/show_bug.cgi?id=745192
2015-02-27 09:56:06 +02:00
Nicola Murino
09b8f0efc3 matroskamux: store DTS for V_MS/VFW/FOURCC streams
https://bugzilla.gnome.org/show_bug.cgi?id=745192
2015-02-27 09:56:06 +02:00
Tim-Philipp Müller
f5b511b42b multifile: attempt to fix docs build issue on build bot 2015-02-26 19:48:33 +00:00
Arun Raghavan
0c06553fb2 interleave: Drop custom latency query handling
This is implemented by the default query handler now.
2015-02-27 00:59:43 +05:30
Arun Raghavan
dbc142afec videomixer: Drop custom latency querying logic
This is now implemented in the default latency query handler.
2015-02-27 00:59:43 +05:30
Sebastian Rasmussen
d331d931db rtpvorbispay: fix payloader description and author e-mail
https://bugzilla.gnome.org/show_bug.cgi?id=745226
2015-02-26 15:57:08 +00:00
Matej Knopp
fa283f407f matroskademux: V_MS/VFW/FOURCC streams have DTS instead of PTS
When such stream is present demuxer should set DTS on buffers instead
of PTS. This is consistent with how VLC and libav/ffmpeg handle VFW
streams.

Sample file
https://s3.amazonaws.com/MatejK/Samples/Matroska-VFW-DTS-Only.mkv

https://bugzilla.gnome.org/show_bug.cgi?id=745192
2015-02-26 11:12:34 +02:00
Krzysztof Kotlenga
e3ca4d1c86 rtspsrc: improve error message when unauthorized
Make use of NOT_AUTHORIZED error code instead of falling back to generic
READ error.

https://bugzilla.gnome.org/show_bug.cgi?id=601733
2015-02-24 11:08:27 +02:00
Thibault Saunier
fa0870658d qtdemux: All segment resulting from a seek should have the same seqnum
https://bugzilla.gnome.org/show_bug.cgi?id=744983
2015-02-23 20:05:20 +01:00
Vincent Penquerc'h
dc73d153cb rtpvp8pay: default encoding name to VP8
https://bugzilla.gnome.org/show_bug.cgi?id=737810
2015-02-19 14:29:02 +00:00
Vincent Penquerc'h
b88ea286d2 rtpvp8pay: make caps writable before truncating them
https://bugzilla.gnome.org/show_bug.cgi?id=737810
2015-02-19 14:06:51 +00:00
Vincent Penquerc'h
b866c989f5 rtpvp8pay: negotiate encoding name
Chrome uses a different one than gstreamer.

https://bugzilla.gnome.org/show_bug.cgi?id=737810
2015-02-19 13:52:29 +00:00
Sebastian Dröge
939a95d44b rtpsession: Send initial events on sync_rtcp pad when using RTP/RTCP muxing
Otherwise we will just send buffers on the pad without any events beforehand
and will get g_warnings() about that.
2015-02-19 13:34:47 +02:00
Thiago Santos
84b7cf6795 qtmux: remove not needed condition
gst_buffer_replace can handle NULL inputs by itself
2015-02-18 10:36:06 -03:00
Thiago Santos
a12e41c106 qtdemux: prefer the tfdt timestamp over the buffer's that is less accurate
The tfdt should be more accurate as the buffer timestamp is provided
by the fragmented format manifest and it might just be an approximation.
2015-02-18 09:57:48 -03:00
Sebastian Dröge
735c6c40f8 rtpjitterbuffer: When resetting the jitterbuffer because of packet discont, don't flush sticky events
We will otherwise flush away STREAM_START, CAPS or SEGMENT events and will
confuse downstream with buffers that come before such events.
2015-02-17 16:57:55 +02:00
Edward Hervey
6798dc7912 isomp4: Redefine gst_isoff_ symbols to gst_isoff_qt_
We need different symbol names, because these symbols are also present
in the fragmented plugin ... which will cause conflicts when doing
static linking
2015-02-17 12:31:06 +01:00
Luis de Bethencourt
ea1d67abe3 goom2k1: use fractional part of float division 2015-02-16 14:31:05 +00:00
Luis de Bethencourt
4af5a2b760 splitmuxsin: remove dead code
Every instance of goto beach has buf_info equal NULL. Don't check
for a condition that never happens.

CID #1268399
2015-02-16 13:59:17 +00:00
Nicolas Dufresne
b8142bde07 spectrum: Fix min and max for bands property
The number of FFTs is calculated with the following formula:

  guint nfft = 2 * bands - 2;

nfft is passed to gst_fft_f32_new() as the len argument and is of type
unsigned integer. This method required that len is at leas 1, then
maximum G_MAXINT, as other values would be negative. If we extrapolate
from the formula above it means we need "bands" to be between 2 and
((guint)G_MAXINT + 2) / 2).

https://bugzilla.gnome.org/show_bug.cgi?id=744213
2015-02-15 21:34:28 -05:00
Thiago Santos
afa5481c50 qtdemux: do not use sparse streams in push-based seeking
Using the sparse streams can make the push-based seeking return
too far in the stream. It also can lead to issues as the
sparse streams will be ignored when restarting playback and,
 if the sparse stream is the one that has the earliest sample,
it will confuse qtdemux's offsets as one stream will have
an earlier offset than the demuxer's one which might lead to
early EOS.

https://bugzilla.gnome.org/show_bug.cgi?id=742661
2015-02-14 11:36:11 -03:00
Tim-Philipp Müller
3f5b690e78 splitmuxsink: flag as sink from the start 2015-02-13 20:40:48 +00:00
Philippe Normand
3a9b0188cd qtdemux: Initial 'sidx' atom parsing support
Parse the 'sidx' atom and update the total duration according to the
parser result. The isoff parser code is imported from
gst-plugins-bad's dashdemux and a gst_isoff_sidx_parser_add_data()
function was factored out of the gst_isoff_sidx_parser_add_buffer()
function.

https://bugzilla.gnome.org/show_bug.cgi?id=743578
2015-02-12 14:23:21 -03:00
Jan Schmidt
2e00311fe1 flvdemux: Use gst_video_guess_framerate()
Use gst_video_guess_framerate() from libgstvideo to guess
sensible common framerates where possible from the
floating point fps in the stream.
2015-02-12 23:38:47 +11:00
Sebastian Dröge
f4b5107796 Improve and fix LATENCY query handling
This now follows the design docs everywhere, especially the maximum latency
handling.

https://bugzilla.gnome.org/show_bug.cgi?id=744106
2015-02-11 13:53:02 +01:00
Sebastian Dröge
b79eff7f9b rtpsession: Handle first RTCP packet and early feedback correctly
According to RFC 4585 section 3.5.3 step 1 we are not allowed to send
an early RTCP packet for the very first one. It must be a regular one.

Also make sure to not use last_rtcp_send_time in any calculations until
we actually sent an RTCP packet already. In specific this means that we
must not use it for forward reconsideration of the current RTCP send time.
Instead we don't do any forward reconsideration for the first RTCP packet.
2015-02-11 10:32:46 +01:00
Wim Taymans
009a62fddb rtph263depay: fix compilation with gcc 5.0 2015-02-10 18:54:24 +01:00
Tim-Philipp Müller
90badeebad splitmuxsink: fix example pipeline properly
x264enc might not have a max-key-int property, but it
has a key-int-max property...
2015-02-10 16:00:07 +00:00
Luis de Bethencourt
102ae8511a splitmux: fix typo 2015-02-10 14:57:55 +00:00
Luis de Bethencourt
12aa2428e0 splitmux: update example pipeline
Element x264enc doesn't have a max-key-int property
2015-02-10 14:56:23 +00:00
Luis de Bethencourt
0373fd8f65 splitmux: fix memory leak
If execution goes to the beach in line 981, buf_info goes out of scope without
the memory being free'd. Handle this case.

CID #1268403
2015-02-10 13:33:09 +00:00
Tim-Philipp Müller
603c1d71a1 rtspsrc: fix awkward if clause 2015-02-08 12:03:10 +00:00
Jan Schmidt
8ceb58122e splitmux: Add unit test for file splitting
Add a unit test for file splitting, and fix the leaks in the
splitmuxsink it found
2015-02-07 03:58:30 +11:00
Luis de Bethencourt
eb975ce880 wavparse: fix which stop variable is used in assignment
Assignment is done to variable segment.stop when the intention was to assign to
local variable stop. Instead of overwriting it, the value is now clamped and
segment.stop is set to it soon after.

CID #1265773
2015-02-06 14:46:14 +00:00
Jan Schmidt
aa4c29c5d6 splitmux: Fix memory leaks until the test valgrinds clean 2015-02-07 00:19:36 +11:00
Jan Schmidt
ace6be8abb splitmux: Handle early EOS during part preparation
Handle the case where a short file reaches EOS while we're still
waiting for no-more-pads, and make sure we continue to the internal
READY state for real playback to work properly later.
2015-02-06 06:42:17 +11:00