Commit graph

8557 commits

Author SHA1 Message Date
Sebastian Dröge d620ca4740 matroskademux: Parse and handle CodecDelay, SeekPreroll and DiscardPadding
https://bugzilla.gnome.org/show_bug.cgi?id=727305
2015-11-03 20:35:27 +02:00
Sebastian Dröge 52122f9206 matroskamux: Write CodecDelay, DiscardPadding and SeekPreroll for Opus
And also adjust timestamps and durations according to the codec delay, both
should include it for whatever reason.

https://bugzilla.gnome.org/show_bug.cgi?id=727305
2015-11-03 20:35:27 +02:00
Sebastian Dröge b34574d829 matroskamux: Opus headers are not in-band
https://bugzilla.gnome.org/show_bug.cgi?id=727305
2015-11-03 20:35:27 +02:00
Luis de Bethencourt 9fee2c7c9f rtpmanager: switch G_GINT64_FORMAT for GST_STIME_ARGS
No need to use G_GINT64_FORMAT for potentially negative values of
GstClockTimeDiff. Since 1.6 these can be handled with GST_STIME_ARGS.
Plus it creates more readable values in the logs.

https://bugzilla.gnome.org/show_bug.cgi?id=757480
2015-11-03 14:47:00 +00:00
Luis de Bethencourt d4f094f587 rtpmanager: use GST_STIME_ARGS for GstClockTimeDiff
No need to manually handle negative values of diff, GST_STIME_ARGS does
exactly this.
2015-11-03 14:26:32 +00:00
Luis de Bethencourt ae729440b1 videomixer: use GST_STIME_ARGS for GstClockTimeDiff
No need to manually handle negative values of diff, GST_STIME_ARGS does
exactly this.
2015-11-02 16:53:20 +00:00
Luis de Bethencourt d90347edf2 deinterlace: use GST_STIME_ARGS for GstClockTimeDiff
No need to manually handle negative values of diff, GST_STIME_ARGS is
available for this.
2015-11-02 16:45:34 +00:00
Ravi Kiran K N 133e7bab32 audiochebband: Fix typo in example pipeline
Fix typo in example pipeline.

https://bugzilla.gnome.org/show_bug.cgi?id=757340
2015-10-30 20:20:12 +00:00
Nicola Murino 65d08e2154 matroskamux: don't drop JPEG frames that only have PTS but no DTS set
For the MS/VfW codec ids, we want to write DTS timestamps instead
of PTS because that's what everyone else seems to do (and it's also
how it is in AVI). So for those input formats we use the buffer DTS
instead of the PTS. However, if there's no DTS set but only the PTS
then just take the PTS instead of dropping the input buffer. This
is useful especially for I-frame only codecs like JPEG and huffyuv,
but should also be fine as fallback in general.

Fixes regression with input JPEG frames that only have PTS set on them.

https://bugzilla.gnome.org/show_bug.cgi?id=756967
2015-10-28 19:02:44 +00:00
George Kiagiadakis 4a78048cc5 splitmuxsink: do not destroy the multiqueue & muxer when going to NULL
Instead, delay it until all request pads have been released. This is
because the release_pad() vfunc requires the multiqueue and muxer to
be there in order to release their request pads as well. If those
elements are destroyed earlier, release_pad() does not work, no
pads are released and some resources are leaked.

https://bugzilla.gnome.org/show_bug.cgi?id=753622
2015-10-28 22:39:44 +11:00
Sebastian Dröge cbf181f31b matroskademux: Read buffer timestamp *after* actually setting it
https://bugzilla.gnome.org/show_bug.cgi?id=756809
2015-10-27 18:01:32 +02:00
Sebastian Dröge ae3b903019 scaletempo: Fix handling of rate < 0
We have to reverse all samples in a buffer before processing them to properly
have continuous data from one buffer to another. As a result we will have a
negative applied rate and a rate of 1.0.

Also make sure that input buffers are correctly clipped to the segment,
otherwise our calculations are going to go wrong.

Also copy over the segment event's sequence number to the output segment while
we're at it.

https://bugzilla.gnome.org/show_bug.cgi?id=757033
2015-10-27 17:16:41 +02:00
Thiago Santos dc0e2281b9 deinterlace: break as soon as non-interlaced if found
It looks for a non-interlaced entry on the filter caps, break
as soon as one is found to avoid wasting cpu
2015-10-25 11:02:34 -03:00
Thiago Santos 82d62b9edd deinterlace: implement accept-caps
Implement accept-caps handler to avoid doing a full caps query
downstream to handle it.

This commit implements accept-caps as a simplification of the _getcaps
function, so it exposes the same limitations that getcaps would.
For example, not accepting renegotiation to caps with capsfeatures when
it was last configured to a caps that it has to deinterlace.
2015-10-25 11:01:45 -03:00
Sebastian Dröge 1e0b9b9853 scaletempo: Add support for F64 2015-10-23 20:16:17 +03:00
Mischa Spiegelmock cdd7091c1c docs: Minor fixes in various places
https://bugzilla.gnome.org/show_bug.cgi?id=756996
2015-10-23 10:42:19 +03:00
Luis de Bethencourt 25ddf9e6ae goom: remove compiler trick
After commit 2cb6cfed22 there is no need to
trick the compiler anymore about the usage of variable cpuFlavour.
2015-10-21 17:57:22 +01:00
Ravi Kiran K N 4089ce9513 audiofx: remove unused variable
Remove unsued variable have_coeffs in audiofxbaseiirfilter

