Thibault Saunier [Sun, 16 Nov 2014 14:54:56 +0000 (15:54 +0100)]
encodebin: Add a way to disable caps renegotiation for output stream format
In some cases, the user might want the stream outputted by encodebin to
be in the exact same format during all the stream. We should let the
user specify when this is the case. This commit add some API in the
GstEncodingProfile to determine whether the format can be renegotiated
after the encoding started or not.
API:
gst_encoding_profile_set_allow_dynamic_output
gst_encoding_profile_get_allow_dynamic_output
https://bugzilla.gnome.org/show_bug.cgi?id=740214
Tim-Philipp Müller [Fri, 28 Nov 2014 13:31:39 +0000 (13:31 +0000)]
tests: remove libs/video and videoconvert test from valgrind blacklist
Seem to work fine.
Tim-Philipp Müller [Fri, 28 Nov 2014 13:29:37 +0000 (13:29 +0000)]
tests: don't run orc/* tests under valgrind
They just seem to blow up for some reason that needs investigating.
Tim-Philipp Müller [Fri, 28 Nov 2014 13:11:33 +0000 (13:11 +0000)]
tagmux: fix criticals when there are no tags at all
Jan Schmidt [Thu, 20 Nov 2014 14:47:35 +0000 (01:47 +1100)]
test-reverseplay: Use uridecodebin for input
Work with any installed URI handler
Add some more debug output
Sebastian Dröge [Fri, 28 Nov 2014 09:27:28 +0000 (10:27 +0100)]
video-frame: Mapping a frame with inconsistent values between GstVideoMeta and GstVideoInfo is a bug
It will cause the frame to be initialized with inconsistent values that then
later can cause crashes or any other kind of interesting and hard to debug
bugs.
Edward Hervey [Thu, 27 Nov 2014 16:10:31 +0000 (17:10 +0100)]
Automatic update of common submodule
From 7bb2bce to ef1ffdc
Tim-Philipp Müller [Thu, 27 Nov 2014 15:28:36 +0000 (15:28 +0000)]
video-blend: make use of x offset when unpacking overlay image pixels
Now that it's implemented we can use it, which is a minor
optimisation when the image to overlay gets cropped on the
left.
Tim-Philipp Müller [Thu, 27 Nov 2014 15:04:12 +0000 (15:04 +0000)]
video-format: sprinkle some 'restrict' keywords in pack/unpack functions
In cases where we just call orc directly this is somewhat
superfluous, but let's do it anyway for consistency. In
other cases the compiler can hopefully use this to optimise
memory access a little.
Wim Taymans [Thu, 27 Nov 2014 12:01:03 +0000 (13:01 +0100)]
video-format: handle x offset in unpack
Add support for x offset in almost all unpack methods.
Fix naming of source and dest pixels.
Add const to source pixels.
Wim Taymans [Thu, 27 Nov 2014 09:51:58 +0000 (10:51 +0100)]
video-format: improve unpack i420
unpack_i420 does not need extra code to handle odd widths, the orc code
already handles it fine.
Wim Taymans [Thu, 27 Nov 2014 08:45:07 +0000 (09:45 +0100)]
videoscale: use old property name
Unbreak ABI by changing to the old property name again.
https://bugzilla.gnome.org/show_bug.cgi?id=740798
Thibault Saunier [Tue, 25 Nov 2014 12:39:07 +0000 (13:39 +0100)]
decodebin: Analyze source pad before setting to PAUSED for 'simple demuxers'
Before we were setting them to PAUSED and (much) later connecting to
their source pad caps notify signal.
There was a race where that demuxer was pushing a caps and later a buffer
on its source pad when we were not even connected to its source pad caps notify
signal leading to decodebin missing the information and not keeping on
building the pipeline on CAPS event thus the demuxer was posting an ERROR
(not linked) message on the bus. This need to be done for 'simple
demuxers' because those have one ALWAYS source pad, not like usual demuxers
that have several dynamic source pads.
A "simple demuxer" is a demuxer that has one and only one ALWAYS source
pad.
https://bugzilla.gnome.org/show_bug.cgi?id=740693
Mathieu Duponchelle [Tue, 25 Nov 2014 15:46:50 +0000 (16:46 +0100)]
decodebin2: Take STREAM_LOCK before sending sticky events.
There was a race where:
1) we would put the element to PAUSED
2) It would get data sent to it from upstream
3) It would thus send caps
3) caps_notify_cb would continue autoplugging
4) caps would flow downstream, the last pad would get exposed
5) we were still not done sending the sticky events
Taking the stream lock on the new element's sinkpad and only
releasing it when sticky events have all been sent prevents
the caps from reaching the source pad of the element before
we're all set.
https://bugzilla.gnome.org/show_bug.cgi?id=740694
Tim-Philipp Müller [Wed, 6 Aug 2014 18:31:25 +0000 (19:31 +0100)]
typefindfunctions: detect mp4 common file format variant
Used e.g. by UltraViolet.
Tim-Philipp Müller [Tue, 25 Nov 2014 22:01:08 +0000 (22:01 +0000)]
alsasrc: debug message fixes
In the same vein as
74e9640a.
Wim Taymans [Tue, 25 Nov 2014 16:42:07 +0000 (17:42 +0100)]
video-scale: combine adds when max_taps equals combine size
When the amount of pixels/lines matches the amount we can combine,
combine the adds and multiplies and do the scale as a separate
operation.
Wim Taymans [Tue, 25 Nov 2014 16:25:02 +0000 (17:25 +0100)]
video-scaler: combine scaling operations
Combine add and scale of multiple lines/pixels to reduce the amount of
read and writes to temporary memory.
Tim-Philipp Müller [Tue, 25 Nov 2014 14:45:23 +0000 (14:45 +0000)]
timeoverlay: add "time-line" property
So we can also show running time or stream time, not just the
buffer time stamps.
Wim Taymans [Tue, 25 Nov 2014 10:54:51 +0000 (11:54 +0100)]
videoscale: add property to do scaling after gamma-decode
Wim Taymans [Tue, 25 Nov 2014 10:28:42 +0000 (11:28 +0100)]
videoscale: add more scaling filters
Adjust the filter parameters so that they use the same number of taps
and method as the old ones.
Add some new filters
Wim Taymans [Tue, 25 Nov 2014 09:36:13 +0000 (10:36 +0100)]
video-resampler: remove print
Wim Taymans [Tue, 25 Nov 2014 09:32:02 +0000 (10:32 +0100)]
video-resampler: improve variable taps
Improve quality of variable taps on all methods by reusing the lanczos
parameters where possible.
Wim Taymans [Tue, 25 Nov 2014 08:11:31 +0000 (09:11 +0100)]
video-resampler: Fix lanczos parameters for variable taps
when using variable taps and when we are limiting the number of taps,
recalculate the lanczos parameters to match the clamped value.
Set the max number of taps to 128
Andrei Sarakeev [Tue, 25 Nov 2014 08:38:34 +0000 (11:38 +0300)]
playsink: Reset mute property of the sink to playsink's value when setting up the audio chain
Otherwise the following can happen:
1. set mute=true
2. play media1 (Ok)
3. play media without audio (audiochain removed)
4. play media2 (audiochain created, mute=*false*)
https://bugzilla.gnome.org/show_bug.cgi?id=740675
Andrei Sarakeev [Tue, 25 Nov 2014 08:38:34 +0000 (11:38 +0300)]
discoverer: fix typo in header file
https://bugzilla.gnome.org/show_bug.cgi?id=740675
Tim-Philipp Müller [Tue, 25 Nov 2014 09:08:18 +0000 (09:08 +0000)]
pbutils: add description for audio/x-audible
Tim-Philipp Müller [Tue, 25 Nov 2014 01:02:28 +0000 (01:02 +0000)]
typefind: improve 'audible' audio typefinder a little
Don't return NEARLY_CERTAIN just based on 4 bytes.
Also change media type to audio/x-audible.
https://bugzilla.gnome.org/show_bug.cgi?id=715050
Jonathan Matthew [Sat, 23 Nov 2013 01:36:43 +0000 (11:36 +1000)]
typefindfunctions: add audio/audible typefinder
https://bugzilla.gnome.org/show_bug.cgi?id=715050
Branislav Katreniak [Mon, 16 Jun 2014 09:46:18 +0000 (11:46 +0200)]
alsa: Change the log messages in xrun_recovery() from DEBUG to WARNING
xrun_recovery() runs when there is an error
https://bugzilla.gnome.org/show_bug.cgi?id=740615
Wim Taymans [Mon, 24 Nov 2014 11:47:11 +0000 (12:47 +0100)]
video-converter: keep track of required temp lines
Make a small object to hold a pool of allocated temp lines.
Keep track of how many temp lines each conversion stage needs and use
this to allocate just enough temp lines from the temp lines object. from
the temp lines object.
Wim Taymans [Mon, 24 Nov 2014 11:45:02 +0000 (12:45 +0100)]
video-converter: use err line in fastpath
Use the error line for temporary storage in the fastpath so that we
don't have to allocate any other temp lines.
Matej Knopp [Sat, 22 Nov 2014 20:51:33 +0000 (21:51 +0100)]
videoencoder: don't complain about PTS != DTS on keyframes
It is valid for streams with b-frames
https://bugzilla.gnome.org/show_bug.cgi?id=740556
Wim Taymans [Fri, 21 Nov 2014 15:06:54 +0000 (16:06 +0100)]
video-converter: handle mixed interlaced
When dealing with mixed interlaced, setup a scaler and chroma-resampler
for both interlaced and progressive frames and switch between them
depending on the interlace mode of the input frame.
Wim Taymans [Fri, 21 Nov 2014 15:04:11 +0000 (16:04 +0100)]
video-converter: Cleanup options parsing
Cleanup option parsing
Add some debug
Wim Taymans [Fri, 21 Nov 2014 14:59:47 +0000 (15:59 +0100)]
video-converter: there is no need to apply x offset to temp lines
Wim Taymans [Fri, 21 Nov 2014 14:58:34 +0000 (15:58 +0100)]
video-scaler: ensure both fields have the same number of taps
Wim Taymans [Fri, 21 Nov 2014 10:15:04 +0000 (11:15 +0100)]
video-converter: rework the options a little
Rework the options a little to make it nicer to set defaults.
Wim Taymans [Fri, 21 Nov 2014 10:12:50 +0000 (11:12 +0100)]
video-resampler: add option to limits taps
Add an option to limit the number of taps to use in automatic mode. The
problem is that for lanczos, we might use more taps than what we can
handle with the current precision.
Rework the other options a little to make it nicer to set defaults.
Wim Taymans [Thu, 20 Nov 2014 17:20:00 +0000 (18:20 +0100)]
video: update orc files
Edward Hervey [Thu, 20 Nov 2014 14:53:23 +0000 (15:53 +0100)]
win32: Update defs file
Hyunjun Ko [Wed, 19 Nov 2014 12:18:04 +0000 (21:18 +0900)]
rtspconnection: fix warning on param name mismatch
https://bugzilla.gnome.org/show_bug.cgi?id=740013
Jan Schmidt [Mon, 17 Nov 2014 13:04:59 +0000 (00:04 +1100)]
tests: Add reverse playback verification test
Plays a requested URI forward to EOS, then backward and
checks that the same timestamp range(s) are covered.
Sebastian Dröge [Wed, 12 Nov 2014 14:23:37 +0000 (15:23 +0100)]
videorate: Operate in a zero-latency mode if drop-only is set to TRUE
There's no reason why we would have to wait for the next buffer to decide
whether to output the current one or not. We just have to check if the
current one is earlier than our expected next time, which is the previous
frame timestamp plus the expected frame duration.
https://bugzilla.gnome.org/show_bug.cgi?id=740018
Sebastian Dröge [Wed, 19 Nov 2014 13:38:03 +0000 (14:38 +0100)]
video-converter: Use correct enum, GstVideoFormat instead of GstFormat
Wim Taymans [Wed, 19 Nov 2014 12:25:13 +0000 (13:25 +0100)]
video-converter: fix size check
Add some debug, fix size check that decides what scaling to do first and
when to do conversion.
Wim Taymans [Wed, 19 Nov 2014 11:53:03 +0000 (12:53 +0100)]
video-converter: avoid primaries conversion when asked
Don't do conversion between primaries when the option is disabled.
Only do some matrix code when needed.
Wim Taymans [Wed, 19 Nov 2014 11:41:21 +0000 (12:41 +0100)]
video-info: add a note about subsampled formats
Add a note about gst_video_info_set_format() and interlaced formats.
Wim Taymans [Wed, 19 Nov 2014 11:05:02 +0000 (12:05 +0100)]
video-info: handle interlaced size correctly
Refactor GstVideoInfo init, make function to set default colorimetry.
Call fill_planes after we configure the GstVideoInfo with parameters
from the caps.
The size of the chroma planes for interlaced vertically subsampled
formats needs to be rounded up to 2, we have 2 fields with each
the same anount of chroma lines.
Wim Taymans [Wed, 19 Nov 2014 11:04:02 +0000 (12:04 +0100)]
video-color: return FALSE on unparsable colorimetry
Wim Taymans [Wed, 19 Nov 2014 08:40:05 +0000 (09:40 +0100)]
video-format: handle unpack interlaced subsampled formats
For interlaced vertically subsampled formats the check for even lines
needs to take into account the two fields.
Wim Taymans [Wed, 19 Nov 2014 08:39:32 +0000 (09:39 +0100)]
video-scaler: fix interlaced shift
Wim Taymans [Wed, 19 Nov 2014 08:30:14 +0000 (09:30 +0100)]
video-converter: keep a small backlog of lines
Allow lines to jump backwards slightly, usefull for interlaced content.
Wim Taymans [Wed, 19 Nov 2014 08:28:52 +0000 (09:28 +0100)]
video-chroma: Fix interlaced chroma resampling
Use the interlaced flag to select the right resampler.
Wim Taymans [Tue, 18 Nov 2014 15:36:08 +0000 (16:36 +0100)]
video: add some more debuging
Wim Taymans [Tue, 18 Nov 2014 15:35:13 +0000 (16:35 +0100)]
video-scaler: fix interlacing some more
Use the right phase.
Take the right lines from interlaced content.
Wim Taymans [Tue, 18 Nov 2014 11:53:06 +0000 (12:53 +0100)]
video-converter: fix dither method
Wim Taymans [Tue, 18 Nov 2014 11:52:27 +0000 (12:52 +0100)]
video-converter: fix some leaks
And remove some unused fields.
Wim Taymans [Tue, 18 Nov 2014 11:20:26 +0000 (12:20 +0100)]
video-converter: add support for gamma and primaries
Keep only 1 structure with all matrix information.
Add structure to hold gamma information.
Add more options to control gamma, primaries and color matrix handling.
Add functions to compute transformations to and from XYZ and use this
to convert between primaries.
Merge gamma into the convert to and from RGB stage.
Fix border val.
Simplify the fastpath table, remove unused fields, add some more checks.
Wim Taymans [Tue, 18 Nov 2014 10:09:40 +0000 (11:09 +0100)]
video-color: add method to get primaries info
Wim Taymans [Tue, 18 Nov 2014 10:08:10 +0000 (11:08 +0100)]
video-color: fix default 601 primaries
Wim Taymans [Tue, 18 Nov 2014 10:06:20 +0000 (11:06 +0100)]
video-scaler: fix interlaced taps setup
Wim Taymans [Fri, 14 Nov 2014 08:15:22 +0000 (09:15 +0100)]
video-color: make sRGB colorimetry the default for RGB
Wim Taymans [Thu, 13 Nov 2014 11:03:26 +0000 (12:03 +0100)]
video-converter: split YUV to and from RGB conversions
Prepare for doing full gamma corrected conversion and scaling by first
splitting the conversions from and to RGB into separate steps.
split scaling in downscaling and upscaling steps to be performed before
and after conversion respectively.
Wim Taymans [Thu, 13 Nov 2014 11:02:07 +0000 (12:02 +0100)]
video-converter: don't convert too much
because we do conversion after downscaling we only need to convert the
smallest width.
Wim Taymans [Thu, 13 Nov 2014 11:00:05 +0000 (12:00 +0100)]
video-converter: add orc splat functions to draw border
Tim-Philipp Müller [Wed, 5 Nov 2014 21:52:44 +0000 (21:52 +0000)]
Revert "basetextoverlay: Fix segfault when overlay outside the frame"
This is not correct. overlay->silent is a property and we
should not just flip the property forever because one text
we render is outside of the frame. The next one might not
be, the positioning properties can be changed after all.
The lower layers should handle clipping, and now do.
This reverts commit
1cc311156cc3908d1d9888fbcda67305fc647337.
https://bugzilla.gnome.org/show_bug.cgi?id=738984
https://bugzilla.gnome.org/show_bug.cgi?id=739281
Tim-Philipp Müller [Wed, 5 Nov 2014 21:46:47 +0000 (21:46 +0000)]
Revert "basetextoverlay: segfault when xpos >= video size"
This is not right, even if it might avoid a crash. We don't
want to just set xpos/ypos to 0 in those cases. Clipping
should be done properly, see bug #739281 for that.
This reverts commit
900d0267d511e9553eec44d948d7e33ead7dc903.
https://bugzilla.gnome.org/show_bug.cgi?id=738984
https://bugzilla.gnome.org/show_bug.cgi?id=739281
Tim-Philipp Müller [Sun, 16 Nov 2014 23:26:45 +0000 (23:26 +0000)]
video-blend: minor optimisation
Only need to run matrix on those pixels which
will actually be used.
Tim-Philipp Müller [Sun, 16 Nov 2014 19:28:54 +0000 (19:28 +0000)]
tests: make overlay blending test slightly less boring
Tim-Philipp Müller [Sun, 16 Nov 2014 16:34:31 +0000 (16:34 +0000)]
video-blend: fix clipping of overlay images on the left
Fix clipping of images that are partially left of the video
surface, they would get clipped on the right side instead of
the left side, because the video unpack functions currently
ignore the x offset parameter. Work around that until that
is implemented.
https://bugzilla.gnome.org/show_bug.cgi?id=739281
Tim-Philipp Müller [Sun, 16 Nov 2014 16:31:45 +0000 (16:31 +0000)]
video-blend: fix allocation of temp src line for wide sources
Fix allocation of temporary source line buffers for source
images that are wider than the video overlay surface.
Tim-Philipp Müller [Sun, 16 Nov 2014 01:34:09 +0000 (01:34 +0000)]
tests: add visual overlay composition blending test
Shows visual result of blending a logo on top of
a video surface, esp. when the logo is partially
outside of the video surface and needs to be
clipped.
https://bugzilla.gnome.org/show_bug.cgi?id=739281
Tim-Philipp Müller [Sun, 16 Nov 2014 01:32:55 +0000 (01:32 +0000)]
tests: fix leak in video unit test
Vineeth T M [Mon, 10 Nov 2014 11:06:35 +0000 (16:36 +0530)]
video-blend: fix blending of rectangles partially or fully outside of the video
In case of overlay being completely or partially outside
the video frame, the offset calculations are not right,
which resulted in the overlay not being displayed as
expected, or crashes due to invalid memory access.
When the overlay rectangle is completely outside,
we need not render the overlay at all.
For partial display of overlay rectangles, src_yoff
was not being calculated, hence it was always clipping
the bottom half of the overlay, By calculating the
src_yoff, now the overlay is clipped properly.
https://bugzilla.gnome.org/show_bug.cgi?id=739281
Vineeth T M [Mon, 10 Nov 2014 06:42:42 +0000 (12:12 +0530)]
tests: video: add video blend test
Add test to check rendering of overlays of different sizes
that are completely or partially outside the video surface.
Once the overlay is blended to the video, verify if the
position of the blended overlay is as expected, by comparing
the pixels of the blended video with the expected values.
https://bugzilla.gnome.org/show_bug.cgi?id=739281
Tim-Philipp Müller [Sat, 15 Nov 2014 23:15:06 +0000 (23:15 +0000)]
docs: update to git
Tim-Philipp Müller [Sat, 15 Nov 2014 23:13:42 +0000 (23:13 +0000)]
docs: fix some gtk-doc warnings
Deprecated entities found in documentation for xyz:Long_description
.
Wim Taymans [Wed, 12 Nov 2014 08:57:38 +0000 (09:57 +0100)]
video-converter: take offset into account when unpacking
When we can directly take the input line from the source frame when
unpacking, also take into account the x offset.
Wim Taymans [Wed, 12 Nov 2014 08:57:12 +0000 (09:57 +0100)]
video-converter: add some notes
Wim Taymans [Tue, 11 Nov 2014 15:19:03 +0000 (16:19 +0100)]
defs: update defs and docs
Wim Taymans [Tue, 11 Nov 2014 15:11:15 +0000 (16:11 +0100)]
video-color: add gamma encode/decode functions
Add functions to encode and decode gamma.
Add unit test to check that encode and decode are eachothers inverse
and that the limits are respected.
Wim Taymans [Mon, 10 Nov 2014 13:53:13 +0000 (14:53 +0100)]
test: add scaling test
Sort pack and unpack performance measurements
Wim Taymans [Mon, 10 Nov 2014 11:01:48 +0000 (12:01 +0100)]
video-orc: update disted file
and disable one failing function
Wim Taymans [Fri, 24 Oct 2014 15:08:43 +0000 (17:08 +0200)]
videoscale: port to new API
Wim Taymans [Mon, 10 Nov 2014 10:40:11 +0000 (11:40 +0100)]
video-orc: use faster saturating conversions
saturating conversions are generally faster.
Wim Taymans [Fri, 7 Nov 2014 14:45:04 +0000 (15:45 +0100)]
video-chroma: add ORC version of UP_H2_CS
It is however slower than the C version and thus disabled.
Tim-Philipp Müller [Sun, 9 Nov 2014 14:44:36 +0000 (14:44 +0000)]
pbutils: add description for Apple Core Audio Format
https://bugzilla.gnome.org/show_bug.cgi?id=739840
Peter G. Baum [Sun, 9 Nov 2014 11:53:32 +0000 (12:53 +0100)]
typefind: recognize Apple Core Audio Format
(CAF) Specification 1.0
https://bugzilla.gnome.org/show_bug.cgi?id=739840
Sebastian Dröge [Sun, 9 Nov 2014 09:47:14 +0000 (10:47 +0100)]
capsfilter-renegotiation: Use assertions from libcheck for more information on failures
Wim Taymans [Fri, 7 Nov 2014 11:06:10 +0000 (12:06 +0100)]
video-chroma: ORCify 2x vertical upsampling
Make an ORC version of the 2x vertical upsampling code.
Improve unit tests, test chroma up and down sampling.
memset buffer in conversion to make valgrind happy.
William Manley [Thu, 6 Nov 2014 14:14:22 +0000 (14:14 +0000)]
tcpserversink: Don't leak a `GSocket` and a `GInetSocketAddress`
when accepting a connection.
Discovered by `make check-valgrind` with the new `socketintegrationtest`.
https://bugzilla.gnome.org/show_bug.cgi?id=739544
William Manley [Mon, 3 Nov 2014 01:08:27 +0000 (01:08 +0000)]
tests: Add TCP pipelines test
There don't seem to be any unit tests for the socket handling elements. As
I am about to attempt some refactorings I've added some basic tests which
exercise some of the happy-paths in tcpclientsrc, tcpserversrc,
tcpserversink and tcpclientsink. They should let me know if I've caused
serious breakage.
They are far from exhaustive but are sufficient for me to have caught a few
memory-leaks in the existing code.
https://bugzilla.gnome.org/show_bug.cgi?id=739544
Wim Taymans [Thu, 6 Nov 2014 17:18:50 +0000 (18:18 +0100)]
tests: add video conversion test
Go through all conversions and make a list of performance.
Wim Taymans [Thu, 6 Nov 2014 17:13:12 +0000 (18:13 +0100)]
video-info: use h-cosited chroma for HD video by default
Wim Taymans [Thu, 6 Nov 2014 17:09:04 +0000 (18:09 +0100)]
video-converter: clamp lines
Wim Taymans [Thu, 6 Nov 2014 15:29:16 +0000 (16:29 +0100)]
video-orc: update disted files
Wim Taymans [Thu, 6 Nov 2014 15:18:25 +0000 (16:18 +0100)]
video-converter: ORCify 8<->16 conversion
Wim Taymans [Thu, 6 Nov 2014 14:30:02 +0000 (15:30 +0100)]
video-converter: unpack into the destination when needed
Make sure we write into the destination line when we can propose the
dest allocator.
Wim Taymans [Thu, 6 Nov 2014 14:29:50 +0000 (15:29 +0100)]
video-converter: add more debug