Commit graph

8097 commits

Author SHA1 Message Date
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
Jan Schmidt 5e2214d309 splitmux: Implement new elements for splitting files at mux level.
Implement 2 new elements - splitmuxsink and splitmuxsrc.

splitmuxsink is a bin which wraps a muxer and takes 1 video stream,
plus audio/subtitle streams, and starts a new file
whenever necessary to avoid overrunning a threshold of either bytes
or time. New files are started at a keyframe, and corresponding audio
and subtitle streams are split at packet boundaries to match
video GOP timestamps.

splitmuxsrc is a corresponding source element which handles
the splitmux:// URL and plays back all component files,
reconstructing the original elementary streams as it goes.
2015-02-06 04:26:59 +11:00
Thiago Santos a6d73797d0 rtph264depay: prevent trying to get 0 bytes from adapter
This causes an assertion and would lead to getting a NULL instead
of a buffer. Without proper checking this would easily lead to
a segfault

https://bugzilla.gnome.org/show_bug.cgi?id=737199
2015-02-04 21:37:50 -03:00
Jan Schmidt a3059bec1f qtdemux: Simple implementation of GST_SEGMENT_FLAG_TRICKMODE_KEY_UNITS
When the trickmode key-units flag is set on the segment, simply skip
any sample on a video stream that isn't a keyframe
2015-02-04 21:58:31 +11:00
Wim Taymans 852c040c89 rtspsrc: fix container handling
We detect a container correctly now so we need to revert the weird
check there was before.
Use gst_rtspsrc_stream_push_event() to push the caps event on the
right pad.

See https://bugzilla.gnome.org/show_bug.cgi?id=739391
2015-02-03 17:39:10 +01:00
Thiago Santos 7772a25fdc matroskamux: store and write stream tags
Separate global from stream tags storage and write them to the
appropriate tags entry in the output
2015-02-02 20:07:13 -03:00
Thiago Santos 75dee31b0d qtdemux: parse stream tags
Keep global and stream tags separately and parse the udta node
that can be found under the trak atom. The udta will contain
stream specific tags and will be pushed as such

https://bugzilla.gnome.org/show_bug.cgi?id=692473
2015-02-02 14:05:51 -03:00
Thiago Santos e52b2cb2cf qtmux: store stream and container tags separately
Tags received via events, when marked as stream tags, will
be stored on that stream's trak atom instead of being stored
in the main tags atom. This allows the resulting file to have
global and stream tags stored.

https://bugzilla.gnome.org/show_bug.cgi?id=692473
2015-01-31 17:23:01 -03:00
Thiago Santos 6321cdedb3 qtmux: refactor tags functions to accomodata UDTA at trak level
Refactor the functions that were bound to the 'moov' atom to
directly pass the desired 'udta' that should receive the tags.
This allows the tags to be written to 'udta' at the 'moov' or
the 'trak' level, creating tags that are for the container or
for a stream only.

https://bugzilla.gnome.org/show_bug.cgi?id=692473
2015-01-31 17:22:57 -03:00
Thiago Santos f0fde8be88 qtmux: map application name to _swr tag
It refers to the application name and version used to create the
file

https://bugzilla.gnome.org/show_bug.cgi?id=692473
2015-01-31 17:22:44 -03:00
Jan Schmidt 4a77c8a84f matroska: Fix seeking past the end of the file in reverse mode.
Snap to the end of the file when seeking past the end in reverse mode,
and also fix GST_SEEK_TYPE_END and GST_SEEK_TYPE_NONE handling
for the stop position by always seeking on a segment in stream time
2015-01-31 06:15:44 +11:00
Sebastian Dröge 075eb10e65 rtpsession: Fix signal name
This wasn't meant to be pushed at all yet, but now that it's there
already it won't hurt to make it correct at least.
2015-01-30 18:22:31 +01:00
Sebastian Dröge ec99bbb5e1 rtpstats: Fix typo in documentation 2015-01-30 16:56:35 +01:00
Sebastian Dröge 77511b156e rtpsession: Add new on-receiving-rtcp signal
This will be emitted whenever an RTCP packet is received. Different to
on-feedback-rtcp, this signal gets every complete RTCP packet and not
just the individual feedback packets.
2015-01-30 16:50:36 +01:00
Thiago Santos 9a9d4eccea qtdemux: simplify segment.base math
Remove a fix for heavily edited files added for fixing
https://bugzilla.gnome.org/show_bug.cgi?id=345830 to work
with seeks and proper gaps playback. The fix was replaced
for a more general solution that bases on using previous
segment's duration, just like it works for media segments
playback.

https://bugzilla.gnome.org/show_bug.cgi?id=743518
2015-01-28 15:20:58 -03:00
Luis de Bethencourt 5ff1229754 videomixer: update orc files 2015-01-27 14:00:35 +00:00
Thiago Santos 2586a219f6 qtdemux: Fix data dropping for fragmented streams
For fragmented streams with extra data at the end of the mdat
qtdemux was not dropping those bytes and would try to use
that extra data as the beginning of a new atom, causing the
stream to fail.

https://bugzilla.gnome.org/show_bug.cgi?id=743407
2015-01-27 08:54:19 -03:00
Sebastian Dröge e4ed852041 rtpsession: Deprecate rtcp-immediate-feedback-threshold property
It had no effect since quite some time and also is not needed in general,
especially not to switch between immediate feedback mode and early feedback
mode. The latest understanding of the RFC is that from the endpoint point of
view, both modes are exactly the same. RTCP is only allowed to use the
bandwidth as given by the RFC constraints, as such it is only ever possible
to schedule a RTCP packet early but it's against the RFC to schedule more RTCP
packets.

The difference between immediate feedback mode and early feedback mode is that
the former guarantees that an RTCP packet can be sent for every event
"immediately", which means that the bandwidth calculations from the RFC have
resulted in an RTCP scheduling interval that is small enough. Early feedback
mode on the other hand means that we can schedule some packets early to make
that happen, but it's not guaranteed at all that it's possible to schedule
an RTCP packet per event (i.e. they need to be accumulated or dropped).
2015-01-26 18:49:31 +01:00
Sebastian Dröge b07b7736b3 rtpsession: Delay the next regular RTCP packet after early RTCP
This is required to not exceed the short term average RTCP bitrate when
using early feedback as compared to without early feedback.
2015-01-26 18:49:31 +01:00
Sebastian Dröge bc9111a03d rtpsession: Add new send-rtcp-full signal
This indicates with a boolean return value if scheduling a new RTCP packet
within the requested delay was possible. Otherwise it behaves exactly like
send-rtcp. The only reason for adding a new signal is ABI compatibility.
2015-01-26 18:49:31 +01:00
Luis de Bethencourt 1e15808563 matroskademux: remove unnecessary check
No matter if gst_matroska_read_common_parse_index_cuetrack () returns that the
flow is OK or not, the check there will be a break from the switch. Removing the
check since the outcome is the same.

