Commit graph

16810 commits

Author SHA1 Message Date
Mark Nauwelaerts
949902f1e2 qtmux: correctly calculate overall first_ts to ensure stream sync
... by minding and compensating for the dts_adjustment that may have
been introduced in the PTS timeline.
2017-06-24 17:36:54 +02:00
Mark Nauwelaerts
04fd953713 matroskademux: track highest known cluster position and time
... to use as a fallback initial duration estimate and to provide for
interpolation when scanning for position.
2017-06-24 17:36:54 +02:00
Mark Nauwelaerts
84c6aaf45b matroskademux: improve and simplify searching for cluster and position
... avoiding inefficiency proportional to file size
2017-06-24 17:36:54 +02:00
Mark Nauwelaerts
d7b736fa11 matroskademux: increase chunk size when scanning for cluster 2017-06-24 17:36:54 +02:00
Mark Nauwelaerts
b19ef0df30 matroskademux: maintain variable state when searching for position
... so skipping to next cluster happens efficiently
2017-06-24 17:36:54 +02:00
Tim-Philipp Müller
6a6f7fc48f meson: build raw1394 plugin
https://bugzilla.gnome.org/show_bug.cgi?id=784134
2017-06-24 00:21:00 +01:00
Tim-Philipp Müller
dd13973c6b meson: build aalib plugin
https://bugzilla.gnome.org/show_bug.cgi?id=784134
2017-06-23 23:50:00 +01:00
Tim-Philipp Müller
173d99e7e2 meson: build caca plugin
https://bugzilla.gnome.org/show_bug.cgi?id=784134
2017-06-23 23:38:27 +01:00
Tim-Philipp Müller
5dcf2def4e docs: update for git master 2017-06-23 20:02:50 +01:00
Tim-Philipp Müller
dd23afb6d4 sys: remove sunaudio plugin
Even though hooked up to the build system, it's clear that no one
has ever built or used this with GStreamer 1.x. It wants to link
against libgstinterfaces, which no longer exists. And uses 0.10-style
raw audio caps. And the last meaningful change was done in 2009.
Let's just remove it.
2017-06-23 20:02:43 +01:00
Tim-Philipp Müller
2271fee77e meson: build oss4 plugin
https://bugzilla.gnome.org/show_bug.cgi?id=784134
2017-06-23 19:36:03 +01:00
Tim-Philipp Müller
1fa24b0be3 meson: build oss plugin
https://bugzilla.gnome.org/show_bug.cgi?id=784134
2017-06-23 19:34:16 +01:00
Sebastian Dröge
c438545dc9 rtspsrc: Actually use the receive lock when receiving, not the send lock 2017-06-22 11:39:16 +03:00
Thibault Saunier
5ff3106445 flactag: Fix warning with the newly added GstStateChange values
https://bugzilla.gnome.org/show_bug.cgi?id=783798
2017-06-19 15:10:31 -04:00
Mathieu Duponchelle
0da5679c6f rtspsrc: do not checksum the stream id
https://bugzilla.gnome.org/show_bug.cgi?id=783307
2017-06-16 17:30:11 +02:00
Tim-Philipp Müller
3a0fe9c2f5 qtmux: add support for muxing PNG
Demuxer already supported it.
2017-06-15 23:31:24 +01:00
Sebastian Dröge
a722f6e832 rtspsrc: Use a mutex for protecting against concurrent send/receives
We currently send data to the RTSP connection from multiple threads:
whenever a command is to be handled and whenever RTCP is generated. This
can cause data corruption or worse if both happen at the same time.

As such, protect gst_rtsp_connection_send() and gst_rtsp_connection_receive()
calls with a mutex. While this means that we hold a mutex during the IO
operation, this is not actually a problem as the IO operation can be
interrupted (gst_rtsp_connection_flush()) at any time and is blocking by
itself anyway.
2017-06-15 15:25:23 +03:00
Sebastian Dröge
deb9c62cd9 qtmux: Un-merge the last two stsc entries after serializing
The last entry will most likely get new samples added to it in "robust"
muxing mode, changing the samples_per_chunk and thus making it wrong to
keep the last two entries merged. It will run into an assertion later
when adding a new sample to the chunk.

Thanks to gdiener@cardinalpeak.com for the analysis of the bug and
proposal for a solution.
2017-06-15 11:50:44 +03:00
Sebastian Dröge
a82e38d607 wavparse: Actually clip to upstream size instead of size of the data chunk
There might be other chunks after the data chunk, so clipping the chunk
size with the data size can lead to a negative number and all following
calculations go wrong and cause crashes or worse.

This was introduced in 3ac119bbe2.

