Tim-Philipp Müller [Fri, 22 Jul 2016 13:42:31 +0000 (14:42 +0100)]
docs: urisourcebin: fix typo
Jan Schmidt [Fri, 22 Jul 2016 13:21:36 +0000 (23:21 +1000)]
playback: Flesh out docs a bit for new elements
Add some more text to the docs for urisourcebin,
parsebin, decodebin3 and playbin3, including a warning
that they are unstable API for now
Tim-Philipp Müller [Fri, 22 Jul 2016 11:52:12 +0000 (12:52 +0100)]
docs: add playbin3, decodebin3, parsebin, urisourcebin to docs
Docs still need some fleshing out though.
Arun Raghavan [Wed, 13 Jul 2016 09:29:52 +0000 (18:29 +0900)]
Revert "vorbisenc: push an updated segment stop time when we know it"
This reverts commit
a16cd5d2a5cbdf084163ead68b59d537d7db99f7.
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
Vincent Penquerc'h [Wed, 20 Jul 2016 10:47:48 +0000 (11:47 +0100)]
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
Michael Olbrich [Wed, 20 Jul 2016 10:17:57 +0000 (12:17 +0200)]
audioclock: use GST_STIME_FORMAT for the correct argument
GST_STIME_ARGS is used for time_offset not for last_time.
This fixes the format string accordingly.
https://bugzilla.gnome.org/show_bug.cgi?id=768990
Wim Taymans [Tue, 19 Jul 2016 16:20:57 +0000 (18:20 +0200)]
audioresample: after a reset, recalculate the ouput size
After we reset the resampler, there is no history anymore in the resampler
and the previously calculated output size is no longer valid.
Recalculate the new output size after a reset to make sure we don't try
to convert too much.
Tim-Philipp Müller [Tue, 19 Jul 2016 12:26:06 +0000 (13:26 +0100)]
subparse: fix some leaks
Fixes check-valgrind for subparse test.
Tim-Philipp Müller [Mon, 18 Jul 2016 16:26:26 +0000 (17:26 +0100)]
tests: appsink: add minimal test for new pull with timeout functions
https://bugzilla.gnome.org/show_bug.cgi?id=768852
Joan Pau Beltran [Fri, 15 Jul 2016 11:20:29 +0000 (13:20 +0200)]
appsink: add _pull_sample/preroll() variants with timeout
The _pull_sample() and _pull_preroll() functions block
until a sample is available, EOS happens or the pipeline
is shut down (returning NULL in the last two cases).
This adds _try_pull_sample() and _try_pull_preroll()
functions with a timeout argument to specify the maximum
amount of time to wait for a new sample.
To avoid code duplication, wait forever if the timeout is
GST_CLOCK_TIME_NONE and use that to implement
_pull_sample/_pull_preroll with the original behavior.
Add also corresponding action signals "try-pull-sample"
and "try-pull-preroll".
https://bugzilla.gnome.org/show_bug.cgi?id=768852
Guillaume Desmottes [Wed, 13 Jul 2016 12:17:25 +0000 (14:17 +0200)]
decodebin3: actually check result of accept caps query
We were just checking if the query was handled, not its result.
Also fix a leak as gst_pad_query() was not consuming the query.
https://bugzilla.gnome.org/show_bug.cgi?id=768811
Tim-Philipp Müller [Mon, 18 Jul 2016 13:20:11 +0000 (14:20 +0100)]
xvimagesink: only error out if the allocated memory is too small
https://bugzilla.gnome.org/show_bug.cgi?id=767712
Duncan Palmer [Mon, 18 Jul 2016 09:59:23 +0000 (19:59 +1000)]
xvimageallocator: const correctness in gst_xvimage_allocator_alloc().
https://bugzilla.gnome.org/show_bug.cgi?id=767712
Duncan Palmer [Thu, 7 Jul 2016 12:27:15 +0000 (22:27 +1000)]
xvimagesink: error out on buffer size sanity check failure.
If sanity checks on the buffer size allocated by XvShmCreateImage() fail,
call on g_set_error(), rather than just logging a warning, as this
failure is fatal.
Add a sanity check on buffer size when the video format is RGB. This adds to
existing checks on various YUV pixel formats.
https://bugzilla.gnome.org/show_bug.cgi?id=767712
Guillaume Desmottes [Thu, 14 Jul 2016 08:33:38 +0000 (10:33 +0200)]
playbin3: fix stream leak
The stream returned by gst_message_streams_selected_get_stream() is
reffed.
https://bugzilla.gnome.org/show_bug.cgi?id=768811
Guillaume Desmottes [Wed, 13 Jul 2016 14:16:21 +0000 (16:16 +0200)]
decodebin3: fix collection leak
The collection owned by GstDecodebin3 has to be unreffed when disposing.
gst_event_new_stream_collection() doesn't consume the collection passed
to it so no need to give it an extra ref.
https://bugzilla.gnome.org/show_bug.cgi?id=768811
Guillaume Desmottes [Thu, 14 Jul 2016 08:34:30 +0000 (10:34 +0200)]
decodebin3: fix stream leaks
MultiQueueSlot owns a ref on the active stream so it should release it
when being freed.
DecodebinInputStream owns ref on the active and pending stream so they
should be dropped when being freed.
https://bugzilla.gnome.org/show_bug.cgi?id=768811
Guillaume Desmottes [Thu, 14 Jul 2016 12:24:23 +0000 (14:24 +0200)]
decodebin3: fix event leaks
Returning GST_PAD_PROBE_HANDLED means we are taking care of unreffing
the probe info.
https://bugzilla.gnome.org/show_bug.cgi?id=768811
Guillaume Desmottes [Thu, 14 Jul 2016 14:29:39 +0000 (16:29 +0200)]
decodebin3: fix caps leaks
gst_stream_get_caps() returns a reffed caps.
The caps passed to gst_query_set_caps_result() are not transfered.
The caps in gst_parse_pad_stream_start_event() was either acquired
using gst_pad_get_current_caps() which returns a new ref or
explicitly reffed.
https://bugzilla.gnome.org/show_bug.cgi?id=768811
Tim-Philipp Müller [Fri, 15 Jul 2016 18:48:02 +0000 (19:48 +0100)]
rtp: rtpbasedepayload: simplify code
Remove unnecessary helper struct for callbacks. The bclass
member of the helper struct was not used, so we can just
remove it and the GET_CLASS() call and simplify the whole
affair by passing the depayloader directly to the callback.
Guillaume Desmottes [Wed, 13 Jul 2016 14:02:25 +0000 (16:02 +0200)]
playbin3: fix leaks of collection returned by message parse API
gst_message_parse_stream_collection() and
gst_message_parse_streams_selected() actually return a reffed
GstStreamCollection.
https://bugzilla.gnome.org/show_bug.cgi?id=768776
Jan Schmidt [Fri, 15 Jul 2016 12:47:02 +0000 (22:47 +1000)]
gst-play: Allow disabling audio/video/subtitle tracks
When cycling through tracks, add 'disable' to the set
of states.
Jan Schmidt [Fri, 24 Jun 2016 02:25:30 +0000 (12:25 +1000)]
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.
Guillaume Desmottes [Wed, 13 Jul 2016 13:45:33 +0000 (15:45 +0200)]
tools: fix device leaks in gst-device-monitor
gst_message_parse_device_{added,removed} is actually returning a new ref
on the device.
https://bugzilla.gnome.org/show_bug.cgi?id=768776
Guillaume Desmottes [Tue, 12 Jul 2016 10:03:53 +0000 (12:03 +0200)]
videoscale: fix bus leak in test
gst_bus_add_signal_watch() takes a ref on the bus which should be
released using gst_bus_remove_signal_watch().
https://bugzilla.gnome.org/show_bug.cgi?id=768718
Xabier Rodriguez Calvar [Mon, 11 Jul 2016 17:17:41 +0000 (19:17 +0200)]
videoorientation: Use G_DEFINE_INTERFACE instead of a manually written get_type()
https://bugzilla.gnome.org/show_bug.cgi?id=768687
Sebastian Dröge [Mon, 11 Jul 2016 21:13:32 +0000 (00:13 +0300)]
video: Fix some compiler warnings for out-of-range enum values
https://bugzilla.gnome.org/show_bug.cgi?id=767816
Stefan Sauer [Mon, 11 Jul 2016 19:13:37 +0000 (21:13 +0200)]
Automatic update of common submodule
From f363b32 to f49c55e
Seungha Yang [Sun, 10 Jul 2016 01:28:44 +0000 (10:28 +0900)]
appsrc: Remove trailing whitespace
https://bugzilla.gnome.org/show_bug.cgi?id=768510
Sebastian Dröge [Fri, 8 Jul 2016 13:43:05 +0000 (16:43 +0300)]
encoding-profile: Remove some more fields from the caps when creating from discoverer info
parsed, framed, stream-format and alignment are only relevant for parsers and
should not matter here. We still want to be able to use an encoder that can
only output byte-stream if the input was avc.
https://bugzilla.gnome.org/show_bug.cgi?id=768566
Sebastian Dröge [Fri, 8 Jul 2016 12:45:25 +0000 (15:45 +0300)]
missing-plugins: Remove some other fields when cleaning up caps
Caps are cleaned up for missing plugins, and for creating encoding profiles
and caps descriptions.
Fields like streamheader, parsed, framed, stream-format and alignment are not
relevant here. The last ones all because a parser will take care of them.
https://bugzilla.gnome.org/show_bug.cgi?id=768566
Sebastian Dröge [Fri, 8 Jul 2016 12:44:26 +0000 (15:44 +0300)]
pbutils: Mark private functions as G_GNUC_INTERNAL
Víctor Manuel Jáquez Leal [Thu, 7 Jul 2016 15:37:51 +0000 (17:37 +0200)]
subparse: don't reset allowed tags
When a discont buffer is processed, the state is re-initialized, which
nullifies the allowed_tags.
The problem is when a subrip string with tags is processed and allowed_tags is
NULL. The function subrip_unescape_formatting() calls g_strjoinv with a
str_array as NULL, leading to a GLib-CRITICAL.
This patch removes the allowed_tags resetting, in parser_state_init(), but
move it into gst_sub_parse_format_autodetect().
https://bugzilla.gnome.org/show_bug.cgi?id=768525
Sergio Torres Soldado [Mon, 4 Jul 2016 16:19:08 +0000 (17:19 +0100)]
rtspconnection: Fix potential deadlock caused by blocking read forever
Reset the connection "may_cancel" property to avoid a potential deadlock
if there is no data to read and the socket stays blocked forever.
https://bugzilla.gnome.org/show_bug.cgi?id=768249
Wim Taymans [Thu, 7 Jul 2016 15:29:34 +0000 (17:29 +0200)]
video-converter: fix compilation on big-endian
Edward Hervey [Thu, 7 Jul 2016 15:10:17 +0000 (17:10 +0200)]
videodecoder: More trickmode fix
We need to take into account the input segment flags to know whether
we should drain the decoder after a new keyframe in trick mode.
Otherwise we would have to wait for the next frame to be outputted (and
the segment to be activated) which ... well ... kind of beats the whole
point of this draining :)
Piotr Drąg [Wed, 6 Jul 2016 19:13:19 +0000 (21:13 +0200)]
po: update POTFILES
https://bugzilla.gnome.org/show_bug.cgi?id=768495
Sebastian Dröge [Wed, 6 Jul 2016 21:27:00 +0000 (00:27 +0300)]
audio: Ship audio-resampler-neon.h
Thijs Vermeir [Wed, 6 Jul 2016 14:14:32 +0000 (16:14 +0200)]
tests: correctly print guintptr on mac
Sebastian Dröge [Wed, 6 Jul 2016 10:51:00 +0000 (13:51 +0300)]
Back to development
Sebastian Dröge [Wed, 6 Jul 2016 10:06:06 +0000 (13:06 +0300)]
Release 1.9.1
Sebastian Dröge [Wed, 6 Jul 2016 08:42:29 +0000 (11:42 +0300)]
Update .po files
Sebastian Dröge [Wed, 6 Jul 2016 07:18:00 +0000 (10:18 +0300)]
po: Update translations
Philippe Normand [Thu, 30 Jun 2016 14:36:27 +0000 (16:36 +0200)]
videodecoder: Take stream lock one time only on drain
When the drain is triggered from the chain function the lock is already
taken so there is no need to take it one more time.
https://bugzilla.gnome.org/show_bug.cgi?id=767641
Sebastian Dröge [Mon, 4 Jul 2016 09:16:55 +0000 (11:16 +0200)]
videodecoder: fix criticals fixating a non existent field
https://bugzilla.gnome.org/show_bug.cgi?id=766970
Sebastian Dröge [Mon, 4 Jul 2016 09:12:25 +0000 (11:12 +0200)]
audiodecoder: Protect samples_in/bytes_out and audio info with object lock
It might cause invalid calculations during the CONVERT query otherwise.
Sebastian Dröge [Mon, 4 Jul 2016 09:07:54 +0000 (11:07 +0200)]
audioencoder: Protect samples_in/bytes_out and audio info with object lock
It might cause invalid calculations during the CONVERT query otherwise.
Sebastian Dröge [Mon, 4 Jul 2016 09:00:51 +0000 (11:00 +0200)]
audioencoder/decoder: Move encoded audio conversion function to a common place
No need to duplicate this non-trivial function.
Vincent Penquerc'h [Mon, 4 Jul 2016 08:15:03 +0000 (09:15 +0100)]
audiodecoder: fix criticals fixating a non existent field
https://bugzilla.gnome.org/show_bug.cgi?id=766970
Sebastian Dröge [Mon, 4 Jul 2016 08:55:07 +0000 (10:55 +0200)]
videodecoder: Use the object lock to protect bytes/time tracking
And especially don't use the stream lock for that, as otherwise non-serialized
queries (CONVERT) will cause the stream lock to be taken and easily causes the
application to deadlock.
https://bugzilla.gnome.org/show_bug.cgi?id=768361
Sebastian Dröge [Mon, 4 Jul 2016 08:52:24 +0000 (10:52 +0200)]
videoencoder: Use the object lock to protect bytes/time tracking
Sebastian Dröge [Mon, 4 Jul 2016 08:47:36 +0000 (10:47 +0200)]
videoencoder/decoder: Move conversion utility functions to a common header and use consistently in encoder/decoder
Sebastian Dröge [Wed, 16 Mar 2016 22:19:18 +0000 (00:19 +0200)]
appsrc: If do-timestamp=TRUE, capture the time when the buffer was pushed to the source
... instead of the time when it was pushed further downstream.
https://bugzilla.gnome.org/show_bug.cgi?id=763630
Zaheer Abbas Merali [Fri, 29 Apr 2016 07:59:42 +0000 (00:59 -0700)]
basertpdepayload: create valid segment when given non-time segment
This will become an error in 1.10.
https://bugzilla.gnome.org/show_bug.cgi?id=765796
Tim-Philipp Müller [Thu, 30 Jun 2016 17:53:07 +0000 (18:53 +0100)]
tagdemux: fix handling of very short files in push mode
By default we'll wait for a certain amount of data before
attempting typefinding. However, if the stream is fairly
short, we might get EOS before we ever attempted any
typefinding, so at this point we should force typefinding
and output any pending data if we manage to detect the
type.
https://bugzilla.gnome.org//show_bug.cgi?id=768178
Tim-Philipp Müller [Thu, 30 Jun 2016 16:30:34 +0000 (17:30 +0100)]
tagdemux: fix erroring out if we reach EOS without detecting type
In 0.10 the source pad was a dynamic pad that was only added once
the type had been detected, but in 1.x it's an always source pad,
so checking whether it's still NULL won't work to detect if the
type has been detected.
Makes tagdemux error out when we get EOS but haven't managed to
identify the format of the data after the tag.
https://bugzilla.gnome.org//show_bug.cgi?id=768178
Edward Hervey [Thu, 30 Jun 2016 15:26:56 +0000 (17:26 +0200)]
parsebin: Fix authors and description
Edward Hervey [Thu, 30 Jun 2016 15:26:14 +0000 (17:26 +0200)]
playback: Remove uridecodebin3
This was committed by mistake. The solution forward is to use the
appropriate combination of urisourcebin and decodebin3
Edward Hervey [Wed, 29 Jun 2016 16:14:51 +0000 (18:14 +0200)]
playback: New elements
With contributions from Jan Schmidt <jan@centricular.com>
* decodebin3 and playbin3 have the same purpose as the decodebin and
playbin elements, except make usage of more 1.x features and the new
GstStream API. This allows them to be more memory/cpu efficient.
* parsebin is a new element that demuxers/depayloads/parses an incoming
stream and exposes elementary streams. It is used by decodebin3.
It also automatically creates GstStream and GstStreamCollection for
elements that don't natively create them and sends the corresponding
events and messages
* Any application using playbin can use playbin3 by setting the env
variable USE_PLAYBIN3=1 without reconfiguration/recompilation.
Sebastian Dröge [Wed, 29 Jun 2016 16:14:51 +0000 (18:14 +0200)]
audioconvert: Handle fallback channel mask for mono correctly
It's 0 and no mask should be set for mono at all.
https://bugzilla.gnome.org/show_bug.cgi?id=757472
Sebastian Dröge [Mon, 27 Jun 2016 17:53:37 +0000 (20:53 +0300)]
playsink: Don't send another step event to the audio-sink if we got step-done from there
Otherwise we would end up with a deadlock as the audio-sink emits step-done
from its streaming thread.
Sebastian Dröge [Mon, 27 Jun 2016 17:49:38 +0000 (20:49 +0300)]
playsink: Force STEP events on the video-sink for GST_FORMAT_BUFFERS
It does not make much sense for audio sinks.
Nirbheek Chauhan [Thu, 23 Jun 2016 20:26:11 +0000 (01:56 +0530)]
configure: Need to add -DGST_STATIC_COMPILATION when building only statically
https://bugzilla.gnome.org/show_bug.cgi?id=767463
Vincent Penquerc'h [Thu, 23 Jun 2016 09:22:35 +0000 (10:22 +0100)]
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.
Wim Taymans [Wed, 22 Jun 2016 14:02:37 +0000 (16:02 +0200)]
video-converter: fix interlaced scaling some more
Fix problem with the line cache where it would forget the first line in
the cache in some cases.
Keep as much backlog as we have taps. This generally works better and we
could do even better by calculating the overlap in all taps.
Allocated enough lines for the line cache.
Use only half the number of taps for the interlaced lines because we
only have half the number of lines.
The pixel shift should be relative to the new output pixel size so scale
it.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=767921
Nicolas Dufresne [Tue, 21 Jun 2016 18:53:36 +0000 (14:53 -0400)]
plugin-doc: Minor re-order
Nicolas Dufresne [Tue, 21 Jun 2016 18:40:17 +0000 (14:40 -0400)]
Automatic update of plugins doc files
Tim-Philipp Müller [Tue, 21 Jun 2016 17:04:23 +0000 (18:04 +0100)]
tests: discoverer: handle missing ogg/codec plugins gracefully
https://bugzilla.gnome.org/show_bug.cgi?id=767859
Nicolas Dufresne [Tue, 21 Jun 2016 15:45:49 +0000 (11:45 -0400)]
Automatic update of common submodule
From ac2f647 to f363b32
Vincent Penquerc'h [Mon, 20 Jun 2016 11:42:28 +0000 (12:42 +0100)]
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
Michael Olbrich [Fri, 17 Jun 2016 13:11:20 +0000 (15:11 +0200)]
tagdemux: preserve duration when skipping a tag at the beginning of a buffer
gst_buffer_copy_region() does not copy the duration if it doesn't start
with the first byte. We just skip the tag here, so the duration is still
valid.
https://bugzilla.gnome.org/show_bug.cgi?id=767791
Sebastian Dröge [Tue, 21 Jun 2016 07:24:15 +0000 (10:24 +0300)]
discoverer: Only allow serializing OK discoverer infos to GVariants
They will be incomplete otherwise and we can't generate the full serialized
information, and instead will crash somewhere on the way.
https://bugzilla.gnome.org/show_bug.cgi?id=767859
Vincent Penquerc'h [Thu, 14 Apr 2016 13:02:27 +0000 (14:02 +0100)]
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
Mikhail Fludkov [Thu, 16 Jun 2016 09:55:52 +0000 (10:55 +0100)]
opusdec: test for PLC timestamp when FEC is enabled.
Mikhail Fludkov [Tue, 5 Apr 2016 10:41:45 +0000 (12:41 +0200)]
audiodecoder: fix invalid timestamps when PLC and delay
Elements inherited from GstAudioDecoder, supporting PLC and introducing
delay produce invalid timestamps. Good example is opusdec with in-band FEC
enabled. After receiving GAP event it delays the audio concealment until
the next buffer arrives. The next buffer will have DISCONT flag set which
will make GstAudioDecoder to reset it's internal state, thus forgetting
the timestamp of GAP event. As a result the concealed audio will have the
timestamp of the next buffer (with DISCONT flag) but not the timestamp
from the event.
Paulo Neves [Sat, 11 Jun 2016 15:11:30 +0000 (17:11 +0200)]
exiftag: Increase serialized geo precision
The serialization of double typed geographical
coordinates to DMS system supported by the exif
standards was previously truncated without need.
The previous code truncated the seconds part of
the coordinate to a fraction with denominator
equal to 1 causing a bug on the deserialization
when the test for the coordinate to be serialized
was more precise.
This patch applies a 10E6 multiplier to the numerator
equal to the denominator of the rational number.
Eg. Latitude = 89.5688643 Serialization
DMS Old code = 89/1 deg, 34/1 min, 7/1 sec
DMS New code = 89/1 deg, 34/1 min, 79114800UL/10000000UL
Deserialization
DMS Old code = 89.
5686111111
DMS New code = 89.5688643
The new test tries to serialize a higher precision
coordinate.
The types of the coordinates are also guint32 instead
of gint like previously. guint32 is the type of the
fraction components in the exif.
https://bugzilla.gnome.org/show_bug.cgi?id=767537
Thomas Jones [Sat, 11 Jun 2016 02:36:32 +0000 (22:36 -0400)]
audiovisualizer: Fix calculations for bytes<->samples conversions
Use bpf instead of channels * sizeof(gint16).
https://bugzilla.gnome.org/show_bug.cgi?id=767505
Thomas Jones [Fri, 10 Jun 2016 18:04:36 +0000 (14:04 -0400)]
audiovisualizer: Use GST_BUFFER_PTS() instead of GST_BUFFER_TIMESTAMP()
https://bugzilla.gnome.org/show_bug.cgi?id=767506
Thomas Jones [Sat, 11 Jun 2016 02:50:41 +0000 (22:50 -0400)]
audiovisualizer: fix timestamp calculation for audio channels > 1
We have to use bps*channels instead of just bps, which is exactly what bpf is for.
https://bugzilla.gnome.org/show_bug.cgi?id=767507
Víctor Manuel Jáquez Leal [Thu, 9 Apr 2015 17:09:17 +0000 (19:09 +0200)]
videodecoder: handle buffer's flags at offset
For reverse playback it is important to handle correctly the frame sync
points, which is set when the input buffer doesn't have the DELTA_UNIT flag.
This is handled correctly when decoder is packetized, but when it is not the
frame's sync point is not copied, and the reverse playback never decodes frame
batches.
The current patch adds the buffer's flags to the Timestamp list, where the
timestamp and duration of the input buffers are hold.
Víctor Manuel Jáquez Leal [Thu, 9 Apr 2015 17:18:58 +0000 (19:18 +0200)]
videodecoder: squash two message logs into one
There were two consecutive log messages in gst_video_decoder_decode_frame().
Given the information they provide, it is more efficient to squash them into a
single one.
Víctor Manuel Jáquez Leal [Thu, 9 Apr 2015 17:16:10 +0000 (19:16 +0200)]
videodecoder: playback rate is in input_segment
The playback rate is hold in the input_segment member variable, not in the
output_segment, and the parse_gather list was never filled because of that.
This patch changes the comparison with input_segment.
Sebastian Dröge [Thu, 9 Jun 2016 16:02:49 +0000 (19:02 +0300)]
videodecoder: Use input segment rate instead of output segment rate to decide whether the drain on keyframes
The output segment is only set up after data is output, which might be far in
the future for reverse playback. Also we are here interested in the state at
the current *input* frame (which is the keyframe), not any possible output.
Sebastian Dröge [Thu, 9 Jun 2016 15:53:54 +0000 (18:53 +0300)]
videodecoder: Only drain in KEY_UNITS trick mode after a keyframe in forwards playback mode
For reverse playback the same behaviour was already implemented in
flush_parse().
For reverse playback, chain_forward() is only used to gather frames and not
for decoding, and it is actually called by the draining logic, causing an
infinite recursion.
Edward Hervey [Tue, 7 Jun 2016 07:48:35 +0000 (09:48 +0200)]
videodecoder: Don't push late frames
While it's a bit tricky to discard frames *before* decoding (because
we might not be sure which data is needed or not by the decoder), we
can discard them after decoding if they are too late anyway.
Any following basetransform based element or similar would drop the frame too.
Edward Hervey [Tue, 7 Jun 2016 08:31:59 +0000 (10:31 +0200)]
videodecoder: Avoid recursive drain/flush calls
_chain_forward() can also be called with reverse playback. Blindly
calling drain_out() on DISCONT buffers would end up in a recursive
call.
Edward Hervey [Sat, 4 Jun 2016 07:51:17 +0000 (09:51 +0200)]
videodecoder: Drain out keyframes in TRICK_MODE_KEY_UNITS
When asked to just decode keyframe, if we got a keyframe drain out
the decoder straight away.
This avoids having to wait for the next frame and reduces delay even
more.
https://bugzilla.gnome.org/show_bug.cgi?id=767232
Edward Hervey [Sat, 4 Jun 2016 07:49:00 +0000 (09:49 +0200)]
videodecoder: Drain decoder on DISCONT buffers
This ensures the decoder is properly drained out when receiving a
DISCONT buffer. The optimal way of doing this would have been to
receive a GAP event before hand but it is not always possible.
Fixes big delays with some decoders (ex gst-libav) that will not
drain out data when only decoding keyframes.
https://bugzilla.gnome.org/show_bug.cgi?id=767232
Michael Olbrich [Wed, 1 Jun 2016 09:02:12 +0000 (11:02 +0200)]
tagdemux: preserve timestamp when skipping a tag at the beginning of a buffer
gst_buffer_copy_region() does not copy the timestamp if it doesn't start
with the first byte. We just skip the tag here, so the timestamp is still
valid.
https://bugzilla.gnome.org/show_bug.cgi?id=767173
Stian Selnes [Tue, 10 May 2016 11:56:13 +0000 (13:56 +0200)]
video-color: Fix colorimetry IS_UNKNOWN
Fix issue with colorimetry default indicies not being in sync with the
actual table causing IS_UNKNOWN() to sometimes fail.
https://bugzilla.gnome.org/show_bug.cgi?id=767163
Guillaume Desmottes [Thu, 2 Jun 2016 11:07:01 +0000 (13:07 +0200)]
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
Sebastian Dröge [Wed, 1 Jun 2016 13:56:13 +0000 (16:56 +0300)]
decodebin: Create a new decode element with the parser/convert capsfilter if there is a multiqueue after the parser
https://bugzilla.gnome.org/show_bug.cgi?id=767102
Edward Hervey [Mon, 23 May 2016 13:11:53 +0000 (15:11 +0200)]
videodecoder: Make sure the DISCONT flag is set on the outgoing buffer
The base class was setting the DISCONT flag before checking whether the buffer
would be in segment or not.
Fix issues with DISCONT flags not being properly propagated downstream when
decoders buffers were out of segment.
https://bugzilla.gnome.org/show_bug.cgi?id=766800
Joan Pau Beltran [Wed, 1 Jun 2016 13:31:52 +0000 (15:31 +0200)]
docs: design: add IYU2 raw video format description
https://bugzilla.gnome.org/show_bug.cgi?id=763026
Tim-Philipp Müller [Wed, 1 Jun 2016 11:36:38 +0000 (12:36 +0100)]
textoverlay: enable shaded background drawing for new IYU2 format
Joan Pau Beltran [Mon, 30 May 2016 14:40:26 +0000 (16:40 +0200)]
video: add IYU2 format
This existed in 0.10 and is needed by dc1394src.
IYU2 format is a YUV fully-sampled packed format similar to v308
but with different component order (U-Y-V instead of Y-U-V).
http://www.fourcc.org/yuv.php#IYU2
https://bugzilla.gnome.org/show_bug.cgi?id=763026#c5
Nirbheek Chauhan [Thu, 17 Mar 2016 18:17:48 +0000 (23:47 +0530)]
libvisual: Factor out endian-order RGB formats
MSVC seems to ignore preprocessor conditionals inside static
pad templates. Also remove unnecessary quotes inside caps strings.
Tim-Philipp Müller [Mon, 23 May 2016 23:44:21 +0000 (00:44 +0100)]
g-i: pass compiler env to g-ir-scanner
It's what introspection.mak does as well. Should
fix spurious build failures on gnome-continuous.
Tim-Philipp Müller [Mon, 23 May 2016 18:28:39 +0000 (19:28 +0100)]
opus: use default error messages in some more cases
Tim-Philipp Müller [Mon, 23 May 2016 14:35:39 +0000 (15:35 +0100)]
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.