CID #1265762
2015-01-23 17:35:51 +00:00
Edward Hervey 932b32bb6e matroskamux: Avoid using freed variable
the name variable might have been attributed to pad_name, make sure we
free it only *after* pad_name has been used.

Coverity CID : 1265774
2015-01-23 15:16:25 +01:00
Edward Hervey 8abfd9d720 avimux: Avoid using freed variable
the name variable might have been attributed to pad_name, make sure we
free it only *after* pad_name has been used.

Coverity CID : 1265775
2015-01-23 15:15:07 +01:00
Sebastian Dröge 60e2d0c84f rtpsession: Fix indention 2015-01-22 11:03:25 +01:00
Edward Hervey 7203c4751c qtdemux_dump: Bypass even more code if debugging is disabled
And avoid using variables that won't exist when debugging is disabled
2015-01-21 17:36:26 +01:00
Edward Hervey 906f4c4360 qtdemux: Only traverse/dump nodes if guaranteed to be used
__gst_debug_min is the "global" lowest debug level set. There's no
guarantee the qtdemux debug category is actually set at that level.
2015-01-21 15:32:01 +01:00
Edward Hervey 9fa85f72e1 matroska: Avoid debugging below category threshold
This part alone was what made the matroska thread take a full core
on an android phone ...
2015-01-21 15:26:41 +01:00
Sebastian Dröge d5aab81a77 Constify some static arrays everywhere 2015-01-21 09:55:53 +01:00
Vincent Penquerc'h d854cfff9d qtdemux: fix deadlock seeking in files without seek entries
A mutex unlock was missing.

https://bugzilla.gnome.org/show_bug.cgi?id=739975
2015-01-19 17:49:54 +00:00
Vincent Penquerc'h 84c44fceac videomixer: fix illegal memory access in blend function with negative ypos
https://bugzilla.gnome.org/show_bug.cgi?id=741115
2015-01-19 12:34:25 +00:00
Sebastian Dröge dc2251a664 qtmux: Add support for v210 2015-01-13 19:05:40 +01:00
Sebastian Dröge b7134435ee qtdemux: v210 is v210, not UYVY and yuv2 is YUY2, not I420
Also add a few other raw video formats we support: v308, v216
and add comments for a few others we don't support yet.

https://developer.apple.com/library/mac/technotes/tn2162/
2015-01-13 19:05:40 +01:00
Thiago Santos 3e0be85840 qtdemux: fix stream time conversion
Use the right macro to convert to the correct scale or the
segment information will be wrong

https://bugzilla.gnome.org/show_bug.cgi?id=742572
2015-01-09 11:40:40 -03:00
Matej Knopp ff5b235c32 ac3parse: request at least 8 bytes to properly parse header
https://bugzilla.gnome.org/show_bug.cgi?id=742325
2015-01-08 14:45:23 +01:00
Michael Smith e8f3d596bc wavparse: skip an additional uninteresting chunk type before the fmt chunk. 2015-01-07 16:20:03 -08:00
Luis de Bethencourt 42535107ca audiodynamic: assert func_index is inside bounds
Bringing back the check removed in the previous commit but have that check be a
g_assert. Changing the function to static void since return can never be False,
because audio format will never be unkown.
2015-01-07 18:16:12 +00:00
Luis de Bethencourt 1db92a91de audiodynamic: remove always-true conditional
func_index is set by the sum of three ternary operators which add, 0:4, 0:2,
and 1:0. Minimum value would be 0+0+0=0, and maximum would be 4+2+1=7.
The conditional checking if func_index is >= 0 and < 8 will always be true.
Removing it.

CID 1226442
2015-01-07 17:31:39 +00:00
Sebastian Dröge 87c8c163a8 rtpjitterbuffer: If we get a gap with a buffer without DTS, error out
We (currently?) can't really handle gaps between RTP packets if they're not
properly timestamped. The current code would go into calculations with
GST_CLOCK_TIME_NONE and then cause assertions everywhere. It's probably
better to error out cleanly instead.
2015-01-07 18:05:18 +01:00
Aleix Conchillo Flaqué 07c5d1820a rtspsrc: set PLAYING state after configuring caps
We set to PLAYING after we have configured the caps, otherwise we
might end up calling request_key (with SRTP) while caps are still
being configured, ending in a crash.

https://bugzilla.gnome.org/show_bug.cgi?id=740505
2014-12-31 12:49:11 +00:00
Sebastian Dröge 67d4b85d6a matroskademux: Improve detection of being stuck at the same offset
Only error out if we read from the same position again and got the
same length. Just the same position is not necessarily enough.
2014-12-29 15:35:19 +01:00
Sebastian Dröge e596a3b6a7 matroskademux: Don't get stuck at the same offset when searching for clusters
This could happen if there is an invalid cluster with size 0, and in that
case just error out instead of looping forever.
2014-12-29 15:02:52 +01:00
Tim-Philipp Müller aa94fc6beb qtmux: fix ALAC muxing
Actually copy the codec data instead of copying nothing
and then bombing out because there's no data.

Fixes: gst-launch-1.0 audiotestsrc ! avenc_alac ! qtmux ! fakesink

https://bugzilla.gnome.org/show_bug.cgi?id=741783
2014-12-25 21:37:49 +00:00
Tim-Philipp Müller c62209d050 rtpptdemux: just drop invalid rtp packets instead of erroring out
Apparently linphone sends an invalid RTP packet as very
first packet. We want to ignore that instead of erroring
out (same for any other invalid packets really).

https://bugzilla.gnome.org/show_bug.cgi?id=741398
2014-12-25 15:48:04 +00:00
Tim-Philipp Müller bcad30510b rtpptdemux: fix 0.10-ism in docs 2014-12-25 15:44:15 +00:00
Edward Hervey cbe56d2331 matroska-demux: Cache upstream length
Instead of constantly querying upstream, just cache the last duration,
and in the unlikelyness we might have gone over query again before
deciding we are EOS.

Cut 15% cpu off matroskademux streaming thread (srsly...)
2014-12-19 10:59:18 +01:00
Vincent Penquerc'h b7413279d9 matroska: mux/demux the OpusHead header
This is meant to be so (https://wiki.xiph.org/MatroskaOpus - while
it is marked as a draft, this part was confirmed to be correct on
IRC), and allows one to determine whether a demuxed stream is
multistream or not, and thus set the multistream caps field
accordingly. In turn, this means downstream does not have to guess.

