Commit graph

2630 commits

Author SHA1 Message Date
Vincent Penquerc'h
9121131f31 opusdec: fix 120 ms buffers being wrongly emitted
Using the max 120 ms buffer size to ensure we have enough space
for decoded data meant that Opus could actually return 120 ms'
worth of data.

https://bugzilla.gnome.org/show_bug.cgi?id=771723
2016-11-04 16:59:26 +00:00
Vincent Penquerc'h
b0866b9cc1 opusdec: interpret zero duration as unknown
This fixes missing audio when we get buffers with zero
duration, denoting unknown duration. When several such
buffers are received in a row, they're all at the same
timestamp, with zero duration.

https://bugzilla.gnome.org/show_bug.cgi?id=771723
2016-11-01 19:58:42 +02:00
Vincent Penquerc'h
a6ced9cbc8 opusdec: fix "buffer too small" error
Always supply a buffer with max size to the decoder, as we
can't really decide how many samples will be in the lost packet
based on the timestamps we get.

https://bugzilla.gnome.org/show_bug.cgi?id=771723
2016-11-01 19:58:42 +02:00
Nicolas Dufresne
7a40442ad5 video: Add VYUY pixel format
This format is sometimes the output of JPEG decoders. It is the same as
YUY2 and UYVY but with a different component order.

https://bugzilla.gnome.org/show_bug.cgi?id=767450
2016-11-01 19:55:20 +02:00
Vincent Penquerc'h
667931e52a vorbisenc: correct codebooks packet identifier from 3 to 5
https://bugzilla.gnome.org/show_bug.cgi?id=768763
2016-10-07 12:54:12 +01:00
Vincent Penquerc'h
9599c3416c opusenc: remove segment stop modification on eos
https://bugzilla.gnome.org/show_bug.cgi?id=768763
2016-10-05 14:49:52 +01:00
Vincent Penquerc'h
a30c713e43 oggmux: take audio clip meta into account for buffer duration
https://bugzilla.gnome.org/show_bug.cgi?id=768763
2016-10-05 14:49:52 +01:00
Vincent Penquerc'h
1a4ba79044 vorbisenc: strip after-eos samples from the end of the eos buffer
https://bugzilla.gnome.org/show_bug.cgi?id=768763
2016-10-05 14:49:52 +01:00
Vincent Penquerc'h
31438ef49b oggdemux: safety for failing to determine time length in push mode
If we can't find a valid granule near the end of the file, we
disable seeking. This guards against the whole file being then
read and never going to PLAYING.

https://bugzilla.gnome.org/show_bug.cgi?id=770314
2016-09-05 11:42:44 +01:00
Vincent Penquerc'h
6f856cb54d oggdemux: increase EOS granpos detection chunk size
This can be too small on some files to find a valid granule.

https://bugzilla.gnome.org/show_bug.cgi?id=770314
2016-09-05 11:41:43 +01:00
Thibault Saunier
bc6aae6ca7 Use the new API to post flow ERROR messages on the bus
https://bugzilla.gnome.org/show_bug.cgi?id=770158
2016-08-26 19:23:24 -03:00
Nirbheek Chauhan
5c4f4ac1bd Add support for Meson as alternative/parallel build system
https://github.com/mesonbuild/meson

With contributions from:

Tim-Philipp Müller <tim@centricular.com>
Jussi Pakkanen <jpakkane@gmail.com> (original port)

Highlights of the features provided are:
* Faster builds on Linux (~40-50% faster)
* The ability to build with MSVC on Windows
* Generate Visual Studio project files
* Generate XCode project files
* Much faster builds on Windows (on-par with Linux)
* Seriously fast configure and building on embedded

... and many more. For more details see:

http://blog.nirbheek.in/2016/05/gstreamer-and-meson-new-hope.html
http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html

Building with Meson should work on both Linux and Windows, but may
need a few more tweaks on other operating systems.
2016-08-20 11:09:51 +01:00
Vincent Penquerc'h
273d35ce20 oggdemux: remove eos avoidance workaround
This workaround tried to avoid an EOS event when seeking to the
end of an Ogg stream in order to find its duration. At some point,
an EOS event there would cause any queue2 upstream to pause and
not restart on a seek back to the beginning. This now appears to
not be the case anymore, and so the workaround can be removed.

https://bugzilla.gnome.org/show_bug.cgi?id=767689
2016-08-05 07:50:35 +02:00
Vivia Nikolaidou
a993dd40b6 timeoverlay: Add support to display timecode
Choosing time-mode=time-code will display the time code attached to the
buffer, or 00:00:00:00 if no time code is found.

https://bugzilla.gnome.org/show_bug.cgi?id=766419
2016-08-04 18:59:57 +03:00
Luis de Bethencourt
7ae577dc3a ogg: check return values in gst_ogg_parse_new_stream
Return NULL in gst_ogg_parse_new_stream when either ogg_stream_pagein() or
gst_ogg_stream_setup_map() failed.

https://bugzilla.gnome.org/show_bug.cgi?id=769299
2016-08-03 17:12:55 +01:00
Luis de Bethencourt
5cab723651 ogg: fix memory leak in gst_ogg_parse_new_stream
Avoid leaking the stream object