https://bugzilla.gnome.org/show_bug.cgi?id=756905
2015-10-21 16:18:46 +03:00
Tim-Philipp Müller ff422c112f flvdemux: relax creation time parsing
Parse wrong timestamps like we used to write as well,
e.g. 10:9:42, and the hour might be without a leading
zero in any case.
2015-10-21 11:53:09 +01:00
Tim-Philipp Müller 31b61f3add flvdemux: fix indentation 2015-10-21 11:45:35 +01:00
Tim-Philipp Müller a6eb0e5489 flvdemux: extract both creation date and time
Before we only extracted the date part.
2015-10-21 11:45:14 +01:00
Tim-Philipp Müller 5413fd5f20 flvmux: fix writing of creation time
Don't write time as e.g. 11:9:42
2015-10-21 11:16:01 +01:00
Thiago Santos 539ebd0f42 rtpj2kpay: update fragment offset
It was always being set to 0, making the resulting stream broken
for the receiver

https://bugzilla.gnome.org/show_bug.cgi?id=756422
2015-10-19 16:53:59 -03:00
Ryan Hendrickson fc203a4bd7 qtmux: Don't unconditionally use strnlen()
It's not available on older OSX and we can as well use memchr() here.

https://bugzilla.gnome.org/show_bug.cgi?id=756154
2015-10-19 15:37:34 +03:00
Vineeth TM 0cefb6722b auparse: Fix event memory leak
Free the event after being handled to prevent memory leak.

https://bugzilla.gnome.org/show_bug.cgi?id=756799
2015-10-19 10:30:24 +01:00
Tim-Philipp Müller d238f080fb qtmux: unify raw audio caps into a single caps structure 2015-10-19 09:14:19 +01:00
Reynaldo H. Verdejo Pinochet 82bffe3eef qtdemux: add support for FFV1 coded streams in mov
https://bugzilla.gnome.org/show_bug.cgi?id=752495
2015-10-15 10:38:34 -07:00
Guillaume Desmottes 360a6509c7 qtdemux: fix caps leak
If the QtDemuxStream are re-used they may already have caps which used
to be leaked.

Reproduced using the
validate.dash.playback.seek_forward.dash_exMPD_BIP_TC1 validate
scenario.

https://bugzilla.gnome.org/show_bug.cgi?id=756561
2015-10-14 14:42:19 +03:00
Vineeth TM 8283337e73 qtdemux: Fix taglist memory leak
Free the stream and its sub items instead of just the stream

https://bugzilla.gnome.org/show_bug.cgi?id=756544
2015-10-14 10:22:19 +03:00
Thibault Saunier ed079b9e74 qtmux: Allow negotiating to S8 as a raw format but stop making it best choice
Negotiation to audio/x-raw,format=S8 was not possible because S8 does
not have a bit order so we ended up doing `if (!entry.fourcc) goto refuse_caps;`

https://bugzilla.gnome.org/show_bug.cgi?id=756387
2015-10-13 21:24:10 +01:00
Thibault Saunier 6bfee34b93 qtmux: Add prores support
https://bugzilla.gnome.org/show_bug.cgi?id=756388
2015-10-13 21:24:10 +01:00
Julien Isorce c9df481e27 goom/goom2k1: remove obsolete left over files
They now use the new GstAudioVisualizer base class
from gst-plugins-base/gst-libs/gst/pbutils

Also fixed undefined reference to gst_audio_visualizer_get_type
Added GST_PLUGINS_BASE_LIBS to Makefile.am and re-order LIBADD.

https://bugzilla.gnome.org/show_bug.cgi?id=742875
2015-10-12 17:14:53 +01:00
Vineeth TM fb7783f8b0 mpegaudioparse: Fix buffer memory leak during failures
mapped buffer is not being unmapped during failures

https://bugzilla.gnome.org/show_bug.cgi?id=756231
2015-10-12 16:56:30 +03:00
Sebastian Dröge ca9b6b55e6 matroskamux: Create a TIME segment when creating streamable output
Related to https://bugzilla.gnome.org/show_bug.cgi?id=754435 which
does the same for flvmux.
2015-10-11 11:37:51 +01:00
Havard Graff 240b0ac9f6 flvdemux: output speex vorbiscomment as a GstTagList
This is what speexdec expects.

https://bugzilla.gnome.org/show_bug.cgi?id=755478
2015-10-11 11:12:27 +01:00
Havard Graff b6f133ba17 flvmux: GST_BUFFER_OFFSETs should be GST_BUFFER_OFFSET_NONE
Or else flvdemux don't understand it

https://bugzilla.gnome.org/show_bug.cgi?id=754435
2015-10-11 11:10:20 +01:00
Havard Graff cf3a2294da flvmux: use time segment and copy timestamps when streamable
Add a basic test using speex data to verify timestamping.

https://bugzilla.gnome.org/show_bug.cgi?id=754435
2015-10-11 11:09:08 +01:00
Havard Graff a937c59acd flvdemux: speex is also always 16KHz
This is just a cosmetic change for the logs, since the right caps
for Speex is being set elsewhere.