https://bugzilla.gnome.org/show_bug.cgi?id=740744
2014-12-18 11:38:49 +00:00
Sebastian Dröge d18b893d28 rtspsrc: Don't dereference NULL if a suitable stream for the AUX element can't be found
CID 1258717
2014-12-18 11:51:12 +01:00
Tim-Philipp Müller 4dd7d79b52 udpsink: allocate scratch space for render functions on the heap
and not the stack. Our allocations could get a bit too large
to be sure it's not going to cause trouble using the stack.
2014-12-16 20:26:36 +00:00
Tim-Philipp Müller 97a2eb7afb multiudpsink: re-use send_buffers() code path for render() function
It's like rendering a buffer list, just with one buffer.
Has the added advantage that if there are multiple clients
we can send the buffer to all the clients in one go.
2014-12-16 20:26:36 +00:00
Tim-Philipp Müller 54a9a436ba multiudpsink: keep client list consistent during removals
We unlock and re-lock the client lock while emitting the
removed signal, which causes inconsistencies in the client
list vs. the client counts. Instead, remove the client from
the list already before emitting the signal and put it into
a temporary list of clients to be removed. That way things
look consistent to the streaming thread, but signal callbacks
can still do things like get stats from removed clients.
2014-12-16 20:26:36 +00:00
Tim-Philipp Müller fa3ef2e54c multiudpsink: fix client count after removal 2014-12-16 20:26:36 +00:00
Tim-Philipp Müller 7bdf7500a1 multiudpsink: keep client list sorted by socket family
We make use of in the send_buffers() function if we
need to use different sockets to send to IPv4 and
IPv6 destinations.
2014-12-16 20:26:36 +00:00
Tim-Philipp Müller e1a7deb27f multiudpsink: add sendmmsg-ready render_list function prototype
Add prototype for a render_list() function that can use a
sendmmsg-style g_socket_send_messages() function once it lands
in GLib. We can use this infrastructure to send multiple buffers
made up by multiple memories to multiple clients in one go, which
drastically reduces the number of syscalls made when sending
high-bitrate video streams.

https://bugzilla.gnome.org/show_bug.cgi?id=732152
2014-12-16 20:26:36 +00:00
Tim-Philipp Müller dead5c2476 multiudpsink: make udp client structure refcounted
Use the refcount for memory management and keep track
of the number of duplicate clients in a separate
variable. This will be useful later, and means we
don't have to hold the OBJECT_LOCK all the time.

https://bugzilla.gnome.org/show_bug.cgi?id=732866
2014-12-16 20:26:36 +00:00
Tim-Philipp Müller 675384a8cb multiudpsink: keep count of number of unique and non-unique IPv4 and IPv6 clients
This will come in handy later.
2014-12-16 20:26:36 +00:00
Sebastian Dröge 6b2fc2de8d rtspsrc: Add something to the debug logs if an RTX AUX element can't be added
... because the application already has a signal handler set up here.
2014-12-16 16:40:08 +01:00
Matthew Waters bf0a19bf02 rtspsrc: add retransmission support according to RFC4588
Based on the client-rtpaux example
2014-12-16 16:40:08 +01:00
Nicolas Dufresne 9c468ef2da videocrop: Remove todo about caps filter
The filter is already interected.
2014-12-15 18:30:01 -05:00
Nicolas Dufresne 36f1a9bce1 videocrop: Make sure new crop is applied
Since "basetransform: Fix caps equality check" commit a7f357,
set_info() will not be called anymore if crop didn't change
the caps. This is fixed by setting "need_update" boolean when
cropping properties has been changed, and then applying these
if they where not applied before rendering the next frame. This
patch also fixed the locking, dropping un-needed custom lock,
and no holding needless lock while doing the operation as we
already hold the streaming lock.

https://bugzilla.gnome.org/show_bug.cgi?id=740787
2014-12-15 18:27:09 -05:00
Thibault Saunier 76944350c0 Deinterlace: in query_caps return only supported formats if filter is interlaced
In some cases the currently set GstVideoInfo is not interlaced, but
upstream caps are interlaced and the info is passed in the filter,
we should take that info into account and make sure that we do not
consider that case as a "pass through" case.

https://bugzilla.gnome.org/show_bug.cgi?id=741407
2014-12-14 12:41:16 +01:00
Edward Hervey 6b69ef24a1 qtdemux: Fix debug statement
It was using the non-increasing offset variable, which made that statement
not so useful :)
2014-12-12 11:06:17 +01:00
Edward Hervey d1ae39d6d6 qtdemux: Add macros for the various timescale conversions
This helps make the code more readable and avoid future bad usage of
scaling function argument order.
2014-12-12 11:03:15 +01:00
Patrick Radizi 0a359cdbdc rtph264pay: fix potential crash when shutting down
A race condition in the state change function may cause buffers
to be unreffed while they are still used by the streaming thread
in gst_rtp_h264_pay_send_sps_pps() resulting in a crash. Chain
up to the parent class first in the state change function to
make sure streaming has stopped and only then free those buffers.

https://bugzilla.gnome.org/show_bug.cgi?id=741381
2014-12-11 14:00:19 +00:00
Jan Schmidt de8d00348e qtdemux: Copy flags of the overall segment to output segments
Preserve the segment flags of the overall demux segment on the output
segments for each pad.
2014-12-12 00:56:49 +11:00
Matej Knopp 2505e343b1 qtmux: use 64bit chunk_offset
https://bugzilla.gnome.org/show_bug.cgi?id=741279
2014-12-10 18:42:30 -03:00
Edward Hervey 9a903c994f qtdemux: Fix rounding errors in duration update
Make sure we store updated segment stop/duration with the same
granularity as the duration timescale.

And add more debug
2014-12-10 17:39:17 +01:00
Edward Hervey b40cfcfffb qtdemux: Update duration when we get more information
When dealing with fragmented files, we will get more accurate duration
information via the mfra and moof atoms.

In order for playback to not stop at the initial duration (from the
moov atom), we need to check and update the various duration variables
when we find more information.

Fixes playback of fragmented files in pull mode
2014-12-10 16:55:44 +01:00
Edward Hervey 799609583e qtdemux: Remove variable assignments never read
As detected by clang/scan-build
2014-12-10 15:09:25 +01:00
Edward Hervey 7828f73516 qtdemux: Use GstClockTime for nanosecond-based time variables/fields
Avoids confusion with timescaled-based variables and bytes (offset)
variables.
And use GST_CLOCK_TIME_NONE where applicable
2014-12-10 15:09:25 +01:00
Edward Hervey 0a381b9edd pushfilesrc: Add TIME SEGMENT capability
Adds a new set of properties to make pushfilesrc output a TIME SEGMENT
(instead of the filesrc BYTE SEGMENT).

When time-segment is set to True the following will happen:
* Seeks are refused (data starts from the beginning of the file)
* The BYTE segment will be replaced by a TIME segment with the values
  specified in the various properties