https://bugzilla.gnome.org/show_bug.cgi?id=783760
2017-06-14 00:11:17 +03:00
Vivia Nikolaidou
96cd941788 splitmux: Drop allocation queries
They can cause us to deadlock, while we're waiting for a new frame and
upstream is waiting for the allocation query to be answered before
sending a frame

https://bugzilla.gnome.org/show_bug.cgi?id=783753
2017-06-13 18:29:37 +03:00
Mathieu Duponchelle
f6283b082e rtspsrc: uniquify stream ids
https://bugzilla.gnome.org/show_bug.cgi?id=783307
2017-06-07 23:30:05 +02:00
Thibault Saunier
d3cbea0919 meson: Do not use path separator in test names
Avoiding warnings like:

    WARNING: Target "elements/audioamplify" has a path separator in its name.
2017-06-07 12:47:59 -04:00
Nicolas Dufresne
e937a8856d Fix v4l2 example 2017-06-06 11:30:07 -04:00
Jimmy Ohn
55e0b18186 qtdemux: remove not needed code
remove not needed code about res variable.

https://bugzilla.gnome.org/show_bug.cgi?id=783422
2017-06-06 11:02:59 +02:00
Nicolas Dufresne
b9532fc6fb v4l2videoenc: Make sure min_buffers is valid
When upstream does no use the v4l2videoenc pool, we need to activate
that internal pool. Though, we relied the driver to provide a minimum
required buffer, which Qualcomm Venus driver don't currently provide.

https://bugzilla.gnome.org/show_bug.cgi?id=783361
2017-06-05 10:55:28 -04:00
Tim-Philipp Müller
18b53c2236 rtph265depay: fix caps leak 2017-06-02 11:30:15 +01:00
Tim-Philipp Müller
a68a7fb65d rtph264depay: simplify buffer accumulation control flow
There is no difference between pushing out a buffer directly
with gst_rtp_base_depayload_push() and returning it from the
process function. The base class will just call _depayload_push()
on the returned buffer as well.

So instead of marshalling buffers through three layers and back,
just push them from one place in handle_nal() and always return
NULL from the process vfunc. This simplifies the code a little.

Also rename _push_fragmentation_unit() to _finish_fragmentation_unit()
for clarity. Push sounds like it means being pushed out, whereas
it might just be pushed into an adapter.

This change has the side-effect that multiple NALs in a single STAP
(such as SPS/PPS) may no longer be pushed out as a single buffer if
we output NALs in byte-stream format (i.e. not aggregate AUs), but
that shouldn't really make any difference to anyone.
2017-06-01 17:32:17 +01:00
Juan Navarro
72d2afda18 rtpsession: print value of unknown RTCP Payload Type
This adds printing the actual value of any unknown RTCP PT
to the already existing WARNING log message.

https://bugzilla.gnome.org/show_bug.cgi?id=783248
2017-05-31 10:20:27 +03:00
Edward Hervey
246f21ac2f v4l2videoenc: Don't leak VideoCodecState
CID #1409852
2017-05-26 17:52:19 +02:00
Edward Hervey
efebda5a34 dvdemux: Remove un-needed variable check
if pad wasn't present by now everything would have broken before

CID #1409854
2017-05-26 17:48:01 +02:00
Piotr Drąg
c0cdfe1898 po: update POTFILES
https://bugzilla.gnome.org/show_bug.cgi?id=783093
2017-05-25 14:39:11 +01:00
Nicolas Dufresne
85218c69b9 v4l2videoenc: Remove unused function 2017-05-24 14:19:27 -04:00
Nicolas Dufresne
9f936c9244 v4l2: Don't redefine __bitwise if already set
https://bugzilla.gnome.org/show_bug.cgi?id=728438
2017-05-24 14:00:22 -04:00
Ayaka
27310365d5 v4l2: Add Video Encoder support
This implements H264 encoding support using generic V4L2 interface. It is
reported to work with Samsung MFC driver, IXM.6 CODA driver and
Qualcomm mainline Venus driver. Other platform should be supported as
none of this work is platform specific.

The implementation consist of a GstV4l2VideoEnc base class, which
implements the core streaming functionality. This base class is implemented
by GstV4l2H264Enc class that implements the caps negotiation specific to
H264 profiles and level. This implementation supports hardware with multiple
H264 encoder. Though, to make it simplier to use, the first discovered H264
encoder will be named v4l2h264enc. Other encoder found during discovery will
have a unique name like v4l2video0h264enc.

This work is the combined work of multiple developpers in the last 3
years. Thanks to all of the contributors:

  Ayaka <ayaka@soulik.info>
  Frédéric Sureau <frederic.sureau@vodalys.com>
  Jean-Michel Hautbois <jean-michel.hautbois@veo-labs.com>
  Nicolas Dufresne <nicolas.dufresne@collabora.com>
  Pablo Anton <pablo.anton@vodalys-labs.com>