https://bugzilla.gnome.org/show_bug.cgi?id=755479
2015-10-11 11:07:00 +01:00
Stian Selnes 91a78053c7 rtpmanager: Add 'source-stats' to stats and notify
Add statitics from each rtp source to the rtp session property.
'source-stats' is a GValueArray where each element is a GstStructure of
stats for one rtp source.

The availability of new stats is signaled via g_object_notify.

https://bugzilla.gnome.org/show_bug.cgi?id=752669
2015-10-11 10:57:09 +01:00
Sebastian Dröge f09da189aa rtpsession: Implement sending of reduced size RTCP packets
https://bugzilla.gnome.org/show_bug.cgi?id=750456
2015-10-11 10:47:47 +01:00
Ravi Kiran K N 82de6384dd audiofx: Remove unused variable
Remove unused variable 'degree' in audiodynamic

https://bugzilla.gnome.org/show_bug.cgi?id=756234
2015-10-10 21:32:18 +01:00
Vineeth TM b26ce7ba6d qtdemux: Fix memory leak for corrupted file
Free brands before overriding them.

https://bugzilla.gnome.org/show_bug.cgi?id=756226
2015-10-08 15:03:36 +01:00
Sebastian Dröge 2be5416e4a rtpbin: Add missing break 2015-10-07 23:23:45 +01:00
Miguel París Díaz f321bfeaf4 rtpmanager: Take into account packet rate for max-dropout and max-misorder calculations
https://bugzilla.gnome.org/show_bug.cgi?id=751311
2015-10-07 12:07:18 +01:00
Miguel París Díaz 4c96094fbb rtpmanager: add "max-dropout-time" and "max-misorder-time" props
https://bugzilla.gnome.org/show_bug.cgi?id=751311
2015-10-07 12:06:47 +01:00
Vineeth TM 44008938bb qtmux: Fix date memory leak
When getting date from taglist, the memory should be freed after
using it.

https://bugzilla.gnome.org/show_bug.cgi?id=756171
2015-10-07 11:22:20 +01:00
Vineeth TM d7a80be3c7 qtmux: Fix sample memory leak
When getting sample from taglist, the memory should be freed after
using it.

https://bugzilla.gnome.org/show_bug.cgi?id=756068
2015-10-05 12:09:26 +01:00
Vineeth TM 15b08e0bd5 cutter: Fix buffer leak
Buffer is added to the internal cache, and pushed only when accumulated
buffer duration crosses 200 ms. So when the chain ends, the buffer accumulated
is not freed. Freeing the cache when the state changes from PAUSED to READY.

https://bugzilla.gnome.org/show_bug.cgi?id=754212
2015-10-05 12:03:33 +01:00
Olivier Crête 58073eaa7a rtpmux: Use default upstream event handling
https://bugzilla.gnome.org/show_bug.cgi?id=752694
2015-10-02 17:39:10 -04:00
Olivier Crête 43c213fc5d rtpmux: As 0xFFFFFFFF is a valid ssrc, check if it has been set
https://bugzilla.gnome.org/show_bug.cgi?id=752694
2015-10-02 17:39:10 -04:00
Havard Graff d5e26ab909 gstrtpmux: allow the ssrc-property to decide ssrc on outgoing buffers
By not doing this, the muxer is not effectively a rtpmuxer, rather a
funnel, since it should be a single stream that exists the muxer.

If not specified, take the first ssrc seen on a sinkpad, allowing upstream
to decide ssrc in "passthrough" with only one sinkpad.

Also, let downstream ssrc overrule internal configured one

We hence has the following order for determining the ssrc used by
rtpmux:

0. Suggestion from GstRTPCollision event
1. Downstream caps
2. ssrc-Property
3. (First) upstream caps containing ssrc
4. Randomly generated

https://bugzilla.gnome.org/show_bug.cgi?id=752694
2015-10-02 17:39:06 -04:00
Sebastian Dröge 41a82b9706 udpsrc: Fixup last commit 2015-10-02 22:42:20 +03:00
Sebastian Dröge 26588fbdb3 Update GLib dependency to 2.40.0 2015-10-02 22:21:45 +03:00
Miguel París Díaz bf0e4f65b4 rtpstats: add utility for calculating RTP packet rate 2015-10-02 19:25:27 +01:00
Thiago Santos df0a31b4ee qtdemux: handle empty segments in seeking adjust
If seeking targets an empty segment skip it as there is no media
offset to get from it. Instead look for the next one.

This doesn't make seeking in push-mode work if you seek to an
empty segment but at least won't get you to wrong offsets.

https://bugzilla.gnome.org/show_bug.cgi?id=753484
2015-10-02 19:23:43 +01:00
George Kiagiadakis 5e4caca709 splitmuxsink: post messages when fragments are being opened and closed
This can be useful for applications that need to track the created fragments
(to log them in a recording database, for example)

https://bugzilla.gnome.org/show_bug.cgi?id=750108
2015-10-03 00:52:23 +10:00
Ramiro Polla f0a47d0b60 splitmuxsink: allow non-video streams to serve as reference
In the absence of a video stream, the first stream will be used as
reference.

https://bugzilla.gnome.org/show_bug.cgi?id=753617
2015-10-03 00:44:58 +10:00
George Kiagiadakis 20754db26f splitmuxsink: initialize mux_start_time properly
mux_start_time refers to the running_time of the buffer
that goes first in the output file. Normally this time is
0, so this variable is initialized to 0 during the state
change to PAUSED.