* The first outgoing buffer will have a timestamp set on it (by default
  it has a value of GST_CLOCK_TIME_NONE)
2014-12-10 15:09:25 +01:00
Sebastian Dröge f5d26af3c9 aacparse: Also only unref caps if they're not NULL 2014-12-10 11:35:29 +01:00
Sebastian Dröge 6d6c6aac13 aacparse: gst_pad_get_allowed_caps() will return NULL if there is no peer 2014-12-10 11:35:02 +01:00
Thibault Saunier 52a1773b40 rtpsession: Use an empty iterator in iterate_internal_link when no links
And not a NULL Iterator, so it is consistent with the way it usually
works and avoid user to need a different code paths to handle that.
2014-12-09 20:38:22 +01:00
Patrick Radizi fef1a8d88a rtph264pay: Fixes buffer leak when using SPS/PPS
Fixes a buffer leak that would occurr if the pipeline was shutdown
while a SPS/PPS header was being created.

https://bugzilla.gnome.org/show_bug.cgi?id=741271
2014-12-09 09:47:23 +01:00
Mathieu Duponchelle a5694b213a agingtv: fix memcpy when no color aging requested.
video_size is the size in pixels, actual size of the memcpy
has to be stride * height.
2014-12-09 04:44:40 +01:00
Nicola Murino c466ff4748 matroskademux: set framerate 0/1 when duration is not known
https://bugzilla.gnome.org/show_bug.cgi?id=740130
2014-12-04 18:20:37 +01:00
Jan Schmidt f4ca3c255a qtdemux: More fixes for reverse playback
When seeking or finding the previous keyframe, do
comparisons against targets and segments using composition time
to correctly decide which sample times match.
2014-12-04 22:53:07 +11:00
Thibault Saunier aa89278ade rtpjitterbuffer: Use an empty iterator in iterate_internal_link when no links
We used to setup an iterator with 1 GValue set with a NULL object
pointer which is not the normal way to do that. Instead we should make
sure that the first call to gst_iterator_next returns GST_ITERATOR_DONE.
2014-12-03 11:17:11 +01:00
Jan Schmidt b3d1ab5267 qtdemux: Handle seeks past EOS as a seek to the end
Fix reverse playback of every frame by making seeks past/to EOS
find the last segment and start there.
2014-12-03 13:23:35 +11:00
Olivier Crête e3b0fb2a5d rtpmpadepay: Relax caps to allow any clock-rate
Some Wowza setups seem to send an invalid non-90000 clock-rate.
2014-12-02 15:33:25 -05:00
Thiago Santos 148da6210a qtdemux: don't use GST_CLOCK_TIME_NONE in non GstClockTime variables
Use -1 instead as those are gint64/guint64 variables and not GstClockTime
2014-12-02 00:46:35 -03:00
Tim-Philipp Müller d65c3bbe7e qtdemux: implement seeking in fragmented mp4 files in pull mode based on the mfra table 2014-11-30 15:33:13 +00:00
Tim-Philipp Müller 77f37a6b22 qtdemux: use track fragment decoding time (tfdt) in parse_trun() for interpolation
As fallback if we don't have any existing samples
as reference point yet.

Based on patch by David Corvoysier <david.corvoysier@orange.com>
2014-11-30 15:33:13 +00:00
Tim-Philipp Müller e24f903b13 qtdemux: parse mfra random access box for fragmented mp4 files
If it's present, and we operate in pull mode.
2014-11-30 15:33:13 +00:00
Tim-Philipp Müller 8a0f4e74e4 qtdemux: stop parsing headers for fragmented mp4s at the first moof
Currently during header parsing, we scan through the entire file
and skip every moof+mdat chunk for fragmented mp4s, which makes
start-up incredibly slow. Instead, just stop at the first moof
chunk when have a moov, and start exposing the streams, so we
can go and start handling the moofs for real.
2014-11-30 15:30:04 +00:00
Olivier Crête ccac1f8c0b rtprtxreceive: Use offset when copying header
The header is not always at the start of the packet, so we need to compute
the offset first.
2014-11-29 18:38:12 -05:00
Andrei Sarakeev 6348de195d aspectratiocrop: Handle resolution changes properly
When an caps-event is received, we must immediately change the crop
to videocrop correctly changed caps-event dimension, otherwise the
videocrop will first use the previous value of the crop that when
resizing video to a smaller resolution may cause an error.

https://bugzilla.gnome.org/show_bug.cgi?id=740671
2014-11-28 11:19:23 +01:00
Edward Hervey 5b5e9f320f isomp4: Check presence of mfhd in moof
The 'mfhd' atom is mandatory in 'moof'. We can later on check whether
the fragment number properly increases
2014-11-26 16:36:39 +01:00
Edward Hervey 5e3e97353d isomp4: Fix mfro and tfra atom dumping
mfro was skipping the version/flags
tfra had wrong byte_reader return value checks
2014-11-26 16:36:39 +01:00
Edward Hervey c45533bcd7 isomp4: Add mfhd atom dumping 2014-11-26 16:36:39 +01:00
Jan Schmidt 61bbd2d226 qtdemux: Handle empty segments when seeking in reverse play.
Empty segments in an edit list have a media_start time of -1,
as they don't actually play any media. Allow for that when
aligning to the reference stream in reverse play.
2014-11-27 00:17:03 +11:00
Tim-Philipp Müller 69ec922c16 icydemux: does not need to link against zlib 2014-11-23 16:24:06 +00:00
Miguel París Díaz 6daa57868f rtpjitterbuffer: ensure rtx_retry_period >= 0
https://bugzilla.gnome.org/show_bug.cgi?id=739344
2014-11-22 14:48:57 +00:00
Arun Raghavan 45e716e75d rtpbin: Fix up new_jitterbuffer signal prototype 2014-11-20 22:42:59 +05:30
Arun Raghavan 56436ccced rtpbin: Document how to control per-SSRC retransmission 2014-11-20 20:24:42 +05:30
Wim Taymans 3d7b0f30d7 rtpgstpay: put 0-byte at the end of events
Put a 0-byte at the end of the event string. Does not break ABI because
old depayloaders will skip the 0 byte (which is included in the length).
Expect a 0-byte at the end of the event string or a ; for old
payloaders.

See https://bugzilla.gnome.org/show_bug.cgi?id=737591
2014-11-20 13:14:14 +01:00
Wim Taymans 9d2902d978 rtpgstdepay: avoid buffer overread.
Check that a caps event string is 0 terminated and the event string is
terminated with a ; to avoid buffer overreads.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=737591
2014-11-20 12:44:26 +01:00
Tim-Philipp Müller 488d0b93cd qtmux: don't limit max video resolution to 4096x4096
MAX isn't entirely correct as upper limit either,
it should really be MAXUINT32, but it's unlikely
to be a problem in the near future.