https://bugzilla.gnome.org/show_bug.cgi?id=728438
2017-05-24 14:00:22 -04:00
Nicolas Dufresne
7dc57e381b v4l2videodec: Remove unused forward declaration
https://bugzilla.gnome.org/show_bug.cgi?id=728438
2017-05-24 14:00:22 -04:00
Ayaka
17e52f6ac2 v4l2pool: Fix wrong error message
https://bugzilla.gnome.org/show_bug.cgi?id=728438
2017-05-24 14:00:22 -04:00
Ayaka
342de49bf6 v4l2: increase pre-allocated encoded buffer size
As of today, the MFC encoder often need to exceed that 1 MB
size for encoded buffer we fixed earlier for decoding.

https://bugzilla.gnome.org/show_bug.cgi?id=728438
2017-05-24 14:00:22 -04:00
Tim-Philipp Müller
a9f9166004 rtpopusdepay: minor perf improvements
Use the ::process_rtp_packet() vfunc to avoid mapping the
RTP buffer twice.

gst_rtp_buffer_get_payload_buffer() returns a new sub-buffer
which will always be writable, so no need to make it writable.
2017-05-24 16:41:45 +01:00
Tim-Philipp Müller
f9a740b319 rtp: opus: use existing utility funcs for copying/dropping metas
We had our own copies of those while the code was in -bad, but now
we can use the existing utility functions instead of re-implementing
them.
2017-05-24 16:18:01 +01:00
Tim-Philipp Müller
4a28e649c3 rtp: cache meta tag quarks and add more utility functions for metas
Every g_quark_from_static_string() is a hash table lookup serialised
on the global quark lock in GLib. Let's just look up the two quarks
we need once and cache them locally for future use. While we're at it,
add new utility functions for the two most commonly used tags
(audio + video). Make first argument a gpointer so we don't have to
cast and make the code ugly. These are used for logging purposes
only anyway.
2017-05-24 13:32:10 +01:00
vijay
810c0bb084 aacparse : Fix, Caps were not set while reusing aacparse
While reusing aacparse caps were not set.This fix enables aacparse to reuse in same pipeline.

https://bugzilla.gnome.org/show_bug.cgi?id=783027
2017-05-24 13:59:52 +02:00
Tim-Philipp Müller
f13f3584ac meson: don't need config.h.meson any longer 2017-05-21 17:45:34 +01:00
George Kiagiadakis
b26d44501c shout2send: use non-blocking I/O and a configurable network operations timeout
This allows timing out on network errors much earlier
(currently it takes ~15min to timeout) and we can still
unlock and change state in the meantime.

https://bugzilla.gnome.org/show_bug.cgi?id=571722
2017-05-21 16:30:04 +03:00
Tim-Philipp Müller
34d08a0169 meson: make C++ compiler optional
It's only needed for the taglib plugin which is optional.
2017-05-21 10:37:19 +01:00
Tim-Philipp Müller
e67a5a9f18 multifile: remove some cruft 2017-05-21 10:33:43 +01:00
Josep Torra
d699dc615e osxaudio: fixes playback of mono streams with no channel-mask field in caps
Fixes a negotiation error seen when trying to playback of a .MOV file with
a mono AAC audio stream decoded by avcdec_aac that doesn't set channel-mask
field but sink was requiring channel-mask=0x3.
2017-05-20 18:33:42 +02:00
Ravi Kiran K N
de3e54690b dvdemux: Push tag event to both pads
Tags are pushed to "videosrcpad"/"audiosrcpad" in
gst_dvdemux_add_pad() method, however they will be NULL
in this method, hence tags are not pushed.
Instead, send tag event to "pad" created gst_dvdemux_add_pad().

Signal no-more-pads when both pads are created

https://bugzilla.gnome.org/show_bug.cgi?id=743657
2017-05-20 16:01:34 +01:00
Tim-Philipp Müller
c35292505b meson: add options to set package name and origin
https://bugzilla.gnome.org/show_bug.cgi?id=782172
2017-05-20 14:53:42 +01:00
Luis de Bethencourt
fb00a357cd multifilesink: fix property name in example pipeline
Since the move from CVS the property name of the documentation example
has been filename instead of location. Users trying the gst-launch
command as is will get:
no property name "filename" in element

Fixing it.
2017-05-20 11:51:33 +01:00
Josep Torra
7348ed5faa osxvideo: fix macOS 10.12 deprecation warnings
Add #defines to allow older versions of macOS to use the new constant names.
2017-05-20 11:37:27 +02:00