https://bugzilla.gnome.org/show_bug.cgi?id=769299
2016-08-03 17:12:43 +01:00
Arun Raghavan
6c84f4e743 Revert "vorbisenc: push an updated segment stop time when we know it"
This reverts commit a16cd5d2a5.

Setting the stop time on the segment breaks reconfiguration, as the
encoder signals an EOS, but we reconfigure it an continue to produce
buffers.

This information  should not be required via the segment downstream
since we already have the sample count being used to generate buffer
durations.

https://bugzilla.gnome.org/show_bug.cgi?id=768763
2016-07-21 15:26:21 +05:30
Vincent Penquerc'h
714e3b9741 oggdemux: fix unknown duration playing Ogg over HTTP
If the duration is not known from the chain, it might be known
by the startup seek.

This fixes failure to seek.

Merged with a patch from Tim-Philipp Müller <tim@centricular.com>

https://bugzilla.gnome.org/show_bug.cgi?id=768991
2016-07-21 10:40:07 +01:00
Jan Schmidt
614ddaa739 alsasink: Remove unused hwparam/swparam pointers
The ALSA params structures aren't kept. The pointers
aren't used anywhere, so remove them from the struct.
2016-07-15 22:51:35 +10:00
Vincent Penquerc'h
528f030eff oggdemux: demote an expected error to debug
Dropping a buffer because we have a seek pending is normal,
and will now happen when we trigger a seek while going through
the packets in a page. So this should not be an error.
2016-06-23 10:24:55 +01:00
Vincent Penquerc'h
6bc6b6ebbf opusdec: handle missing buffers with no duration
If buffer duration is missing, it is parsed from the packet data.
This is not foolproof, since Opus can change durations on the
fly.

https://bugzilla.gnome.org/show_bug.cgi?id=767826
2016-06-21 10:48:40 +01:00
Vincent Penquerc'h
2ac5bd293b oggdemux: fix audio glitches with low bitrate vorbis
A low bitrate stream which can pack more than 2 seconds of audio
in a page would cause the stream's position to be updated not
often enough, and would trigger a spurious "jump" via a GAP
event. Instead, we update the stream position after calculating
the new overall segment position.

https://bugzilla.gnome.org/show_bug.cgi?id=764966
2016-06-16 11:10:08 +01:00
Guillaume Desmottes
afdb7d3f32 opusenc, subtitleoverlay: use MAY_BE_LEAKED flag
Flag caps that are cached locally and will never be freed.

https://bugzilla.gnome.org/show_bug.cgi?id=767155
2016-06-02 13:11:11 +01:00
Tim-Philipp Müller
eb9750d96e textoverlay: enable shaded background drawing for new IYU2 format 2016-06-01 12:36:38 +01:00
Nirbheek Chauhan
ba9bf26f4b libvisual: Factor out endian-order RGB formats
MSVC seems to ignore preprocessor conditionals inside static
pad templates. Also remove unnecessary quotes inside caps strings.
2016-05-24 19:49:38 +01:00
Tim-Philipp Müller
108c7d6b3c opus: use default error messages in some more cases 2016-05-23 19:28:39 +01:00
Tim-Philipp Müller
c056b99f94 opusdec: use default error message strings in more cases
Details should go into the debug message. We should probably
make up new codes for encoder/decoder lib init failures too.
2016-05-23 15:36:47 +01:00
Olivier Crête
0bfed26f56 opus: Post error message on GST_FLOW_ERROR
https://bugzilla.gnome.org/show_bug.cgi?id=766265
2016-05-19 12:27:57 -04:00
Olivier Crête
1a700c3ae6 opusdec: Use GST_AUDIO_DECODER_ERROR
This way, the first invalid stream won't break all decoding.

https://bugzilla.gnome.org/show_bug.cgi?id=766265
2016-05-18 15:25:38 -04:00
Edward Hervey
98c9eb9858 oggdemux: Reset keyframe_granule when needed
This avoids ending up with bogus values when doing flushing seeks
in push-mode.

https://bugzilla.gnome.org/show_bug.cgi?id=766467
2016-05-15 14:39:25 +02:00
Thiago Santos
60c765174f opusdec: intersect with the filter before returning on getcaps
So upstream gets a smaller set to decide upon as it is what it requested
with the filter

https://bugzilla.gnome.org/show_bug.cgi?id=765684
2016-05-02 14:29:25 -03:00
Thiago Santos
7a5797d3a6 opusdec: improve getcaps to return all possible rates
The library is capable of converting to different rates.

Includes tests.

https://bugzilla.gnome.org/show_bug.cgi?id=765684
2016-05-02 14:29:25 -03:00
Thiago Santos
823832e293 opusdec: remove artificial restriction on rate negotiation
Remove restrictions when rate is 48000, the underlying lib supports
converting any of the input to any of the output rates.

