Commit graph

15897 commits

Author SHA1 Message Date
Jan Schmidt 924c44f369 theoradec: Make the keyframe condition check clearer
Make the keyframe checking if statement easier to
read, and add some debug when detecting a keyframe
2017-03-04 00:30:37 +11:00
Jan Schmidt 6ac79da6a2 videodecoder: Restrict frame timestamp guessing in reverse mode
Don't guess a timestamp of the start of the segment when running
in reverse mode, as more likely it means we're discontinuous somewhere
in the middle of the segment, and we'll fix up timestamps once
the frames are decoded and reversed.
2017-03-04 00:30:37 +11:00
Jan Schmidt fcb63e77a9 videodecoder: Store buffer information even without PTS
When a PTS is not set, we still want to store the rest of the
buffer information, or else we lose important things like the
duration or buffer flags when parsing.
2017-03-04 00:30:37 +11:00
Edward Hervey e575be6dc6 vorbisdec: Reset decoder in more situations
This is a followup commit to b95725c37e

* Resetting the decoder should only happen when we get a new initialization
header (0x01) and not on the other headers
* The initialized variable only gets set to TRUE once all headers have
been parsed. Also check if the vorbis_info struct has been properly resetted
also. Failure to do that would cause vorbisdec to error if it got
two initialization header in a row (the first would configure the underlying
library and the second one would error out because it's already initialized)

https://bugzilla.gnome.org/show_bug.cgi?id=779515
2017-03-03 10:56:22 +01:00
Sebastian Dröge 6eef6bd1f5 rawbaseparse: Assert that frame size is > 0
We would later divide by zero otherwise, and generally won't do the
right thing.

CID 1401383
2017-02-28 15:51:00 +02:00
Sebastian Dröge 9a62892428 rawaudioparse: Fix potential NULL pointer dereference
CID 1364606
2017-02-28 15:26:36 +02:00
Sebastian Dröge 033057cf74 decodebin3: Fix potential NULL pointer dereference on slot deactivation
CID 1363331
2017-02-28 15:17:24 +02:00
Sebastian Dröge bd9fd89d61 urisourcebin: Fix inverted check for an existing slot
CID 1363330
2017-02-28 15:15:31 +02:00
Sebastian Dröge f41198db9d decodebin3: Handle stream-start events without group id correctly
CID 1363327
2017-02-28 15:13:49 +02:00
Sebastian Dröge daa0e18c75 videodecoder: Handle return value of gst_video_decoder_drain()
CID 1362896
2017-02-28 15:11:42 +02:00
Jochen Henneberg b95725c37e vorbisdec: reset decoder on vorbis headers update
if the vorbis encoder receives new headers it must be
reset and re-initialized to continue decoding, e. g.
for live streams
2017-02-27 19:17:58 +02:00
Sebastian Dröge bb051c14b3 vorbisenc: Resend (new, updated) headers when the caps are changing
The headers are usually changing together with the caps, and they are
nedeed for correct decoding.
2017-02-27 19:04:30 +02:00
Tim-Philipp Müller 14f04c3b69 rawparse: fix linking for audio/video libs
Broke build in gnome continuous
2017-02-25 19:20:19 +00:00
Sebastian Dröge 8d4a98d2ae rawparse: Fix meson build 2017-02-25 15:14:07 +02:00
Sebastian Dröge 38ec8f396f rawparse: Move to gst-plugins-base
https://bugzilla.gnome.org/show_bug.cgi?id=774544
2017-02-25 14:48:40 +02:00
Sebastian Dröge 498ee680fe Merge branch 'rawparse-moved-plugin' 2017-02-25 14:32:33 +02:00
Sebastian Dröge f6f4ae19c2 meson: Update version 2017-02-24 15:59:38 +02:00
Sebastian Dröge 1b76f88329 Back to development 2017-02-24 15:37:33 +02:00
Sebastian Dröge b078f0ad40 Release 1.11.2 2017-02-24 15:07:06 +02:00
Sebastian Dröge 85f6690cc1 Update .po files 2017-02-24 12:46:59 +02:00
Sebastian Dröge 0f7b9dbe75 video-converter: Give a name to the thread-pool threads
This way they can be distinguished from any other threads in the same
process.
2017-02-24 10:04:21 +02:00
Sebastian Dröge 6d20fcc9df video-converter: Only lock the thread pool mutex when running with more than 1 thread
There's no reason to lock anything if only the current thread is ever
going to do any work.
2017-02-24 10:02:28 +02:00
Sebastian Dröge 49ac382b47 video-converter: Implement multi-threaded scaling/conversion
This adds a property to select the maximum number of threads to use for
conversion and scaling. During processing, each plane is split into
an equal number of consecutive lines that are then processed by each
thread.

During tests, this gave up to 1.8x speedup with 2 threads and up to 3.2x
speedup with 4 threads when converting e.g. 1080p to 4k in v210.

https://bugzilla.gnome.org/show_bug.cgi?id=778974
2017-02-23 21:55:29 +02:00
Georg Lippitsch d15ad75caf videotimecode: Validate for drop-frame correctness
In gst_video_time_code_is_valid, also check for invalid
ranges when using drop-frame TC. Refactor some code which
broke after the check was added.

https://bugzilla.gnome.org/show_bug.cgi?id=779010
2017-02-23 19:56:26 +02:00
Georg Lippitsch b3df5786a9 videotimecode: Init from GDateTime
Add a function to init the time code from a GDateTime

https://bugzilla.gnome.org/show_bug.cgi?id=778702
2017-02-23 19:50:39 +02:00
Jochen Henneberg 0c2c82ad69 vorbis: Fix channel reorder map for 5.1, 6.1 and 7.1 2017-02-20 13:45:09 +02:00
Sebastian Dröge 4cde35553f rawbaseparse: Drop incomplete frames at EOS
See https://bugzilla.gnome.org/show_bug.cgi?id=773666

This would ideally be solved in baseparse but that requires further
thought at this point, and in the meantime it would be good to have
rawbaseparse not assert on this but handle it gracefully instead.
2017-02-18 20:18:50 +02:00
Sebastian Dröge ab854b04ba video-scaler: Fix upscaling if width & height change and we're starting not at y=0
It was taking the initial input y-offset from the output value, which
only works for y=0 (in which case both are the same). If y > 0, we would
always stay behind the requested input offset and never ever read
anything from the input.
2017-02-15 21:43:32 +02:00
Tim-Philipp Müller 90374fab76 Fix distcheck
Buildbot doesn't like wildcards here for some reason.
2017-02-14 22:31:50 +00:00
Tim-Philipp Müller 6e76f7bc3d meson: dist meson build files
Ship meson build files in tarballs, so people who use tarballs
in their builds can start playing with meson already.
2017-02-14 19:45:07 +00:00
Tim-Philipp Müller 267b7a8cf1 win32: dist all .def files 2017-02-14 19:43:47 +00:00
Heekyoung Seo 0889d89407 typefindfunctions: prevent unsigned int overflow
https://bugzilla.gnome.org/show_bug.cgi?id=778432
2017-02-14 12:22:37 +02:00
Stefan Sauer 66148a770c adder: ensure the discont flag is correct
Previously it happened that reused buffer caused the discont to be on the wrong
buffers.
2017-02-10 21:41:29 +01:00
Thibault Saunier d5fbc905e3 discoverer: Ignore more parser related fields when comparing streams
The parser might do some conversion on a stream but the stream keeps
being the same, and we need to make sure GstDiscoverer detects it is the
case.

https://bugzilla.gnome.org/show_bug.cgi?id=778298
2017-02-08 15:56:34 -03:00
Jan Schmidt 5903e2dfbb audioringbuffer: Also add FLAC to debug strings.
Oops, also add FLAC to the debug strings array.

https://bugzilla.gnome.org/show_bug.cgi?id=777655
2017-02-04 14:46:42 +11:00
Jan Schmidt 04c14de1d1 audioringbuffer: Prevent overflow of debug names array
Add new audio types to the list of strings used for debug
so we don't index past the end of that array.

https://bugzilla.gnome.org/show_bug.cgi?id=777655
2017-02-04 14:42:33 +11:00
Sebastian Dröge 5e2e111627 multifdsink: Make sure to use a 64 bit integer for the units-max property 2017-02-02 14:56:39 +02:00
Seungha Yang 6b5617c2a7 decodebin3: Fix crash caused by slot double freeing
Probe for MultiQueue source pad might receive EOS twice,
the first is fake-eos and the other is actual EOS.
And the slot can be freed with fake-eos/EOS if the slot has no input.

Since slot freeing is async, double free can be possible.
So, decodebin3 needs to remove the probe also with slot freeing.

https://bugzilla.gnome.org/show_bug.cgi?id=777530
2017-01-31 17:16:16 +01:00
Edward Hervey 21889bf878 examples: Fix leak 2017-01-31 16:48:04 +01:00
Seungha Yang e6ee68a34f decodebin3: Fix list leak on handle_stream_switch()
Free no more used list variables

https://bugzilla.gnome.org/show_bug.cgi?id=775553
2017-01-31 16:48:04 +01:00
Seungha Yang 44bc10219c decodebin3: Change requested_selection to have its own memory for stream-id
"requested_selection" list might be generated by select-streams event.
And memory of stream-id(s) in select-streams is independent from that of stream-collection.

https://bugzilla.gnome.org/show_bug.cgi?id=775553
2017-01-31 16:48:04 +01:00
Seungha Yang 30fe123fdb decodebin3: Change return types of stream_in_{list,collection}
Change return types of functions to get memory address of stream-id.

https://bugzilla.gnome.org/show_bug.cgi?id=775553
2017-01-31 16:48:04 +01:00
Seungha Yang 10fe0497b2 playback: Fix leak on select_streams
Since gst_event_parse_select_streams() returns newly allocated
memory for stream-id(s), it should be freed explicitly.

https://bugzilla.gnome.org/show_bug.cgi?id=775553
2017-01-31 16:48:04 +01:00
Guillaume Desmottes b8c78c87d2 encodebin: fix caps leak in test
https://bugzilla.gnome.org/show_bug.cgi?id=776797
2017-01-30 14:17:42 +02:00
Sebastian Dröge f939f05304 audio-resampler: Fix integer overflow in clamping code
https://bugzilla.gnome.org/show_bug.cgi?id=777921
2017-01-30 12:35:04 +02:00
Sebastian Dröge 7de834bc36 qt: The videooverlay example requires at least C++11
... and clang requires this to be specified on the commandline while gcc
nowadays defaults to C++11 or even newer.
2017-01-25 19:13:40 +02:00
Thibault Saunier 091717d6ca meson: Properly use ':' for defining keywords 2017-01-24 19:25:58 -03:00
Tim-Philipp Müller f9d110f596 videorate: fix LATENCY query
The latency query originally had a fallthrough to the default
label at the end as fallback, but that got messed up when the
DURATION and POSITION queries were added, so it then fell through
to the duration query handler instead. Restore original behaviour.

https://bugzilla.gnome.org/show_bug.cgi?id=699077
2017-01-24 01:04:53 +00:00
Tim-Philipp Müller d6c0e9072b videorate: fix duration and position query handling
Duration query would return TRUE and duration=-1. This
worked in the unit test because the unit test implementation
was a bit broken.

Both queries need to access rate with a lock.

Fix broken duration query test as well. It relied on broken
behaviour by the videorate query handler, and also it was
implemented as a downstream query rather than an upstream
query. And we must return HANDLED from the probe so that the
query we intercept actually returns TRUE.

https://bugzilla.gnome.org/show_bug.cgi?id=699077
2017-01-24 01:04:39 +00:00
Tim-Philipp Müller 83e84d5acf audio: add since markers to docs for new enums
https://bugzilla.gnome.org/show_bug.cgi?id=777655
2017-01-23 20:04:54 +00:00