https://bugzilla.gnome.org/show_bug.cgi?id=740407
2014-11-20 10:45:53 +00:00
Aleix Conchillo Flaqué 00ca83629b rtspsrc: fix leak for mikey base64 decoded key-mgmt
https://bugzilla.gnome.org/show_bug.cgi?id=740392
2014-11-20 09:15:56 +01:00
Wim Taymans e95da8410f videobalance: fix unhandled format in passthrough
In passthrough we can handle all formats.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=740387
2014-11-20 09:02:36 +01:00
Jan Alexander Steffens (heftig) bf73d834b2 flvdemux: Restrict resyncing to TS regressions
The behavior of resyncing video and audio indepen-
dently can cause A/V desyncs. Lets restrict resyncs
to jumps backward for now.

https://bugzilla.gnome.org/show_bug.cgi?id=736397
2014-11-19 11:58:19 -05:00
Matthew Waters 0053ad0847 videomixer: fix up QoS handling for live sources
Only attempt adaptive drop when we are not live

https://bugzilla.gnome.org/show_bug.cgi?id=739996
2014-11-17 23:16:03 +11:00
Arun Raghavan 1c3b233fef rtpmanager: Trivial typo fix 2014-11-10 13:16:50 +05:30
Sebastian Dröge 7a909917b5 matroska-mux: Use G_DEFINE_TYPE() to register the pad instead of manually registering it 2014-11-09 11:04:33 +01:00
Göran Jönsson ec05d3b6d8 matroskamux: make GstMatroskamuxPad get_type() function thread-safe
https://bugzilla.gnome.org/show_bug.cgi?id=739722
2014-11-07 21:20:31 +00:00
Josep Torra 038cc7b004 rtsp: fix build in gst-uninstalled setup 2014-11-06 21:38:43 +01:00
Thibault Saunier 99bbc2bbe4 imagefreeze: Handle seqnums
https://bugzilla.gnome.org/show_bug.cgi?id=739366
2014-11-06 12:20:25 +01:00
Wim Taymans 26d682d23f videomixer2: reverse order of params for converter 2014-11-03 15:26:06 +01:00
Tim-Philipp Müller c756fd6a55 goom2k1: post QoS messages when dropping frames due to QoS 2014-11-02 19:42:03 +00:00
Tim-Philipp Müller b03056eede goom: post QoS messages when dropping frames due to QoS 2014-11-02 19:31:01 +00:00
Tim-Philipp Müller 85c3c36712 matroskamux: tweak writing app tag string a little 2014-11-02 19:02:35 +00:00
Tim-Philipp Müller 3956f5addc Sprinkle some G_PARAM_DEPRECATED and #ifndef GST_REMOVE_DEPRECATED 2014-11-02 16:58:30 +00:00
Tim-Philipp Müller d940c21b78 rtpjitterbuffer: implement get/set for new rtx-min-retry-timeout property
Properties are so much more useful if you can actually set
and get their values.
2014-11-02 13:06:33 +00:00
Nicolas Dufresne 0f4f948f5f rtpvp8: Use VP8 encoding name
Both Firefox and Chrome uses VP8 as the encoding in their SDP.
Adding this now defacto standard name removes the need for special
case in SDP parsing code.

https://bugzilla.gnome.org/show_bug.cgi?id=737810
2014-11-01 11:26:26 -04:00
Tim-Philipp Müller 92c1d289b8 rtpmp2tpay: fix up template caps so we can output the default pt 33
Add fixed payload type for mp2t to template caps as well, so
our output caps match the advertised default pt. Fixes a
regression from 1.2.

There's still something wrong with caps negotiation though,
rtpmp2tpay payload=96 ! fakesink will not output caps with
payload=96.
2014-11-01 12:40:07 +00:00
Aleix Conchillo Flaqué d15ebcbf62 rtspsrc: mikey related memory leaks
https://bugzilla.gnome.org/show_bug.cgi?id=739430
2014-10-31 10:03:47 +00:00
Sebastian Dröge 4aac09e708 aacparse: Always set profile/level on the caps
We have the information already, so why not use it?
2014-10-26 11:47:25 +01:00
Tim-Philipp Müller b02d73a0ed rtpjitterbuffer: fix crash on some 32-bit systems
Make sure to pass right number of bits to gst_structure_new()
which is a vararg function.

Fixes elements/rtpaux unit test on ppc32.
2014-10-25 12:45:31 +01:00
Tim-Philipp Müller 401782c19d interleave: intersect result with filter caps in caps query
Fixes crash in audiotestsrc because of an unsupported format
getting negotiated on big-endian systems with
audiotestsrc ! interleave ! audioconvert ! wavenc
2014-10-25 11:08:48 +01:00
Wim Taymans bd09dc96e9 rtpjitterbuffer: limit the retry frequency
When the RTT and jitter are very low (such as on a local network), the
calculated retransmission timeout is very small. Set some sensible lower
boundary to the timeout by adding a new property. We use the packet
spacing as a lower boundary by default.
2014-10-22 15:04:24 +02:00
Miguel París Díaz 4b5243c43d gstrtpjitterbuffer: add "rtx-min-delay" property
This property is useful to set a min time to wait before sending a
retransmission event.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=735378
2014-10-22 15:00:27 +02:00
Wim Taymans 0b81b316b5 jitterbuffer: Refactor code
Refactor some code dealing with calculating various timeouts.

See https://bugzilla.gnome.org/show_bug.cgi?id=735378
2014-10-22 14:59:57 +02:00
Miguel París Díaz e6504e3a65 rtpsession: fix Early Feedback Transmission
In early retransmission we are allowed to schedule 1 regular RTCP packet
at an earlier time. When we do that, we need to set allow_early to FALSE
and ignore/drop (or merge) all future requests for early transmission.
We now first check if we can schedule an early RTCP and if we can,
actually prepare the data for the next RTCP interval.

After we send the next regular RTCP after the early RTCP, we set
allow_early to TRUE again to allow more early requests.

Remove the condition for the immediate feedback for now.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=738319
2014-10-22 13:13:47 +02:00
Wim Taymans 09f179139d rtpjitterbuffer: make debug line less confusing 2014-10-21 13:10:53 +02:00
Wim Taymans 2e7f5c08cf jitterbuffer: rework resync handling
Add a need-resync state, this is when we need to try to lock on to a
time/RTPtime pair.
Always check the RTP timestamps and if they go backwards, mark ourselves
as need-resync.
Only resync when need-resync is TRUE and we have a valid time. Otherwise
we keep the old values. This avoids locking on to an invalid time and
causing us to timestamp everything with -1.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=730417
2014-10-21 11:57:34 +02:00
Aleix Conchillo Flaqué bd392d72ee rtspsrc: set full stream caps on internal src TCP pads
Set the complete stream caps on the TCP internal src pads. Otherwise,
ptdemux will not properly detect the caps change.