However, when dealing with dynamic pipelines and starting
a recording while the pipeline has already run for a while,
the running_time of the first buffer is > 0 and this causes
a problem with detecting the end of the first file(s) when
splitting by duration, because the code will later compare
the threshold_time with (last buffer running_time - mux_start_time)
and will get it wrong until mux_start_time advances enough
to make this difference < threshold_time, creating empty files
in the meantime.

https://bugzilla.gnome.org/show_bug.cgi?id=753624
2015-10-03 00:44:01 +10:00
Vineeth T M bff62bfe13 avidemux: Reverse playback does not consider segment.start
During reverse playback, the media should stop playing at segment.start
This does not happen, and avidemux continues to process data even when
current timestamp is less that segment.start.

https://bugzilla.gnome.org/show_bug.cgi?id=755094
2015-10-02 17:40:18 +03:00
Manasa Athreya e6a4c81af5 qtdemux: Check multi trex to find track id in mp4 mpeg-dash stream
If stream has more than one trex box which is not matched to actual
track id, it makes qtdemux crashed.

Author : Manasa Athreya (manasa.athreya@lge.com)

https://bugzilla.gnome.org/show_bug.cgi?id=754864
2015-10-02 17:38:57 +03:00
Ravi Kiran K N b71068e42d smpte: get size, stride info using VideoInfo
Use VideoInfo data to get size stride and
offset, instead of hard coded macros.

https://bugzilla.gnome.org/show_bug.cgi?id=754558
2015-10-02 17:38:01 +03:00
Ravi Kiran K N 61e3c48ad1 smpte: free mask
Free the memory allocated to 'mask' to avoid
memory leak.

https://bugzilla.gnome.org/show_bug.cgi?id=754555
2015-10-02 17:37:25 +03:00
Hyunjun Ko b814d7ed25 rtpsource: doesn't handle probation and rtp gap in case of sender
https://bugzilla.gnome.org/show_bug.cgi?id=754548
2015-10-02 16:42:36 +03:00
Hyunjun Ko 2b1f52755d rtpmanager: add new on-new-sender-ssrc, on-sender-ssrc-active signals
Allows for applications to get internal source's RTP statistics.
(eg. sender sources for a server/client)

https://bugzilla.gnome.org/show_bug.cgi?id=746747
2015-10-02 16:39:29 +03:00
Luis de Bethencourt 711b035137 goom2k1: use the new audiovisualizer base class
Rebase to have goom using the GstAudioVisualizer base class in
gst-plugins-base/gst-libs/gst/pbutils

https://bugzilla.gnome.org/show_bug.cgi?id=742875
2015-10-01 16:24:46 +01:00
Luis de Bethencourt 17c17fc369 goom: use the new audiovisualizer base class
Rebase to have goom using the GstAudioVisualizer base class in
gst-plugins-base/gst-libs/gst/pbutils

https://bugzilla.gnome.org/show_bug.cgi?id=742875
2015-10-01 16:16:25 +01:00
Thiago Santos 5c7b051b90 deinterleave: implement accept-caps
Avoid using default accept-caps handler that will query downstream
and is more expensive. Just check if the caps is compatible with
the template and check if the channels are the same.
2015-09-30 17:35:33 -03:00
Thiago Santos b71d9b1783 deinterleave: use the caps query filter
It was being ignored and would lead to wrong results if the
element doing the query would rely on the intersection being made.
2015-09-30 12:48:30 -03:00
Thiago Santos 74c05502f7 deinterleave: implement a caps query handler for the sinkpad
It was missing and apparently code relied on having it there
for not allowing a change in the number of channels
2015-09-30 12:48:30 -03:00
Thiago Santos ad5bc461c8 deinterleave: fix caps leak
Caps from the pad template are being leaked. In any case it is
from a static pad template and will 'leak' in the end, just doing
the cleanup for the good practice.
2015-09-30 12:47:52 -03:00
Sebastian Dröge 1cd4baa16a matroskademux: Remove leftover assertion from 0.10
We now allocate memory via GstAllocator and as such can handle arbitrary
alignments, not only <= G_MEM_ALIGN.

https://bugzilla.gnome.org/show_bug.cgi?id=755708
2015-09-28 18:03:51 +02:00
Guillaume Marquebielle 35139ee8b7 aacparse: fix uninitialized variables in LOAS config reading
On reading LOAS config, flag v=1 and vA=1 combination can occur, leading to warning
"Spec says "TBD"...". Returning TRUE on this case while parameters 'sample_rate' and
'channels' are pointing to uninitialized values can end on setting random values as
rate and channels on src caps.

