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
Wim Taymans
cecb900704
video-format: fix pack of 4:2:0 formats
...
When packing 4:2:0 formats, we need to take the chroma from the even
lines, for the odd lines we only take luminance.
2014-11-06 10:45:13 +01:00
Wim Taymans
1f14077b41
video-format: fix range extension of UYVP
...
We need to shift the top 6 bits to the lower 6 bits
2014-11-06 10:45:13 +01:00
Wim Taymans
3f44aaf810
video-chroma: do h subsampling after v subsampling
...
We only need to do the horizontal subsampling on 1 line if we do it
after vertical subsampling and we also avoid doing vertical subsampling
on unused pixels.
2014-11-06 10:45:13 +01:00
Wim Taymans
7888b4f9fa
video-converter: keep separate lines with border
...
Make separate with a border around them so that we can avoid a memcpy.
2014-11-05 11:55:22 +01:00
Wim Taymans
cf970376df
video-scaler: avoid memcpy when not needed
2014-11-05 11:55:22 +01:00
Wim Taymans
0980dfcb99
video-converter: pass output line correctly
2014-11-05 11:55:21 +01:00
Wim Taymans
3dd059baf3
video-converter: rework the converter to allow more optimizations
...
Rework the converter, keep track of the conversion steps by chaining the
cache objects together. We can then walk the chain and decide the
optimal allocation pattern.
Remove the free function, we're not going to need this anytime soon.
Keep track of what output line we're constructing so that we can let the
allocator return a line directly into the target image when possible.
Directly read from the source pixels when possible.
2014-11-04 17:38:11 +01:00
Wim Taymans
3286320297
video-scaler: fix temp line allocation
...
We need to allocate the templine with the amount of pixels we are going
to handle, which we only know for the vertical resampler when we are
asked to resample.
2014-11-04 17:38:11 +01:00
Wim Taymans
67a4702b19
video-scaler: fix taps in interlaced mode
2014-11-04 17:38:11 +01:00
Wim Taymans
562416bb94
video-scaler: fix phases in interlaced mode
2014-11-04 17:38:11 +01:00
Wim Taymans
9cc353ce7c
video-orc: fix v_2tap_u16
2014-11-04 17:36:49 +01:00
Wim Taymans
7a56ec1186
video-converter: add extra pixels for the border
...
We need extra pixels for the border.
2014-11-03 16:19:25 +01:00
Wim Taymans
bd6d2b40d1
video-scaler: add support for 16bits formats
...
Add scaler functions for 16 bits formats.
Rename the scaler functions so that 16bits versions don't look too
weird.
Remove old unused h_2tap functions
Fix v_ntap functions, it was using 1 tap too little.
2014-11-03 15:41:02 +01:00
Wim Taymans
e72a01e949
video-converter: Add support for 16 bits formats
...
Rework the way we track the current state of the video through the
different conversion phases and use this to make sure we use the right
format and pstride where needed.
2014-11-03 15:41:02 +01:00
William Manley
c97f10d7d8
docs: gst_dmabuf_allocator_alloc: Improve documentation
...
https://bugzilla.gnome.org/show_bug.cgi?id=739545
2014-11-03 09:02:46 -05:00
Wim Taymans
2f38f83c08
video-orc: comment out unused function
...
A faster version of 4tap horizontal scaling causes segfaults in ORC
presumably because it uses too many registers so disable it to avoid
crashing in the ORC tests.
2014-11-03 10:07:56 +01:00
Sebastian Dröge
b4ee10f616
video-scaler: Fix compiler warning
...
video-scaler.c:151:58: error: implicit conversion from enumeration type
'GstVideoScalerFlags' to different enumeration type
'GstVideoResamplerFlags' [-Werror,-Wenum-conversion]
gst_video_resampler_init (&scale->resampler, method, flags, out_size,
~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~
2014-11-03 08:12:44 +01:00
Luis de Bethencourt
7ca8e6e71d
rtp: Do not use deprecated gtk-doc 'Rename to' tag
...
GObject introspection GTK-Doc tag "Rename to" has been deprecated, changing to
rename-to annotation.
https://bugzilla.gnome.org/show_bug.cgi?id=739514
2014-11-02 15:14:13 +00:00
Tim-Philipp Müller
c409d134de
video: fix some g-i / gtk-doc warnings
2014-11-01 14:58:13 +00:00
Tim-Philipp Müller
d2e364ff7a
video: update disted orc backup functions
...
Fixes build without orc.
2014-11-01 14:47:26 +00:00
Tim-Philipp Müller
f04a9589d4
video: add video blend helper functions to docs
...
I don't think those were ever meant to be made public,
but they are, so we might as well document them.
2014-11-01 14:30:07 +00:00
Wim Taymans
ceee8d5d40
video-scaler: ORCify vertical ntap function
2014-11-01 13:15:29 +01:00
Wim Taymans
45462d2ea4
video-scaler: handle 4tap interlaced
2014-11-01 13:15:29 +01:00
Wim Taymans
cfa1f73f45
video-orc: update dist files
2014-10-31 16:53:06 +01:00
Wim Taymans
524d30a168
video-scaler: add ORC optimized ntap horizontal scalers
2014-10-31 16:50:49 +01:00
Jan Schmidt
691f020c57
video: Update disted orc files for new functions.
...
Fixes the build when building without ORC
2014-10-31 22:52:43 +11:00
Wim Taymans
b3ff9c030f
video-converter: align offsets to subsampling
...
Only apply an offset that is a multiple of the subsampling. To handle
arbitrary offsets in the future, we need to be able to chroma-resample
part of the borders.
2014-10-31 11:23:21 +01:00
Wim Taymans
308d21c71f
video-converter: clamp output lines
2014-10-31 11:23:21 +01:00
Wim Taymans
b2eb5f02fc
video-format: add alignment checks
...
Some of the ORC functions need specific alignment
2014-10-31 11:23:21 +01:00
Wim Taymans
19cd171035
video-scaler: fix offset check
2014-10-31 11:23:21 +01:00
Wim Taymans
5c3c42b95d
video-converter: also chroma up/downsample when scaling
2014-10-31 11:23:21 +01:00
Wim Taymans
6a529cb1dd
video-converter: clamp input lines correctly
2014-10-31 11:23:21 +01:00
Tim-Philipp Müller
ef98393b0d
video-scaler: fix build without orc
...
https://bugzilla.gnome.org/show_bug.cgi?id=739433
2014-10-30 23:53:39 +00:00
Wim Taymans
5cf4aa358d
video-converter: add border color
2014-10-30 17:34:48 +01:00
Wim Taymans
ce2d4d40a1
video-converter: add support for src/dest regions
...
Add support for cropping the source and placing the converted image
into a rectangle in the destination frame.
Add an option to add a border and border color.
2014-10-30 17:34:48 +01:00
Vincent Penquerc'h
20344f6dc9
rtpbuffer: add a const where appropriate
2014-10-30 11:42:02 +00:00
Wim Taymans
49d909dabf
video-scaler: add more ORC functions
...
Add the old ORC functions for nearest and linear. Label them as Low
quality because they are not as accurate but ORC lacks opcodes to
express this for now.
2014-10-30 11:48:00 +01:00
Wim Taymans
ca2bd1cc6b
video-scaler: rename resampler to video-resampler
...
Prefix the resampler with video-. It we would like to reuse the
resampler for audio later, we can copy/move it and deprecate this
one.
2014-10-30 11:48:00 +01:00
Wim Taymans
daf20d5e09
video-scaler: remove color range argument
...
We just need to clip to the format limits, if there is extra headroom in
the range we can use that without problems.
2014-10-29 17:38:33 +01:00
Wim Taymans
21ba193dd6
video-scaler: add ORC optimized versions
...
Add ORC optimized versions of 2 and 4tap vertical scaling. Provide
a high quality 12 bits and a low quality 6 bits version.
2014-10-29 16:26:19 +01:00
Wim Taymans
84176843c1
video-scaler: add precision to make_s16_taps
2014-10-29 16:26:19 +01:00
Wim Taymans
72b30ac5ed
video-converter: copy config fields
...
When setting a new config, copy all the fields into our own config and
not only the ones we know about.
2014-10-29 16:26:19 +01:00
Wim Taymans
28e5ed00de
resampler: make offset/phase/n_taps uint32
...
Make various resizer fields uint32 so that we can use them in ORC
functions later.
2014-10-29 16:26:19 +01:00
Wim Taymans
9591e22fee
video-converter: don't convert too much
...
Always convert the smallest width.
2014-10-29 16:26:10 +01:00
Wim Taymans
fcc7fbd460
resampler: make shift easier to use
2014-10-29 16:26:10 +01:00
Wim Taymans
716b91d86e
resampler: add parameters to cubic filter
...
Improve cubic filter and add parameters. Switch to mitchell filter
by default.
2014-10-29 16:26:10 +01:00
Wim Taymans
32047eaac0
video-scaler: add extra options
2014-10-29 16:26:10 +01:00
Wim Taymans
c409a45d13
video-converter: define some options
2014-10-29 16:26:10 +01:00
Wim Taymans
ad0e0006b2
resampler: add some options
2014-10-29 16:26:10 +01:00
Wim Taymans
b4a5001e3c
resampler: limit max number of taps
...
Don't use more taps than the input size.
2014-10-29 16:26:10 +01:00
Wim Taymans
a81d450b7e
video-converter: add scaling support
...
Add scaling support for the video-converter object
2014-10-29 16:26:10 +01:00
Wim Taymans
199fab4b06
video-scaler: add video scaler helper object
...
Add a video scaler object build on top of the resampler. It has
implementation to deal with interlaced video as well as horizontal and
vertical scaling functions.
2014-10-29 16:26:10 +01:00
Wim Taymans
c9c9e8158d
video: add generic resampler
...
Add an object that can generate a set of resample filter coefficients.
2014-10-29 16:26:10 +01:00
Wim Taymans
549bdd4ece
video-converter: rework the generic converter function
...
Use a LineCache object to track and process lines between unpack,
upsample, convert, downsample and pack stages. This simplifies the
main core processing function a lot and allows for future additions
easily.
Add support for interlaced formats in chroma up and downsampling.
2014-10-29 16:26:10 +01:00
Wim Taymans
71efeaaa6f
video-convert: swap src and dest
...
It is more natural and consistent with other uses.
2014-10-29 16:26:10 +01:00
Wim Taymans
6547985f27
video-chroma: fix typo
2014-10-29 16:26:10 +01:00
Vineeth T M
2847a8108c
video-blend: segfault when xpos >= video size
...
When the xpos is given as greater than or equal to the video size,
we get a segfault, due to improper condition.
Hence adding proper conditions.
https://bugzilla.gnome.org/show_bug.cgi?id=738984
2014-10-27 10:29:15 +00:00
Tim-Philipp Müller
db89f0dca4
rtsp: use generic marshaller
2014-10-24 10:17:47 +01:00
Aleix Conchillo Flaqué
66abee92b0
rtspconnection: call watch notify before freeing any watch resources
...
This gives control to the notify function allowing it to finish other
watch related functionality.
https://bugzilla.gnome.org/show_bug.cgi?id=737752
2014-10-21 10:03:35 +02:00
Sebastian Dröge
6129d1bd18
appsink: Fix gst_app_sink_pull() docs to transfer full for the return value
...
Also we get a GstSample, not a GstBuffer here.
2014-10-20 15:31:29 +02:00
Peter G. Baum
7b211bf6b3
riff-media: allow more channel_masks
...
Allow partial valid channel masks.
Set channel mask to 0 for non-valid channel masks.
https://bugzilla.gnome.org/show_bug.cgi?id=733405
2014-10-14 10:29:56 +02:00
Peter G. Baum
c734fbc139
audio-channels: allow partially valid channel_mask
...
Since WAVEFORMATEXTENSIBLE allows to have more channels than
bits in the channel mask we should allow this, too, to avoid
loss of information.
https://bugzilla.gnome.org/show_bug.cgi?id=733405
2014-10-14 10:29:56 +02:00
Thiago Santos
a0b25a570a
audiodecoder: should post DECODE errors and not ENCODE
...
Fix error code for audio decoder
2014-10-13 22:26:29 -03:00
Luis de Bethencourt
3f5b9c4c8b
videoblend: Avoid assigning a negative value to a guint
...
There are some few but certain conditions where it is possible for the
dest_width to be smaller than x. So we check this before assigning a negative
value to src_width, which is a unsigned and would be promoted to a number that
can segfault videoblend.
https://bugzilla.gnome.org/show_bug.cgi?id=738242
2014-10-11 19:10:46 +01:00
Olivier Crête
57ac7b1800
pbutils: Rename clock-base/seqnum-base to timestamp-offset/seqnum-offset
...
To match how they were renamed elsewhere.
2014-10-10 17:33:00 -04:00
Wim Taymans
e115e5059b
video-chroma: improve 4x downsampling coefficients
2014-10-08 11:36:15 +02:00
Sebastian Dröge
2c4bd2296a
videoconverter: Free the converter config in free()
2014-10-06 10:11:05 +03:00
Sebastian Dröge
7b428a8bcb
videoencoder: Stop storing if we received EOS
...
This was never reset when going from PAUSED->READY and resulted
in encoders being not reusable after EOS. They just rejected any
buffer because they received EOS in their previous life.
The flag wasn't used anywhere except for rejecting buffers after
EOS, and this is now handled by GstPad directly.
2014-10-04 23:09:19 +03:00
Aurélien Zanelli
9297fe9ba0
videoencoder: release frame in finish_frame when no output state is configured
...
Otherwise, frame is leaked.
https://bugzilla.gnome.org/show_bug.cgi?id=737706
2014-10-01 12:53:45 +03:00
Wim Taymans
b5f3e5261a
video-converter: add orc optimized matrix8 function
...
Add an ORC implementation of the matrix8 function.
Regenerate video-orc-dist.[ch]
2014-09-29 17:28:06 +02:00
Arun Raghavan
c47b005197
audio: Fix up a comment in GstAudioBaseSink
...
Rewrote the comment to not be PulseAudio-specific.
2014-09-29 19:46:32 +05:30
Rico Tzschichholz
c9f4ebf495
video: Make sure to link against libm
2014-09-27 19:09:08 +01:00
Arun Raghavan
324ebd19e3
audio: Trivial comment for unhandled MPEG-2 payloading case
...
The spec mentions a version of the MPEG-2 frame with a base frame and
extension frame. I don't have IEC 13818-3 to figure out what that is,
and don't see any references in search results, so it's a FIXME for now.
https://bugzilla.gnome.org/show_bug.cgi?id=736797
2014-09-27 10:40:27 +05:30
Arun Raghavan
2965b796bc
audio: Fixes for MPEG-2 LSF IEC61937 payloading
...
The low sample frequency case for MPEG-2 is <=12kHz (the 32kHz number
applies to MPEG-1).
https://bugzilla.gnome.org/show_bug.cgi?id=736797
2014-09-27 10:40:27 +05:30
Anuj Jaiswal
798ff6e561
audio: correct condition for MPEG case.
...
Signed-off-by: Anuj Jaiswal <anuj.jaiswal@samsung.com>
https://bugzilla.gnome.org/show_bug.cgi?id=736797
2014-09-27 10:40:27 +05:30
Wim Taymans
07d1d7ba38
video: improve YUV -> RGB conversion
...
Reorganize orc instructions to free up some registers.
We can reuse the ORC code to implement the generic AYUV->ARGB matrix.
2014-09-26 18:14:11 +02:00