Thiago Santos
00c2ce60c3
videoutils: proxy filter when doing a caps query downstream
...
Allows downstream to use the filter and possibly reduce caps complexity
to speed up negotiation
https://bugzilla.gnome.org/show_bug.cgi?id=741263
2014-12-17 19:15:23 -03:00
Thiago Santos
f492085552
videoutils: return empty if the element has no possible allowed caps
...
Instead of returning the template caps and having a failure happen
later because there are no possible caps
https://bugzilla.gnome.org/show_bug.cgi?id=741263
2014-12-17 19:15:23 -03:00
Thiago Santos
f24075887f
videodecoder: implement caps query
...
Refactor the encoder's caps query proxying function to a common place
and use it in the videodecoder to proxy downstream restrictions.
The new function is private to the gstvideo lib.
https://bugzilla.gnome.org/show_bug.cgi?id=741263
2014-12-17 19:15:23 -03:00
Song Bing
8baf1ec500
videopool: update buffer size after video alignment
...
Update the new buffer size after alignment in the pool configuration
before calling the parent set_config. This ensures that the parent knows
about the buffer size that we will allocate and makes the size check
work in the release_buffer method.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=741420
2014-12-16 12:14:53 +01:00
Sebastian Dröge
0b7537f93b
audiobasesrc/sink: Add _CAST macros
2014-12-15 20:57:30 +01:00
Edward Hervey
ff57f69134
video: Fix non-default usage of gst_video_sink_center_rect
...
Make sure we take into account non-0 x/y destination rectangles
2014-12-15 14:11:07 +01:00
Sanjay NM
d226d45d2f
audio: Add error handling to gst_audio_decoder_drain()
...
https://bugzilla.gnome.org/show_bug.cgi?id=740686
2014-12-14 12:05:52 +01:00
Sebastian Dröge
f5cf586e77
audioclock: Fix redundant definitions compiler warning
...
gstaudioclock.c:51:31: error: redundant redeclaration of 'gst_audio_clock_init' [-Werror=redundant-decls]
G_DEFINE_TYPE (GstAudioClock, gst_audio_clock, GST_TYPE_SYSTEM_CLOCK);
gstaudioclock.c:51:31: error: redundant redeclaration of 'gst_audio_clock_class_init' [-Werror=redundant-decls]
G_DEFINE_TYPE (GstAudioClock, gst_audio_clock, GST_TYPE_SYSTEM_CLOCK);
2014-12-13 16:14:49 +01:00
Sebastian Dröge
cb70d3fdf0
audioclock: No need to get the parent class in class_init, G_DEFINE_TYPE does that for us
2014-12-13 16:04:40 +01:00
Sebastian Dröge
41f1ec1c81
audioclock: Use G_DEFINE_TYPE instead of a custom get_type() function
2014-12-13 16:02:01 +01:00
Zaheer Abbas Merali
3ef295d9d6
rtcpbuffer: fix spelling of word in comment
2014-12-12 08:32:15 -08:00
Sebastian Dröge
ee2418effd
video: Update disted orc source files
2014-12-12 10:02:43 +01:00
Sebastian Dröge
3fc5791b3f
Revert "video-converter: Fix compiler warning because of missing prototype of non-static function"
...
This reverts commit 406f32a946
.
The problem was apparently that my video-orc.h was not updated and did not
include the prototype for that function. Only a "make clean" caused it to
be regenerated.
2014-12-12 10:01:36 +01:00
Sebastian Dröge
406f32a946
video-converter: Fix compiler warning because of missing prototype of non-static function
...
video-converter.c:838:1: error: no previous prototype for function
'_custom_video_orc_matrix8' [-Werror,-Wmissing-prototypes]
2014-12-12 09:51:05 +01:00
Thiago Santos
fce946a1a3
audiodecoder: do not use fixed caps on source pad
...
decoders can change the caps on their source pads, so they don't
use fixed caps. Having fixed caps can cause renegotiation issues.
2014-12-11 17:35:03 -03:00
Thiago Santos
2034e5c153
videodecoder: do not use fixed caps on source pad
...
decoders can change the caps on their source pads, so they don't
use fixed caps. Having fixed caps can cause renegotiation issues.
2014-12-11 17:35:03 -03:00
Wim Taymans
903ba19593
video-orc: make RGB pack/unpack faster
...
Avoid all the merging and splitting and use a pair of shifts and or
2014-12-10 16:43:34 +01:00
Jan Schmidt
6e492304dd
videodecoder: Add GST_VIDEO_DECODER_CAST macro
...
It's used in some macros already, so let's make it exist.
2014-12-11 01:53:15 +11:00
Göran Jönsson
e3a212e0d4
rtspconnection: No remove child if destroyed.
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=740730
2014-12-09 10:32:00 +01:00
Wim Taymans
a0b8e96b77
video-converter: set bits and format after conversion
...
Update the current format, bits and pstride.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=741187
2014-12-06 21:05:00 +01:00
Thiago Santos
5db596495b
video-converter: free dither_lines
...
Avoid a memory leak
2014-12-05 22:23:55 -03:00
Wim Taymans
4ffd723c95
video-converter: use custom backup function
...
Use the new orc feature to set a custom backup function.
2014-12-05 14:51:28 +01:00
Wim Taymans
04e9a8dcc5
video-converter: improve matrix8 function
...
Avoid using a constant.
Avoid doing saturated adds, results are not supposed to overflow here.
Rework the C backup function a little in preparation for custom backup
functions in ORC.
See https://bugzilla.gnome.org/show_bug.cgi?id=741015
2014-12-05 12:20:26 +01:00
Mathieu Duponchelle
b2413d46ed
audiodecoder: Push pending events before sending EOS.
...
Segments are added to the pending events, and pushing a segment
is mandatory before sending EOS.
+ Adds a test.
https://bugzilla.gnome.org/show_bug.cgi?id=740853
2014-12-05 12:04:04 +01:00
Wim Taymans
e2a693656b
video-converter: fix chroma resampling check
...
Decide if we need chroma resampling by checking if we have a progressive
or interlaced chroma resampler.
2014-12-03 10:17:29 +01:00
Wim Taymans
6757296386
video-converter: only do dithering when needed
...
Only do dithering when one of the quantizers is > 1.
2014-12-03 10:17:29 +01:00
Wim Taymans
fc1d24ec45
video-scaler: add where orc functions could go
...
Add the disabled orc functions in #if 0 lines for when we can enable
them.
2014-12-02 15:11:12 +01:00
Wim Taymans
d03136f1ea
video-converter: add dithering
...
Use the new dither object to perform dithering.
Add option to select dithering method.
Add option to quantize to a specific value
2014-12-02 15:10:49 +01:00
Wim Taymans
dfb202a117
video-converter: add palette when needed
2014-12-02 15:10:49 +01:00
Wim Taymans
0f2be22e76
video-dither: add video dither helper object
...
Add a new object that implements various dithering methods.
2014-12-02 15:10:43 +01:00
Sebastian Dröge
90eb93c2ef
Don't compare booleans for equality to TRUE and FALSE
...
TRUE is 1, but every other non-zero value is also considered true. Comparing
for equality with TRUE would only consider 1 but not the others.
2014-12-01 09:51:12 +01:00
Thibault Saunier
72c05d1cbb
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
2014-11-28 16:56:32 +01:00
Tim-Philipp Müller
19d2a5255c
tagmux: fix criticals when there are no tags at all
2014-11-28 13:18:38 +00:00
Sebastian Dröge
afcc0b3c50
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.
2014-11-28 10:27:28 +01:00
Tim-Philipp Müller
57811331de
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.
2014-11-27 15:29:48 +00:00
Tim-Philipp Müller
60d18149e5
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.
2014-11-27 15:04:12 +00:00
Wim Taymans
52d4dd1cb0
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.
2014-11-27 13:01:03 +01:00
Wim Taymans
a3da634db6
video-format: improve unpack i420
...
unpack_i420 does not need extra code to handle odd widths, the orc code
already handles it fine.
2014-11-27 10:51:58 +01:00
Wim Taymans
0e3bfbd996
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.
2014-11-25 17:42:07 +01:00
Wim Taymans
74e63fa660
video-scaler: combine scaling operations
...
Combine add and scale of multiple lines/pixels to reduce the amount of
read and writes to temporary memory.
2014-11-25 17:27:07 +01:00
Wim Taymans
b1eb3b7d81
video-resampler: remove print
2014-11-25 10:36:13 +01:00
Wim Taymans
1d55bde5bb
video-resampler: improve variable taps
...
Improve quality of variable taps on all methods by reusing the lanczos
parameters where possible.
2014-11-25 10:34:02 +01:00
Wim Taymans
721bbcad34
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
2014-11-25 10:34:02 +01:00
Andrei Sarakeev
274d8066ce
discoverer: fix typo in header file
...
https://bugzilla.gnome.org/show_bug.cgi?id=740675
2014-11-25 09:17:58 +00:00
Tim-Philipp Müller
2c649370ce
pbutils: add description for audio/x-audible
2014-11-25 09:08:18 +00:00
Wim Taymans
db304a446b
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.
2014-11-24 12:52:26 +01:00
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
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
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
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
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
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
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
b73096ce8c
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.
2014-11-11 16:11:15 +01:00
Wim Taymans
c5271a2eae
video-orc: update disted file
...
and disable one failing function
2014-11-10 12:01:48 +01:00
Wim Taymans
70cdd9195f
video-orc: use faster saturating conversions
...
saturating conversions are generally faster.
2014-11-10 11:45:52 +01:00
Wim Taymans
dcd02cd323
video-chroma: add ORC version of UP_H2_CS
...
It is however slower than the C version and thus disabled.
2014-11-10 11:45:52 +01:00
Tim-Philipp Müller
f73dee34e7
pbutils: add description for Apple Core Audio Format
...
https://bugzilla.gnome.org/show_bug.cgi?id=739840
2014-11-09 14:44:36 +00:00
Wim Taymans
39662d0393
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.
2014-11-07 12:13:28 +01:00
Wim Taymans
780df29cb1
video-info: use h-cosited chroma for HD video by default
2014-11-06 18:19:44 +01:00
Wim Taymans
7690d97189
video-converter: clamp lines
2014-11-06 18:19:44 +01:00
Wim Taymans
87d59ac66d
video-orc: update disted files
2014-11-06 16:29:16 +01:00
Wim Taymans
d35c5fd75c
video-converter: ORCify 8<->16 conversion
2014-11-06 16:26:24 +01:00
Wim Taymans
da6f66e550
video-converter: unpack into the destination when needed
...
Make sure we write into the destination line when we can propose the
dest allocator.
2014-11-06 16:26:24 +01:00
Wim Taymans
d148963c7a
video-converter: add more debug
2014-11-06 16:26:24 +01:00
Sebastian Dröge
860dfa93c9
video: Update disted orc files
2014-11-06 15:01:27 +01:00
Wim Taymans
21f57317bb
video-chroma: optimize chroma subsampling a little
...
Combine multiplies in 4x filters.
Rename conversion functions to make them nicer in orc.
Add ORC versions for various downsampling algorithms
Add unit test chroma resampler
2014-11-06 13:08:42 +01:00
Wim Taymans
57b9ea8f54
video-format: update some docs and add a FIXME(2.0)
2014-11-06 10:45:13 +01:00
Wim Taymans
0f64126919
video-format: add range extension to BGR_10XE format
2014-11-06 10:45:13 +01:00