https://bugzilla.gnome.org/show_bug.cgi?id=755611
2015-09-26 22:18:26 +10:00
Jan Schmidt 866c86dd37 Fix some compiler warnings when building with G_DISABLE_ASSERT
Touches rtpmanager and gdkpixbufsink
2015-09-26 22:18:26 +10:00
Chris Bass 563ffc0d8f qtdemux: support timed-text subtitle tracks.
https://bugzilla.gnome.org/show_bug.cgi?id=752818
2015-09-26 00:51:42 +02:00
Sebastian Dröge 7046852e7d gst: Don't use deprecated gst_segment_to_position() 2015-09-26 00:12:46 +02:00
Sebastian Dröge 01c0f8723f rtpbin/rtpjitterbuffer/rtspsrc: Add property to set maximum ms between RTCP SR RTP time and last observed RTP time
https://bugzilla.gnome.org/show_bug.cgi?id=755125
2015-09-25 23:55:05 +02:00
Sebastian Dröge a0ae6b5b5a rtpbin/session: Allow RTCP sync to happen based on capture time or send time
Send time is the previous behaviour and the default, but there are use cases
where you want to synchronize based on the capture time.

https://bugzilla.gnome.org/show_bug.cgi?id=755125
2015-09-25 23:55:00 +02:00
Thibault Saunier 802a270126 smptealpha: Do not set width/height before comparing with old values
Otherwise we end up considering the values did not change and we wrongly
work with the old video format (which will lead to wrong
behaviour/segfaults).

https://bugzilla.gnome.org/show_bug.cgi?id=755621
2015-09-25 14:20:13 +02:00
Sebastian Dröge d7a0fd82c0 qtdemux: Accumulate segments for edit lists before activating the next segment
eceb2ccc73 broke segment seeks by always
accumulating segments manually when activating a segment. This is only
needed when handling edit lists, not when activating a segment because of a
seek. Do the accumulation when switching edit list segments instead.

This fixes segment seeks again, while keeping edit lists playback working.

https://bugzilla.gnome.org/show_bug.cgi?id=755471
2015-09-24 09:33:33 +02:00
Vikram Fugro 3c2044168d spectrum: send phase values in the GstMessage for Phase info
https://bugzilla.gnome.org/show_bug.cgi?id=755463
2015-09-23 15:41:08 +02:00
Jan Schmidt e5d53ec7e4 matroska-mux: Don't output a warning on MONO multiview mode. 2015-09-22 00:46:01 +10:00
Sebastian Rasmussen 905295ea34 rtptheoradepay: Fix memory leaks
The same memory leaks were fixed in identical fashion for
vorbisdepay in 06efeff5d9 in 2009.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=755277
2015-09-20 10:13:38 +02:00
Sebastian Rasmussen 2d7bfc1314 rtp{vorbis,theora}{pay,depay}: Cosmetic cleanup
* use g_list_free_full(), don't iterate elements maually when freeing
* call gst_rtp_*_pay_clear_packet(), don't duplicate its code
* use gst_buffer_unref() to clarify that it is buffers being released,
  instead of refering directly to gst_mini_object_unref()

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=755277
2015-09-20 10:13:38 +02:00
Sebastian Dröge 869e21bd82 rtp{vorbis,theora}pay: Store headers in the packet buffers lists, not a NULL buffer
https://bugzilla.gnome.org/show_bug.cgi?id=755265
2015-09-20 10:13:38 +02:00
Eunhae Choi dc74d744c3 avidemux: Fix taglist leak
gst_tag_list_insert() does not take ownership of the inserted taglist.

https://bugzilla.gnome.org/show_bug.cgi?id=755138
2015-09-17 12:03:08 +02:00
Jan Schmidt c919548e2c aacparse: Skip LOAS AAC until a valid config is seen.
It's normal when dropping into the middle of a stream to
not always have the config available immediately, so skip LOAS
until a valid config is seen without either setting invalid
caps or erroring out.

https://bugzilla.gnome.org/show_bug.cgi?id=751386
2015-09-16 20:51:44 +10:00
Mark Nauwelaerts b7b244f356 rtpjitterbuffer: reset just a bit more upon flush_stop 2015-09-13 15:42:06 +02:00
Mark Nauwelaerts 1e7a3473fd rtpjitterbuffer: remove dead struct member 2015-09-13 15:41:03 +02:00
Vineeth TM 2a7ba2955c multiudpsink: fix GError memory leak when hostname resolution fails
https://bugzilla.gnome.org/show_bug.cgi?id=754869
2015-09-11 10:18:14 +01:00
Thiago Santos f9c7dc2797 matroskamux: drop HEADER flag from output buffers
Drop HEADER flag from output buffers if they are not indeed
headers.

Fixes resending of headers in tcp connection handling

https://bugzilla.gnome.org/show_bug.cgi?id=754768
2015-09-10 16:28:48 -03:00
Tim-Philipp Müller 99a6f8207f matroskamux: fix matroskamux ! matroskademux
Don't carry over DISCONT flags from the input buffers to the
output buffer, or the demuxer might reset its state when it
receives the first data buffer just after parsing the simple
block header, and then expect sane data to follow.
Fixes matroskamux ! demux erroring out.

https://bugzilla.gnome.org/show_bug.cgi?id=754768
https://bugzilla.gnome.org/show_bug.cgi?id=657805
2015-09-10 16:05:53 +01:00
Martin Kelly 00a938f134 rtsp: fix small README typo
https://bugzilla.gnome.org/show_bug.cgi?id=754807
2015-09-10 08:43:20 +01:00
Tim-Philipp Müller fcdb79ef7b wavpackparse: set both pts and dts so baseparse doesn't make up wrong dts after seeks
https://bugzilla.gnome.org/show_bug.cgi?id=752106
2015-09-06 16:36:47 +01:00
Tim-Philipp Müller 0d88f27108 flacparse: set both pts and dts so baseparse doesn't make up wrong dts after a seek
flac contains the sample offset in the frame header, so after a seek
without index flacparse will know the exact position we landed on and
timestamp buffers accordingly. It only set the pts though, which means
the baseparse-set dts which was set to the seek position prevails, and
since the seek was based on an estimate, there's likely a discrepancy
between where we wanted to land and where we did land, so from here on
that dts/pts difference will be maintained, with dts possibly multiple
seconds ahead of pts, which is just wrong. The easiest way to fix this
is to just set both pts and dts based on the sample offset, but perhaps
parsed audio should just not have dts set at all.