https://bugzilla.gnome.org/show_bug.cgi?id=737868
2014-10-21 11:33:01 +02:00
Sjoerd Simons 0ee384b251 rtpmux: Don't set PROXY_CAPS flag on the src pad
rtpmux behaves like a funnel in that it forwards whatever upstream is
sending buffers. So setting proxy caps doesn't make sense as the
upstream don't have to have compatible caps, thus resulting in an empty
caps set as a result of a caps query. Instead set fixed caps just
as funnel does.

https://bugzilla.gnome.org/show_bug.cgi?id=738722
2014-10-21 10:52:00 +02:00
Vineeth T M 1131db8c1f videobox: critical error when element properties set as max/min
left, right, top, bottom can be set from range of -2147483648 to 2147483647
when i launch the videobox element with that values, it gives a critical error

(gst-check-1.0:29869): GStreamer-CRITICAL **: gst_value_set_int_range_step: assertion 'start < end' failed
This happens because min cannot be equal to max.

https://bugzilla.gnome.org/show_bug.cgi?id=738838
2014-10-20 12:53:51 +02:00
Tim-Philipp Müller f3fec86bc9 Revert "rtp: add h265 RTP payloader + depayloader"
This reverts commit d06ba9051f.

This breaks the build, as it depends on parser API in -bad.
2014-10-15 17:48:46 +01:00
Jurgen Slowack d06ba9051f rtp: add h265 RTP payloader + depayloader 2014-10-15 17:34:50 +02:00
Peter G. Baum b5e46c05d7 wavenc: Support RF64 format
https://bugzilla.gnome.org/show_bug.cgi?id=725145
2014-10-14 10:24:50 +02:00
David Sansome 8154c90c9b equalizer: Don't call iirequalizer's transform_ip in passthrough mode
It tries to map the read-only buffer with GST_MAP_READWRITE and crashes.

https://bugzilla.gnome.org/show_bug.cgi?id=737886
2014-10-13 08:30:03 +02:00
Olivier Crête 51a8bedced rtpsource: Rename seqnum-base to seqnum-offset in caps
This was modified back in 1.0 in GstRtpBasePayload
2014-10-10 18:33:34 -04:00
Olivier Crête 155ed569c3 rtpdtmfsrc: clock-base and seqnum-base -> timestamp-offset and seqnum-offset
These were renamed in GstRTPBasePayload in 1.0
2014-10-10 18:12:32 -04:00
Olivier Crête b3069634bd rtpmux: clock-base and seqnum-base -> timestamp-offset and seqnum-offset
These were renamed in GstRTPBasePayload in 1.0
2014-10-10 18:12:23 -04:00
Luis de Bethencourt cff880401d goom2k1: removing block of code that does nothing
The loop in zoomFilterSetResolution is meant to change the values in the
zf->firedec[] array. Each iteration writes the value of decc onto the arrya,
but no conditions that change the value of decc are ever met and the array is
filled with zero for each element. Which is the initial state of the
array before the loop begins.

The loop does nothing.

https://bugzilla.gnome.org/show_bug.cgi?id=728353
2014-10-08 14:07:56 +01:00
Stefan Sauer 98222a67ff rtpjitterbuffer: don't log all clock_rate changes as warnings.
We never initialize clock_rate explicitly, therefore it is 0 by default. The
parameter is a uint32 and the only caller ensure that it is >0, therefore it
won't become -1 ever.
2014-10-04 17:17:13 +02:00
Matej Knopp e1d275cfec aacparse: fix memory leak when prepending ADTS headers
https://bugzilla.gnome.org/show_bug.cgi?id=737761
2014-10-02 10:41:28 +03:00
Antonio Ospite 7ae7f657fa interleave: interleave samples following the Default Channel Ordering
In order to have a full mapping between channel positions in the audio
stream and loudspeaker positions, the channel-mask alone is not enough:
the channels must be interleaved following some Default Channel Ordering
as mentioned in the WAVEFORMATEXTENSIBLE[1] specification.

As a Default Channel Ordering use the one implied by
GstAudioChannelPosition which follows the ordering defined in SMPTE
2036-2-2008[2].

NOTE that the relative order in the Top Layer is not exactly the same as
the one from the WAVEFORMATEXTENSIBLE[1] specification; let's hope users
using so may channels are already aware of such discrepancies.

[1] http://msdn.microsoft.com/en-us/library/windows/hardware/dn653308%28v=vs.85%29.aspx
[2] http://www.itu.int/dms_pub/itu-r/opb/rep/R-REP-BS.2159-2-2011-PDF-E.pdf

Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=737127
2014-10-02 10:21:26 +03:00
Sebastian Dröge 7729f4ce81 wavenc: Send CAPS event after the pad was activated
Otherwise the CAPS event will be dropped and we never configure any caps at
all, leading to weird behaviour in many situations. Especially header
rewriting is not going to work if a capsfilter is after wavenc.

https://bugzilla.gnome.org/show_bug.cgi?id=737735
2014-10-02 10:10:11 +03:00
Sebastian Dröge 1a2adf5123 videomixer: Actually use the correct GstVideoInfo for conversion 2014-10-01 17:29:29 +03:00
Sebastian Dröge c1a96113db videomixer: Revert the last commit and handle resolutions differences properly
This is about converting the format, not about converting any widths and
heights. Subclasses are expected to handler different resolutions themselves,
like the videomixers already do properly.
2014-10-01 17:24:59 +03:00
Sebastian Dröge af7916ca4a videomixer: GstVideoConverter currently can't rescale and will assert
Leads to ugly assertions instead of properly erroring out:
CRITICAL **: gst_video_converter_new: assertion 'in_info->width == out_info->width' failed
2014-10-01 17:12:59 +03:00
Antonio Ospite eca3e2474d wavenc: print channel masks in hexadecimal 2014-09-29 17:45:59 +03:00
Sebastian Dröge d1c7f2e4d1 rtspsrc: Fix compiler warnings
gstrtspsrc.c:7939:11: error: implicit conversion from enumeration type 'GstSDPResult' to different enumeration type
      'GstRTSPResult' [-Werror,-Wenum-conversion]
    res = gst_sdp_message_new (&sdp);
        ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~
gstrtspsrc.c:7944:11: error: implicit conversion from enumeration type 'GstSDPResult' to different enumeration type
      'GstRTSPResult' [-Werror,-Wenum-conversion]
    res = gst_sdp_message_parse_uri (uri, sdp);
        ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2014-09-26 13:46:16 +03:00