https://bugzilla.gnome.org/show_bug.cgi?id=765684
2016-05-02 14:29:25 -03:00
Thiago Santos
b1153e0f7d opusdec: refactor getcaps repeated code into a function
Easier to read and maintain
2016-05-02 14:23:54 -03:00
Guillaume Desmottes
8d6e315b01 opusdec: fix caps leaks
The caps returned by gst_pad_get_allowed_caps() was leaked.

https://bugzilla.gnome.org/show_bug.cgi?id=765706
2016-04-28 09:18:53 +01:00
Guillaume Desmottes
6e7fa6659f alsa: properly convert position-less channels from ALSA
The only way for ALSA to expose a position-less multi channels is to
return an array full of SND_CHMAP_MONO. Converting this to a
GST_AUDIO_CHANNEL_POSITION_MONO array would be invalid as
GST_AUDIO_CHANNEL_POSITION_MONO is meant to be used only with one
channel.

Fix this by using GST_AUDIO_CHANNEL_POSITION_NONE which is meant to be
used for position-less channels.

https://bugzilla.gnome.org/show_bug.cgi?id=763799
2016-04-12 14:48:30 -04:00
Guillaume Desmottes
eef7312169 alsa: add some debugging output to alsa_detect_channels_mapping()
https://bugzilla.gnome.org/show_bug.cgi?id=763985
2016-04-12 14:48:30 -04:00
Guillaume Desmottes
d9268a50f1 alsa: factor out alsa_detect_channels_mapping()
This code was duplicated in alsasrc and alsasink.

https://bugzilla.gnome.org/show_bug.cgi?id=763985
2016-04-12 14:34:13 -04:00
Guillaume Desmottes
592b87a463 alsa: coding style fix
Was using tabs instead of spaces.

https://bugzilla.gnome.org/show_bug.cgi?id=763985
2016-04-12 14:34:13 -04:00
Vineeth TM
44b70ca3a1 base: use new gst_element_class_add_static_pad_template()
https://bugzilla.gnome.org/show_bug.cgi?id=763075
2016-03-24 14:25:41 +02:00
Lubosz Sarnecki
8a443784c4 basetextoverlay: Add new properties and alignment type for unclamped absolute positions
Introduces [x-absolute, y-absolute] properties
for positioning in +/- MAX_DOUBLE range.

Adds new (h/v)alignment type "absolute" where coordinates
map the text area to be exactly inside of video canvas for [0, 0] - [1, 1]:

[0, 0]: Top-Lefts of video and text are aligned
[0.5, 0.5]: Centers are aligned
[1, 1]: Bottom-Rights are aligned

https://bugzilla.gnome.org/show_bug.cgi?id=761251
2016-03-11 13:20:26 +00:00
Tim-Philipp Müller
241fcaa645 Revert "textoverlay: Do not limit positioning to video area."
This reverts commit a48daf6dd8.

This changed behaviour in a way that's not always
backwards-compatible.

https://bugzilla.gnome.org/show_bug.cgi?id=761251
2016-03-11 13:15:53 +00:00
Tim-Philipp Müller
aade5515ac theora: fix performance category initialisation
Remove unused _register() functions and look up the performance
debug category in a function that's actually called at some point.
2016-03-09 09:56:52 +00:00
Vincent Penquerc'h
603e2fe24a oggdemux: fix chaining causing running time to restart from 0
This fixes:
gst-play-1.0 http://relay-nyc.gameowls.com:8000/chiptune.ogg

https://bugzilla.gnome.org/show_bug.cgi?id=758282
2016-03-04 12:18:53 +00:00
Havard Graff
461cdd8c26 opusdec: plug caps leak
https://bugzilla.gnome.org/show_bug.cgi?id=763059
2016-03-03 20:10:09 +00:00
Vincent Penquerc'h
625bd68da7 opus: fix mono<->stereo up/down-mixing
https://bugzilla.gnome.org/show_bug.cgi?id=761588
2016-02-26 16:15:20 +00:00
Tim-Philipp Müller
8b48fc1569 opusenc: remove deprecated "cbr", "audio", and "constrained-vbr" properties
They have been replaced by "audio-type" and "bitrate-type".

https://bugzilla.gnome.org/show_bug.cgi?id=756282
2016-02-26 06:51:17 +00:00
Tim-Philipp Müller
f331412a37 opus: move Opus audio decoder and encoder from -bad to -base
Hook into build system after moving history.

https://bugzilla.gnome.org/show_bug.cgi?id=756282
2016-02-26 00:20:10 +00:00
Tim-Philipp Müller
a2eb430010 Merge branch 'plugin-move-opus'
Move Opus decoder and encoder from -bad to -base.

https://bugzilla.gnome.org/show_bug.cgi?id=756282
2016-02-25 23:51:42 +00:00
Tim-Philipp Müller
a62c7bd54c Fix use of undeclared core debug category symbols
libgstreamer currently exports some debug category
symbols GST_CAT_*, but those are not declared in any
public headers.

Some plugins and libgstvideo just use GST_DEBUG_CATEGORY_EXTERN()
to declare and use those, but that's just not right at
all, and it won't work on Windows with MSVC. Instead look
up the categories via the API.
2016-02-20 11:31:43 +00:00