https://bugzilla.gnome.org/show_bug.cgi?id=752106
2015-09-06 16:36:44 +01:00
George Chriss 1afb988256 flvmux: Make the element count in arrays not include end
One-line removal of tags_written++

This should fix rtmp output to crtmpserver, and hopefully
noone is expecting that the element count includes the end
element, as different bits of documentation say different
things about whether it should or not.

https://bugzilla.gnome.org/show_bug.cgi?id=661624
2015-09-05 23:45:37 +10:00
Jan Schmidt db2967125b flvmux: Store incoming bitrate tags and send in the metadata
Apparently the Microsoft Azure RTMP server requires that the
videodatarate and audiodatarate metadata be provided, so
set those, even if it's to 0. Use the actual input bitrate
tags if available.
2015-09-05 23:45:37 +10:00
Jan Schmidt b38e24995b rtspsrc: Don't parse key data more than needed.
When an auxilliary streams are present in the SDP media,
there's no need to re-parse the SDP attributes multiple
times.
2015-09-05 23:44:51 +10:00
Jan Schmidt fe4ed1d1df rtspsrc: Fix SRTP + RTX, auth access, a leak, and an invalid memory access.
In parse_keymgmt(), don't mutate the input string that's been passed
as const, especially since we might need the original value again if
the same key info applies to multiple streams (RTX, for example).

When a resource is 404, and we have auth info - retry with the auth
info the same as if we had receive unauthorised, in case the resource
isn't even visible until credentials are supplied.

Fix a memory leak handling Mikey data.

When generating a random keystring, don't overrun the 30 byte
buffer by generating 32 bytes into it.
2015-09-05 23:44:51 +10:00
Sebastian Dröge 50e9cc7f04 udpsrc: Fix build with GLib < 2.44
G_IO_ERROR_CONNECTION_CLOSED was added in 2.44.
2015-09-04 15:18:05 +03:00
Sebastian Dröge 89137fc136 udpsrc: Ignore G_IO_ERROR_CONNECTION_CLOSED when receiving data
This happens on Windows if we use the same socket for sending packets,
and the remote sends ICMP port/host unreachable messages.

https://bugzilla.gnome.org/show_bug.cgi?id=754534
2015-09-04 12:01:52 +03:00
Sebastian Dröge f0ca2f2ecb rtpvorbis/theoradepay: Fix handling of fragmented packets
This was broken in b1089fb520 by not considering the full packet length of a
fragmented packet but only the length of the first one.

https://bugzilla.gnome.org/show_bug.cgi?id=754417
2015-09-02 21:13:46 +03:00
Olivier Crête dad751644e dtmfsrc: Reply to latency query 2015-09-01 15:49:07 -04:00
Jan Alexander Steffens (heftig) 3f8efd8af8 matroskademux: Align raw video frames to 32 bytes
Outputting unaligned video frames causes videoscale et al to
crash when attempting SIMD-accelerated conversion.

https://bugzilla.gnome.org/show_bug.cgi?id=736965
2015-08-31 14:35:59 +03:00
Stefan Sauer 6a8194e121 level: fix level calculations for mutliple channels
This was broken with 7b90bf3215.
2015-08-27 10:16:38 +02:00
Ravi Kiran K N cac239ab89 smpte: Fix memory leak
In gst_smpte_collected(), check upfront if input formats are same
or not. This avoids allocation of in1 and in2 buffers and
subsequent memory leak when input formats do not match.

https://bugzilla.gnome.org/show_bug.cgi?id=754153
2015-08-27 11:13:43 +03:00
Vineeth TM ba8cda54f4 rtspsrc: Trivial fix to check correct condition
When checking for describe method, because of missing parentheses, wrong
condition is being checked, which will result in wrong behavior.

https://bugzilla.gnome.org/show_bug.cgi?id=753912
2015-08-21 11:06:57 +03:00
Vineeth TM 77c9e2cd4d matroska: read: fix tag list memory leak
gst_toc_entry_merge_tags makes a new ref of the taglist, so it should
be unref'ed as soon as the tags are merged to the tocentry

https://bugzilla.gnome.org/show_bug.cgi?id=753904
2015-08-21 10:22:54 +03:00
Tim-Philipp Müller 29afa75858 multifilesrc: fix regression with starting from index set via index property
When we haven't started yet, set the start_index when we set the index property,
so that we start at the right index position after the initial seek. The index
property was never really meant to be for writing, but it used to work, so let's
support it for backwards compatibility.

https://bugzilla.gnome.org/show_bug.cgi?id=739472
2015-08-18 13:17:34 +01:00
Alex Ashley 5d99d0dfa0 qtdemux: fix offset calculation when parsing CENC aux info
Commit 7d7e54ce68 added support for
DASH common encryption, however commit
bb336840c0 that went onto master
shortly before the CENC commit caused the calculation of the CENC
aux info offset to be incorrect.

