Vivia Nikolaidou
4c4e1b580e
deinterlace: Better alternate support
...
Improve line offset halving based on whether this field is top or
bottom.
Also handle the buffer state the same as mixed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/866 >
2021-02-03 16:30:15 +02:00
Ignacio Casal Quinteiro
219b659320
deinterlace: force -DPREFIX on macos
...
This is due to a bug in meson where it will not detect properly
the compiler if the symbols need an undercore.
https://github.com/mesonbuild/meson/issues/5482
Fixes #821
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/845 >
2020-12-30 13:40:35 +01:00
Nirbheek Chauhan
552da8569b
deinterlace: Enable x86 assembly with nasm on MSVC
...
We need to remove x86inc.asm from the list of compiled assembly files
because it is not supposed to be compiled separately. It is directly
included by yadif.asm, and it exports no symbols.
The object file was getting ignored on all platforms except on msvc
where it was causing a linker hang when building with debugging
enabled because the object file had no debug symbols (or similar).
We've seen this before in FFmpeg too, which uses nasm:
https://gitlab.freedesktop.org/gstreamer/meson-ports/ffmpeg/-/merge_requests/46
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/825 >
2020-11-24 22:11:50 +05:30
Tim-Philipp Müller
31ff328727
meson: add update-orc-dist target
...
Add target to update backup orc -dist.[ch] files.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/662 >
2020-07-04 15:04:59 +01:00
Nirbheek Chauhan
c7f8c8d4ef
deinterlace: Disable nasm support on x32
...
The assembly assumes pointers are 64-bit, so just disable it.
Closes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/757
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/660 >
2020-07-02 07:53:14 +05:30
Nirbheek Chauhan
3fe4626e3c
deinterlace: Fix build on x32
...
Need to pass `-f elfx32` to nasm in that case.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/757
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/657 >
2020-07-01 19:43:41 +00:00
He Junyan
15fac84f63
deinterlace: Add the missing ORC_RESTRICT define.
...
ORC_RESTRICT may not be defined in yadif.c and cause build error.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/637 >
2020-06-21 20:11:06 +08:00
Seungha Yang
9122bfdfb7
meson: deinterlace: Check host cpu type for asm build
...
Add host cpu type check as we would enable asm only for x86_64
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/636 >
2020-06-19 20:28:14 +09:00
Vivia Nikolaidou
536ff4776f
deinterlace: Add yadif ASM optimisations
...
Measured to be about 3.4x faster than C
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/621 >
2020-06-16 12:53:25 +03:00
Vivia Nikolaidou
ef78014d15
deinterlace: Fix invalid read in yadif
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/621 >
2020-06-12 13:21:02 +03:00
Mathieu Duponchelle
f63299ff2f
plugins: uddate gst_type_mark_as_plugin_api() calls
2020-06-06 00:42:25 +02:00
Mathieu Duponchelle
37c619f995
plugins: Use gst_type_mark_as_plugin_api() for all non-element plugin types
2020-06-03 22:44:09 -04:00
Jan Schmidt
d8f0deadc3
deinterlace: Split out NULL checks in yadif
...
Separate out explicit NULL checks for fields we depend on so
that coverity can hopefully verify dependencies better.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/585 >
2020-05-09 03:09:03 +10:00
Jan Schmidt
1106eb16b6
deinterlace: Handle NV12/NV21 for the greedyl mode.
...
Don't fall back on the default interpolate_scanline function, which
blindly tries to copy from the next field, which can be NULL in
mixed progressive/interlaced streams
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/585 >
2020-05-09 03:07:33 +10:00
Vivia Nikolaidou
82dc670f1f
deinterlace: Support packed formats for YADIF
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/444 >
2020-05-06 17:08:06 +00:00
Vivia Nikolaidou
5fce46f5ef
deinterlace: Call the planar functions for the Y plane of nv12/nv21
...
In some algorithms (like yadif), the Y plane has to be handled different
than the UV plane. Therefore, the planar_y functions are now called for
the Y plane, and the nv12/nv21 functions are handling only the UV/VU
planes respectively.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/444 >
2020-05-06 17:08:06 +00:00
Jan Schmidt
e9ee7ab0af
deinterlace: Add C implementation of YADIF
...
Import the YADIF deinterlacer from ffmpeg and modify
it to match the simple deinterlace scanlines structure.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/444 >
2020-05-06 17:08:06 +00:00
Jan Schmidt
1c1bc56a3b
deinterlace: Allow for 5 fields for interpolation
...
Add an extra field to the simple deinterlace implementation,
so that methods can potentially use 5 fields - the current
field, and 2 before and 2 after.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/444 >
2020-05-06 17:08:06 +00:00
Jan Schmidt
5468988223
deinterlace: Force renegotiation when changing mode
...
Switching the deinterlacing mode on-the-fly from disabled to
auto used to work, but was broken by commit #1f21747c some
years ago.
Force re-negotiation with downstream when the mode or
fields properties are changed, otherwise deinterlace
never switches out of the passthrough mode.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/584 >
2020-05-07 01:31:59 +10:00
Edward Hervey
518d192dc5
deinterlace: Don't leak frame in error case
...
CID #1455494
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/581 >
2020-05-05 17:30:48 +02:00
Guillaume Desmottes
d43ad6e029
deinterlace: add alternate support
...
In this mode each field is carried using its own buffer.
Allow deinterlace to negotiate caps with the Interlaced feature and
adjust the algorithm fetching lines.
Fix #620
2020-03-03 17:15:00 +00:00
Guillaume Desmottes
b3d96e06c6
deinterlace: add wrapper to get field lines from history
...
No semantic change so far, will be used to implement alternate support.
2020-03-03 17:15:00 +00:00
Guillaume Desmottes
f0eb1419f6
deinterlace: stop checking line index boundaries
...
The LINE2() macro already prevents out of bound indexes using CLAMP_HI()
and CLAMP_LOW().
2020-03-03 17:15:00 +00:00
Guillaume Desmottes
cca8008779
deinterlace: fix video info on output frames
...
Output frames used to have their interlace mode set to the same one as
the input. This breaks their field and comp heights when deinterlacing
an alternate stream.
2020-03-03 17:15:00 +00:00
Guillaume Desmottes
6dde6038cc
deinterlace: use output caps to compute buffer size
...
In interlace-mode=alternate the input buffers have half the size of the
output ones as each field has its own buffer.
2020-03-03 17:15:00 +00:00
Tim-Philipp Müller
c9a47c0c8d
Remove autotools build system
2019-10-14 11:04:18 +01:00
Aaron Boxer
46989dca96
documentation: fix a number of typos
2019-10-05 22:38:11 +00:00
Thibault Saunier
af01988534
doc: Port documentation to hotdoc
2019-05-13 11:34:56 -04:00
Thibault Saunier
0a6a62aa76
docs: Port all docstring to gtk-doc markdown
2019-05-13 10:24:40 -04:00
Tim-Philipp Müller
cac9aab107
meson: Replace empty configuration_data() with copy keyword
...
Use 'copy' keyword to avoid meson warning message.
Note that 'copy' keyword in configure_file() is available
since meson 0.47.0
https://bugzilla.gnome.org/show_bug.cgi?id=797298
2018-10-17 14:15:33 +01:00
Sebastian Dröge
abf2af1a66
deinterlace: Reset frame/tc/caption pointer to NULL after moving it in the history
2018-08-31 14:26:32 +03:00
Vivia Nikolaidou
f2c2560db2
deinterlace: Closed caption pass-through
...
Pass through closed caption data when deinterlacing. When two
deinterlaced frames are created for the same interlaced frame (e.g.
fields=all), the second of the two frames will have no closed caption
data.
Also fixed memory leaks related to timecode meta pass-through.
https://bugzilla.gnome.org/show_bug.cgi?id=796876
2018-07-27 14:26:49 +03:00
Vivia Nikolaidou
ceac1b51b1
deinterlace: Timecode pass-through
...
When it is trivial to pass-through a timecode, by only removing the
"interlaced" flag, do pass-through. Otherwise, double the fps_n and
adjust the "frames" field.
https://bugzilla.gnome.org/show_bug.cgi?id=796818
2018-07-17 16:29:37 +03:00
Xavier Claessens
edd9c8f6b8
Meson: Generate pc file for all plugins in good
...
https://bugzilla.gnome.org/show_bug.cgi?id=794568
2018-04-25 11:07:06 +01:00
Edward Hervey
8239c67799
Update ORC files
2018-02-09 09:00:46 +01:00
Deepak Srivastava
49ed67c4f2
deinterlace: Fixed memory leak in error code path
...
https://bugzilla.gnome.org/show_bug.cgi?id=788041
2017-09-22 17:25:50 +03:00
Nicolas Dufresne
b68d936ae0
Remove plugin specific static build option
...
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 14:41:19 -04:00
Sebastian Dröge
858d9f9706
deinterlace: Mark pad as needing reconfiguration again if reconfiguration failed
...
And consider negotiation failures on flushing pads as FLUSHING, not as
NOT_NEGOTIATED.
https://bugzilla.gnome.org/show_bug.cgi?id=774623
2016-11-18 12:04:45 +02:00
Sebastian Dröge
dba90631bc
deinterlace: Fix field ordering for reverse playback
...
And actually calculate the field duration instead of a frame duration so
that we can properly timestamp output frames in fields=all mode.
This is probably still broken for reverse playback in telecine mode.
2016-09-12 20:09:23 +02:00
Nirbheek Chauhan
b09f478e80
Add support for Meson as alternative/parallel build system
...
https://github.com/mesonbuild/meson
With contributions from:
Tim-Philipp Müller <tim@centricular.com>
Jussi Pakkanen <jpakkane@gmail.com> (original port)
Highlights of the features provided are:
* Faster builds on Linux (~40-50% faster)
* The ability to build with MSVC on Windows
* Generate Visual Studio project files
* Generate XCode project files
* Much faster builds on Windows (on-par with Linux)
* Seriously fast configure and building on embedded
... and many more. For more details see:
http://blog.nirbheek.in/2016/05/gstreamer-and-meson-new-hope.html
http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html
Building with Meson should work on both Linux and Windows, but may
need a few more tweaks on other operating systems.
2016-08-20 11:21:12 +01:00
Edward Hervey
1d2db2ba4f
deinterlace: Ensure DISCONT flag is properly propagated
...
The output of deinterlace at startup, or when receiving a new DISCONT
buffer, should have the DISCONT flag set on the first buffer.
2016-06-02 11:35:27 +03:00
Guillaume Desmottes
47a358783e
deinterlace: fix caps leak
...
The caps returned by gst_pad_get_current_caps() was never unreffed when
not early returning.
Fix a leak with the elements/deinterlace test.
https://bugzilla.gnome.org/show_bug.cgi?id=766558
2016-05-20 09:36:09 +03:00
Tim-Philipp Müller
4ba6214d3a
deinterlace: fix description of linear interlacing method
2016-04-22 15:48:08 +01:00
Sebastian Dröge
1f21747cc5
deinterlace: Drain the field history if the caps are changing
...
Otherwise we will use fields from the old caps with everything set up for the
new caps, causing crashes and worse.
Also don't do anything if the same caps are set twice.
2016-04-12 15:01:28 +03:00
Sebastian Dröge
0c84b1b104
deinterlace: Instead of confusing crashes later, just error out immediately if mapping a video frame fails
...
This probably still crashes but at least we get some hint about what goes
wrong instead of random behaviour later.
2016-04-12 15:00:31 +03:00
Vivia Nikolaidou
dc2aafb3d4
deinterlace: Added "auto" fields mode
...
The "auto" fields mode will detect the upstream and downstream framerates and
will decide to deinterlace all or only top fields.
https://bugzilla.gnome.org/show_bug.cgi?id=763869
2016-03-24 14:34:11 +02:00
Vineeth TM
1071309870
good: use new gst_element_class_add_static_pad_template()
...
https://bugzilla.gnome.org/show_bug.cgi?id=763076
2016-03-24 14:32:20 +02:00
Vivia Nikolaidou
5d8e7598ac
deinterlace: Fix typo to not change the input caps but our filtered caps
...
Changing the input caps and not using them anymore afterwards is useless, and
it breaks negotiation in pipelines like:
gst-launch-1.0 videotestsrc ! "video/x-raw,framerate=25/1,interlace-mode=interleaved" !
deinterlace fields=all ! "video/x-raw,framerate=50/1,interlace-mode=progressive" !
fakesink
2016-03-17 21:11:36 +02:00
Sebastian Dröge
49f4631909
gst: Handle gst_pad_get_current_caps() returning NULL gracefully
2016-02-23 18:27:47 +02:00
Luis de Bethencourt
3738ce8ba1
deinterlace: remove check for impossible condition
...
Commit bd27a1f30b
added a few error handling
memory management checks. These check srccaps to see if it needs to be
unreferenced before returning, in the case of invalid_caps this goto jump
always happens before srccaps is set, so it will always be NULL in this
error label.
CID #1352035
2016-02-08 23:48:28 +00:00