Commit graph

13892 commits

Author SHA1 Message Date
Wim Taymans
e182abcf79 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.
2014-11-24 12:52:26 +01:00
Matej Knopp
9d349d8831 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
2014-11-22 16:12:16 -05:00
Wim Taymans
b9bee1af8c 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.
2014-11-21 16:06:54 +01:00
Wim Taymans
0358e23baf video-converter: Cleanup options parsing
Cleanup option parsing
Add some debug
2014-11-21 16:04:11 +01:00
Wim Taymans
d001b10f29 video-converter: there is no need to apply x offset to temp lines 2014-11-21 15:59:47 +01:00
Wim Taymans
1a3e8395bb video-scaler: ensure both fields have the same number of taps 2014-11-21 15:58:34 +01:00
Wim Taymans
eefdba6dbd video-converter: rework the options a little
Rework the options a little to make it nicer to set defaults.
2014-11-21 11:15:04 +01:00
Wim Taymans
7b7270ecff 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.
2014-11-21 11:12:50 +01:00
Wim Taymans
6620ab9d31 video: update orc files 2014-11-20 18:20:28 +01:00
Edward Hervey
f87fc916f6 win32: Update defs file 2014-11-20 15:53:48 +01:00
Hyunjun Ko
cb15df15ac rtspconnection: fix warning on param name mismatch
https://bugzilla.gnome.org/show_bug.cgi?id=740013
2014-11-19 13:43:02 -03:00
Jan Schmidt
b508867795 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.
2014-11-20 02:08:45 +11:00
Sebastian Dröge
cefc518494 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
2014-11-19 15:10:48 +01:00
Sebastian Dröge
823f170fac video-converter: Use correct enum, GstVideoFormat instead of GstFormat 2014-11-19 14:38:03 +01:00
Wim Taymans
9647a8ca78 video-converter: fix size check
Add some debug, fix size check that decides what scaling to do first and
when to do conversion.
2014-11-19 13:25:13 +01:00
Wim Taymans
23adc12e02 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.
2014-11-19 12:55:03 +01:00
Wim Taymans
f6683b8f14 video-info: add a note about subsampled formats
Add a note about gst_video_info_set_format() and interlaced formats.
2014-11-19 12:55:03 +01:00
Wim Taymans
24989b53fc 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.
2014-11-19 12:55:03 +01:00
Wim Taymans
8f43cc67d5 video-color: return FALSE on unparsable colorimetry 2014-11-19 12:55:02 +01:00
Wim Taymans
5c043f3d50 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.
2014-11-19 12:55:02 +01:00
Wim Taymans
588fdeb834 video-scaler: fix interlaced shift 2014-11-19 12:55:02 +01:00
Wim Taymans
ac756ba0d9 video-converter: keep a small backlog of lines
Allow lines to jump backwards slightly, usefull for interlaced content.
2014-11-19 12:55:02 +01:00
Wim Taymans
b911434716 video-chroma: Fix interlaced chroma resampling
Use the interlaced flag to select the right resampler.
2014-11-19 12:55:02 +01:00
Wim Taymans
d6ed383c6f video: add some more debuging 2014-11-19 12:55:02 +01:00
Wim Taymans
7d0cef3bcb video-scaler: fix interlacing some more
Use the right phase.
Take the right lines from interlaced content.
2014-11-19 12:55:02 +01:00
Wim Taymans
73349f14b9 video-converter: fix dither method 2014-11-19 12:55:02 +01:00
Wim Taymans
c116da93f1 video-converter: fix some leaks
And remove some unused fields.
2014-11-19 12:55:02 +01:00
Wim Taymans
cfc173e96b 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.
2014-11-19 12:55:02 +01:00
Wim Taymans
7c02acc544 video-color: add method to get primaries info 2014-11-19 12:55:02 +01:00
Wim Taymans
943e1319a2 video-color: fix default 601 primaries 2014-11-19 12:55:02 +01:00
Wim Taymans
d03bad7761 video-scaler: fix interlaced taps setup 2014-11-19 12:55:02 +01:00
Wim Taymans
c98bc6fdc6 video-color: make sRGB colorimetry the default for RGB 2014-11-19 12:55:02 +01:00
Wim Taymans
63012a07c5 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.
2014-11-19 12:55:02 +01:00
Wim Taymans
f51bed2a3b video-converter: don't convert too much
because we do conversion after downscaling we only need to convert the
smallest width.
2014-11-19 12:55:02 +01:00
Wim Taymans
fc5dd035fa video-converter: add orc splat functions to draw border 2014-11-19 12:55:02 +01:00
Tim-Philipp Müller
46e727ebde 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 1cc311156c.

https://bugzilla.gnome.org/show_bug.cgi?id=738984
https://bugzilla.gnome.org/show_bug.cgi?id=739281
2014-11-17 09:49:54 +00:00
Tim-Philipp Müller
a003423bc3 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 900d0267d5.

https://bugzilla.gnome.org/show_bug.cgi?id=738984
https://bugzilla.gnome.org/show_bug.cgi?id=739281
2014-11-17 09:48:42 +00:00
Tim-Philipp Müller
5339e4507a video-blend: minor optimisation
Only need to run matrix on those pixels which
will actually be used.
2014-11-16 23:26:45 +00:00
Tim-Philipp Müller
dc3d68d9c2 tests: make overlay blending test slightly less boring 2014-11-16 19:28:54 +00:00
Tim-Philipp Müller
9396d843d6 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
2014-11-16 16:44:43 +00:00
Tim-Philipp Müller
2fae23c318 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.
2014-11-16 16:44:36 +00:00
Tim-Philipp Müller
07f254e4b2 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
2014-11-16 16:30:53 +00:00
Tim-Philipp Müller
c61604fd9b tests: fix leak in video unit test 2014-11-16 13:56:16 +00:00
Vineeth T M
9032c12e69 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
2014-11-16 13:55:22 +00:00
Vineeth T M
7f5aa9af04 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
2014-11-16 13:51:34 +00:00
Tim-Philipp Müller
f4c1da5f49 docs: update to git 2014-11-15 23:15:06 +00:00
Tim-Philipp Müller
9c5d53c7e3 docs: fix some gtk-doc warnings
Deprecated entities found in documentation for xyz:Long_description
.
2014-11-15 23:13:42 +00:00
Wim Taymans
61e84bc435 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.
2014-11-12 09:57:38 +01:00
Wim Taymans
bb4863111b video-converter: add some notes 2014-11-12 09:57:12 +01:00
Wim Taymans
3112335cd6 defs: update defs and docs 2014-11-11 16:19:03 +01:00