The base_offset was being added if present, but if the base_offset
is relative to the start of the moof, the offset was being added twice.
The correct approach is to calculate the offset from the start of the
moof and use that offset when parsing the CENC aux info.
2015-08-18 11:48:03 +01:00
Hyunjun Ko 38d269f80d rtp: copy metadata in the (de)payloaders which is missed before
https://bugzilla.gnome.org/show_bug.cgi?id=753706
2015-08-17 14:12:50 +02:00
Thiago Santos 5838940681 y4mencode: fix gst-launch version in documentation 2015-08-16 14:30:57 -03:00
Thiago Santos a1aa942acf audioencoders: use template subset check for accept-caps
It is faster than doing a query that propagates downstream and
should be enough

Elements: speexenc, wavpackenc, mulawenc, alawenc
2015-08-16 14:30:57 -03:00
Thiago Santos 1b27badcfd videoencoders: use template subset check for accept-caps
It is faster than doing a query that propagates downstream and
should be enough

Elements: jpegenc, pngenc, vp8enc, vp9enc, y4menc
2015-08-16 14:30:57 -03:00
Tim-Philipp Müller a39bebb5fe mpegaudioparse: use new baseparse API to fix tag handling
https://bugzilla.gnome.org/show_bug.cgi?id=679768
2015-08-16 17:21:24 +01:00
Olivier Crête b1dfe209c2 audioparsers: use new base parse API to fix tag handling
https://bugzilla.gnome.org/show_bug.cgi?id=679768
2015-08-16 17:02:19 +01:00
Tim-Philipp Müller a042a98159 flacparse: use new baseparse API and fix tag handling
https://bugzilla.gnome.org/show_bug.cgi?id=679768
2015-08-16 16:33:55 +01:00
Sebastian Dröge e9aa4c7467 qtdemux: Use signed integer type to be able to check for negative subtraction results
CID 1315829
2015-08-16 13:04:02 +02:00
Luis de Bethencourt 1aee15050c rtpvorbisdepay: remove dead code
payload_buffer must be NULL in ignore_reserved. Check will always be false.

Introduced by b1089fb520

CID #1316476
2015-08-16 11:52:44 +01:00
Thiago Santos 1328289474 alawenc: port to AudioEncoder base class 2015-08-15 22:46:46 -03:00
Thiago Santos 65676c22ee audiodecoders: use default pad accept-caps handling
Avoids useless check of downstream caps when handling an
accept-caps query

Elements: flacdec, speexdec, wavpackdec, mulawdec, alawdec
2015-08-15 11:46:34 -03:00
Thiago Santos 65d2af6462 alawdec: make error handling a bit nicer
Print the element along with the debug to make it easier to trace
the failures
2015-08-15 11:31:04 -03:00
Thiago Santos 7ab3178cc4 alawdec: port to audiodecoder base class
mulawdec was already ported, alawdec was left behind.
2015-08-15 11:06:02 -03:00
Thiago Santos 41a4b68390 qtdemux: only look for more samples in moofs in pull-mode
For playback of some fragmented formats with qtdemux it will
try to look for the next moof after finishing one but it is only
possible for pull-mode. For playback of streaming fragmented formats
such as DASH it should just not try to look for another moof but
instead wait for more data.

https://bugzilla.gnome.org/show_bug.cgi?id=752602

https://bugzilla.gnome.org/show_bug.cgi?id=752603
2015-08-15 11:06:02 -03:00
Sebastian Dröge 64b06d1829 dcaparse: Don't look for a second syncword
There are streams out there that consistently contain garbage between
every frame so we never ever find a second consecutive syncword.

See https://bugzilla.gnome.org/show_bug.cgi?id=738237
2015-08-15 13:00:06 +02:00
Thiago Santos 9523fb23ed audioparsers: enable accept-template flag
Do a quick check with the pad template caps as it is enough. Users
should have figured the appropriate full caps on a previous caps query

https://bugzilla.gnome.org/show_bug.cgi?id=753623
2015-08-14 13:42:27 -03:00
George Kiagiadakis e2f2f087ec rtspsrc: send the User-Agent header
Sometimes it is useful to know this information on the
server side. Other popular implementations (vlc, ffmpeg, ...)
also send this header on every message.

This includes a new "user-agent" property that the user
can set to use a custom User-Agent string. The default
is "GStreamer/<version>"

https://bugzilla.gnome.org/show_bug.cgi?id=750101
2015-08-14 15:59:06 +02:00
George Kiagiadakis af03341e26 rtspsrc: wrap gst_rtsp_message_init_request in a local function
This will allow adding common request initialization, like the
user agent string, in just one place.
2015-08-14 15:59:06 +02:00
Prashant Gotarne 0671ea85af audioecho: make sure buffer gets reallocated if max_delay changes
https://bugzilla.gnome.org/show_bug.cgi?id=753490
2015-08-14 11:50:22 +01:00
Ramiro Polla 23b5a34675 rtpmp4gdepay: fix timestamps for RTP packets with multiple AUs
Use constantDuration to calculate the timestamp of non-first AU in the
RTP packet.