Jonas Holmberg 1371fa0c61 matroskademux: make demuxer reusable
Remove pads from flow combiner and reset last
flow return to FLOW_OK by resetting the flow combiner.
This prevents FLOW_FLUSHING when trying to re-use the
demuxer after setting it back to NULL/READY state.

https://bugzilla.gnome.org/show_bug.cgi?id=737359
2014-09-25 16:14:18 +01:00
Wim Taymans 84ec78bd86 videomixer: use video library code instead of copy 2014-09-24 16:46:36 +02:00
Sanjay NM 323683db96 audioparsers: Added index check before using the index
https://bugzilla.gnome.org/show_bug.cgi?id=736878
2014-09-24 10:21:35 +03:00
Matej Knopp 9f85dfd733 qtmux: Do not infer DTS on buffers from sparse streams.
DTS delta is used to calculate sample duration. If buffer has missing DTS, we take either segment start or previous buffer end time, whichever is later.
This must only be done for non sparse streams, sparse streams can have gaps between buffers (which is handled later by adding extra empty buffer with duration that fills the gap)

https://bugzilla.gnome.org/show_bug.cgi?id=737095
2014-09-23 22:25:47 -03:00
Sanjay NM 36140ccf69 goom: Clarified precedence between % and ?
https://bugzilla.gnome.org/show_bug.cgi?id=736887
2014-09-24 00:48:09 +01:00
Sanjay NM f62076e49c rtsp: clarify expression so operator precedence is clear
https://bugzilla.gnome.org/show_bug.cgi?id=736903
2014-09-24 00:48:09 +01:00
Sanjay NM 26a1344f37 Miscellaneous minor cleanups
Fix redundant variables and assignments,
and unreachable breaks.

https://bugzilla.gnome.org/show_bug.cgi?id=736875
https://bugzilla.gnome.org/show_bug.cgi?id=736876
https://bugzilla.gnome.org/show_bug.cgi?id=736879
https://bugzilla.gnome.org/show_bug.cgi?id=736880
https://bugzilla.gnome.org/show_bug.cgi?id=736881
https://bugzilla.gnome.org/show_bug.cgi?id=736888
https://bugzilla.gnome.org/show_bug.cgi?id=736890
https://bugzilla.gnome.org/show_bug.cgi?id=736892
https://bugzilla.gnome.org/show_bug.cgi?id=736893
https://bugzilla.gnome.org/show_bug.cgi?id=736894
2014-09-24 00:45:31 +01:00
Tim-Philipp Müller 208e12dca2 videobox: remove duplicate assignments
https://bugzilla.gnome.org/show_bug.cgi?id=736897
2014-09-24 00:12:14 +01:00
Sebastian Dröge 91a3d044f0 flacparse: Only calculate with durations != -1 2014-09-23 22:56:21 +03:00
Matej Knopp fd3e8c5672 qtmux: collect pad for sparse stream should be created with lock set to false
Avoids waiting for buffers from sparse streams

https://bugzilla.gnome.org/show_bug.cgi?id=737095
2014-09-23 15:25:45 -03:00
Matej Knopp 6695341583 qtmux: fix subtitle buffer duration and strip null termination
Strip the \0 off the subtitle as we already know the size and also remember
to set the duration as buffer copying doesn't do it.

https://bugzilla.gnome.org/show_bug.cgi?id=737095
2014-09-23 15:25:28 -03:00
Matej Knopp f57e9c4516 qtmux: move subtitle layer above video and set alternate group
layer -1 is above video, that is 0
And having all subtitles in alternate group 2 means that only one
should be selected at a time.

https://bugzilla.gnome.org/show_bug.cgi?id=737095
2014-09-23 15:20:37 -03:00
Matej Knopp 8a4931726d qtdemux: Handle mp4a without ESDS atom
https://bugzilla.gnome.org/show_bug.cgi?id=736986
2014-09-22 13:04:52 -03:00
Sanjay NM 89eb378598 dtmf: Removed unused structure members
https://bugzilla.gnome.org/show_bug.cgi?id=736883
2014-09-19 15:42:04 -04:00
Reynaldo H. Verdejo Pinochet e655d47dfc isomp4: fix wrong DAR calculation for PAR <= 1
CID #1226452

https://bugzilla.gnome.org/show_bug.cgi?id=736396
2014-09-18 18:53:38 -03:00
Sanjay NM ba4b9b22d0 flv: Removed unreachable break statements
https://bugzilla.gnome.org/show_bug.cgi?id=736884
2014-09-18 09:42:43 -04:00
Ognyan Tonchev f7ae4288a2 rtpbin: do not leak encsink pad in error case
https://bugzilla.gnome.org/show_bug.cgi?id=736807
2014-09-18 12:49:53 +03:00
Ognyan Tonchev 3bf81ad12c multipartdemux: do not leak new stream event
https://bugzilla.gnome.org/show_bug.cgi?id=736805
2014-09-18 12:49:53 +03:00
Ravi Kiran K N 5480f6d2dd y4menc: port y4menc to use GstVideoEncoder base class
https://bugzilla.gnome.org/show_bug.cgi?id=735085
2014-09-17 18:28:00 -03:00
Ognyan Tonchev 7cd335e9b9 flacparse: do not leak uid after parsing TOC event
https://bugzilla.gnome.org/show_bug.cgi?id=736739
2014-09-17 09:51:15 +03:00
Sebastian Dröge 4bc10e755a rtpvrawdepay: Declare some more required caps fields in the sink template caps
Now only missing are width and height, which are expressed as strings
for RTP... so we can't put them into the template caps.
2014-09-16 22:47:13 +03:00
Wim Taymans 711e1407a1 capssetter: update to 1.0 transform_caps sematics
In 1.0, we pass the complete caps to transform_caps to allow for better
optimizations. Make this function actually work on non-simple caps
instead of just ignoring the configured filter caps.
2014-09-15 18:14:06 +02:00
Peter G. Baum f8f61237f8 wavenc: use WAVE_FORMAT_EXTENSIBLE for more than 2 channels
https://bugzilla.gnome.org/show_bug.cgi?id=733444
2014-09-15 11:19:23 +03:00
Sebastian Dröge a9d7c1d95e wavparse: Fix parsing of adtl chunks
We have to skip 12 bytes of data for the chunk, and the data size
passed to the sub-chunk parsing functions should have 4 bytes less
than the data size.

Also when parsing the sub-chunks, check if we actually have enough
data to read instead of just crashing.