If constantDuration is not present in the MIME parameters, its value
must be calculated based on the timing information from two consecutive
RTP packets with AU-Index equal to 0.

https://bugzilla.gnome.org/show_bug.cgi?id=747881
2015-08-14 12:38:32 +02:00
Sebastian Dröge 3ede3105d6 goom: Rename get_type() function of base class to prevent symbol conflicts
This is a problem when statically linking.
2015-08-14 09:21:25 +02:00
Sebastian Dröge 68a9209408 rtpjitterbuffer: Keep the DTS estimate if we got no DTS after a jitterbuffer reset
Otherwise we will just output buffers without timestamps after a reset if no
timestamps are provided by upstream, e.g. when using RTSP over TCP.

https://bugzilla.gnome.org/show_bug.cgi?id=749536
2015-08-13 16:45:16 +02:00
Ravi Kiran K N 6eee26b24b matroska: Remove unused variable
https://bugzilla.gnome.org/show_bug.cgi?id=753556
2015-08-13 14:11:12 +01:00
Sebastian Dröge b1089fb520 rtp: Copy metadata in the (de)payloader, but only the relevant ones
The payloader didn't copy anything so far, the depayloader copied every
possible meta. Let's make it consistent and just copy all metas without
tags or with only the video tag.

https://bugzilla.gnome.org/show_bug.cgi?id=751774
2015-08-11 12:47:23 +02:00
Thiago Santos 288b0bbb38 qtdemux: fix small typo in comment 2015-08-10 19:11:17 -03:00
Nicolas Dufresne 109995707e goom2k1/doc: Fixup previous commit 2015-08-10 16:19:18 -04:00
Nicolas Dufresne 18c43aa845 goom2k1/doc: Use GstGoom2k1 namespace
The doc generator isn't happy when we have class name clash. Simply
use it's own namespace.
2015-08-10 15:55:19 -04:00
Prashant Gotarne cde1f12ad3 audioecho: removed unused variable in set_property
unused local variable 'delay' is removed.

https://bugzilla.gnome.org/show_bug.cgi?id=753450
2015-08-10 13:34:11 +01:00
Tim-Philipp Müller 604cc2a548 qtdemux: fix suboptimal queue iteration code 2015-08-10 12:45:50 +01:00
Tim-Philipp Müller 0fbf5f3d9e qtdemux: don't use glib 2.44-only API 2015-08-10 12:32:23 +01:00
Alex Ashley 7d7e54ce68 qtdemux: add support for ISOBMFF Common Encryption
This commit adds support for ISOBMFF Common Encryption (cenc), as
defined in ISO/IEC 23001-7. It uses a GstProtection event to
pass the contents of PSSH boxes to downstream decryptor elements
and attached GstProtectionMeta to each sample.

https://bugzilla.gnome.org/show_bug.cgi?id=705991
2015-08-10 12:32:17 +01:00
Hyunjun Ko 9c5c16eb57 rtph264depay: checking if depay has sps/pps nals before insertion
https://bugzilla.gnome.org/show_bug.cgi?id=753430
2015-08-10 10:49:02 +02:00
Tim-Philipp Müller a95c761fde matroskamux: fix outdated comment
The default behaviour was changed in the 0.10 -> 1.x
transition, but the comment was not updated.
2015-08-08 16:44:49 +01:00
Sebastian Dröge c8551b6285 rtptheorapay: If flushing a packet failed, go out of the loop immediately 2015-08-08 17:43:03 +02:00
Sebastian Dröge 4957cc7459 rtpvorbispay: If flushing a packet failed, go out of the loop immediately 2015-08-08 17:43:03 +02:00
Sebastian Dröge 983f57dc7d rtptheorapay: Extract pixel format from the ident header to put it into the sampling field of the caps
We always put 4:2:0 into the caps before, which obviously is wrong for 4:2:2
and 4:4:4 formats.
2015-08-08 17:43:03 +02:00
George Kiagiadakis 2e590a32eb rtpklv(de)pay: add "RTP" in the klass string
GstRTSPMedia uses this classification to detect the real payloader
inside a dynpay bin and asserts if it doesn't find it, therefore
it is required

https://bugzilla.gnome.org/show_bug.cgi?id=753325
2015-08-07 10:15:05 +02:00
Hyunjun Ko b0d6020862 rtprtxsend: print valid type where guint32 is expected
https://bugzilla.gnome.org/show_bug.cgi?id=746445
2015-08-06 01:39:43 -03:00
Hyunjun Ko 5a17572119 rtppayload: set standard payload type as default
Initialize the PT to the default value of the codec and check if
it is still the default before declaring the pt to be dynamic or
not when setting the caps.

Also use the PT constants from the rtp lib when possible

https://bugzilla.gnome.org/show_bug.cgi?id=747965
2015-08-06 01:38:43 -03:00
Thiago Santos e0878d6325 qtdemux: store the moof-offset also for push mode
It will be used in some cases for getting the correct offsets
from trun atoms.

https://bugzilla.gnome.org/show_bug.cgi?id=752603
2015-08-05 18:12:45 -03:00
Thiago Santos bb336840c0 qtdemux: handle default-base-is-moof flag
Handle the flag from the tfhd that signals the base offset to
start from the moof atom

https://bugzilla.gnome.org/show_bug.cgi?id=752603
2015-08-05 18:12:45 -03:00