https://bugzilla.gnome.org/show_bug.cgi?id=736266
2014-09-12 15:08:23 +03:00
Sanjay NM 66810a32f6 udp: include string.h for memcmp and memset
https://bugzilla.gnome.org//show_bug.cgi?id=736528
2014-09-12 10:45:39 +01:00
Anuj Jaiswal 4242495ea7 matroskamux: don't bitwise OR the same flag twice
https://bugzilla.gnome.org//show_bug.cgi?id=736543
2014-09-12 10:37:31 +01:00
Tim-Philipp Müller 4c08f2694d matroskademux: handle real audio 28_8
Fixes duplicate check for 14_4.

https://bugzilla.gnome.org//show_bug.cgi?id=736543
2014-09-12 10:35:36 +01:00
Anuj Jaiswal 86579c59bf multifilesink: don't OR the same flag twice
https://bugzilla.gnome.org/show_bug.cgi?id=736462
2014-09-11 11:05:35 +01:00
Tim-Philipp Müller e6f77948ac udpsrc: more efficient memory handling
Drop use of g_socket_get_available_bytes() which is
not useful on all systems (where it returns the size
of the entire buffer not that of the next pending
packet), and is yet another syscall and apparently
very inefficient on Windows in the UDP case.

Instead, when reading UDP packets, use the more featureful
g_socket_receive_message() call that allows to read into
scattered memory, and allocate one memory chunk which is
likely to be large enough for a packet, while also providing
a larger allocated memory chunk just in case the packet
is larger than expected. If the received data fits into the
first chunk, we'll just add that to the buffer we return
and re-use the fallback buffer for next time, otherwise we
add both chunks to the buffer.

This reduces memory waste more reliably on systems where
get_available_bytes() doesn't work properly.

In a multimedia streaming scenario, incoming UDP packets
are almost never fragmented and thus almost always smaller
than the MTU size, which is also why we don't try to do
something smarter with more fallback memory chunks of
different sizes. The fallback scenario is just for when
someone built a broken sender pipeline (not using a
payloader or somesuch)

https://bugzilla.gnome.org/show_bug.cgi?id=610364
2014-09-09 17:38:52 +01:00
Tim-Philipp Müller 39505584e1 udpsrc: rework memory allocation bits and ensure we always have two chunks of memories to read into
First chunk is the likely/expected buffer size, second is as
fallback in case the packet is larger in the end.

Next step: actually use these.
2014-09-09 17:35:38 +01:00
Tim-Philipp Müller 305e4c2f46 udpsrc: track max packet size and save allocator negotiated by GstBaseSrc 2014-09-09 17:35:14 +01:00
Tim-Philipp Müller 8e28994207 audioecho: fix example command line 2014-09-08 16:15:32 +01:00
Tim-Philipp Müller 7271ff253b avidemux: fix crash with certain videos
This is a regression from 1.2 caused by the port
to the pad flow combiner.

https://bugzilla.gnome.org/show_bug.cgi?id=736192
2014-09-07 12:48:16 +01:00
Sebastian Dröge a3a5530518 matroska-demux: Don't handle parse errors at the end of file as an error
But only if they happen after the Matroska segment.

https://bugzilla.gnome.org/show_bug.cgi?id=735833
2014-09-05 11:36:30 +03:00
Andrei Sarakeev 558f9a2a6f videomixer: Fix synchronization if dynamically changing the FPS
https://bugzilla.gnome.org/show_bug.cgi?id=735859
2014-09-04 11:34:26 +03:00
Ravi Kiran K N ea43ef214a smpte: Check if input caps are the same and create output caps from video info
This makes sure that also properties like the pixel-aspect-ratio are the same
between both streams and that the output caps contain all fields necessary for
complete video caps.

https://bugzilla.gnome.org/show_bug.cgi?id=735804
2014-09-04 10:47:34 +03:00
Vineeth T M 6ff397eccc imagefreeze: replace with gst_buffer_copy
gst_buffer_ref and gst_buffer_writable is being used to create a writable copy of source buffer.

replacing the same with gst_buffer_copy as the functionality is same.

https://bugzilla.gnome.org/show_bug.cgi?id=735880
2014-09-03 21:33:09 -03:00
Tim-Philipp Müller 884f81ba28 qtdemux: mark jpeg and png as parsed so avdec_mjpeg can be used too
https://bugzilla.gnome.org/show_bug.cgi?id=735971
2014-09-03 23:08:16 +01:00
Jan Schmidt 9375e90203 qtdemux: Silence some warnings for normal file contents 2014-09-03 23:47:49 +10:00
Nicolas Huet 15894c1853 aacparse: Fix parsing issue when the buffer does not have a complete ADTS/LOAS frame
https://bugzilla.gnome.org/show_bug.cgi?id=735520
2014-09-02 09:43:14 +03:00
Vineeth T M 3a1e010221 imagefreeze: Don't call gst_caps_unref() on template caps when already unreferenced
Adding an extra condition while calling gst_caps_unref (templ)
and replacing gst_caps_make_writable (gst_caps_ref (caps)) with
gst_caps_copy (caps) in line 177, since the functionality is same.

https://bugzilla.gnome.org/show_bug.cgi?id=735795
2014-09-01 14:34:43 +03:00
Sebastian Dröge f5df8af59e wavparse: Store size of data tag in a 64 bit integer locally too
Otherwise we will clip the DS64 value of RF64 files to 32 bits again.
2014-08-29 11:55:26 +03:00
Sebastian Dröge d924f8a955 wavparse: Use 64 bit scaling functions now that fact is a 64 bit integer 2014-08-29 11:53:23 +03:00
Peter G. Baum 5c838af300 wavparse: support rf64 format
https://bugzilla.gnome.org/show_bug.cgi?id=735627
2014-08-29 11:49:42 +03:00
Jason Litzinger bcbdcbf638 multipartdemux: Ensure caps before pad added.
This stores the stream-start, sets caps, and then adds the pad,
which ensures that the caps are set for the "pad-added" callback.

https://bugzilla.gnome.org/show_bug.cgi?id=735626
2014-08-29 11:38:19 +03:00
Nicolas Dufresne 356defdfea flvmux: Fallback to PTS if DTS is missing
Fixing a regression introduce when fixing:
https://bugzilla.gnome.org/show_bug.cgi?id=731352
2014-08-28 15:05:56 -04:00
Vineeth T M d46631c5c7 imagefreeze: Remove impossible error condition
We return EOS after the first buffer, and GstPad will make sure now that we
won't get any other buffer afterwards until a flush happens. No need to check
for it ourselves.

https://bugzilla.gnome.org/show_bug.cgi?id=735581
2014-08-28 14:55:00 +03:00
Nicolas Dufresne a7a3cb343a flvmux: Correctly offset timestamp
The previous method would break AV sync in the case audio or video
didn't start at the same point in running time.

https://bugzilla.gnome.org/show_bug.cgi?id=731352
2014-08-27 21:09:57 -04:00