Vivia Nikolaidou
cb55d30b3c
interlace: Specify interlace-modes in the sink pad template
...
Especially specify the field-order in the interleaved mode. Otherwise it
might cause the negotiation to fail, because
GST_PAD_SET_ACCEPT_INTERSECT is not set on the sinkpad, and the
field-order is missing in the sink template but can be present in the
outside caps.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2062 >
2021-03-08 21:01:50 +02:00
Tim-Philipp Müller
766bd655fc
interlace: add more formats, esp 10-bit, 12-bit and 16-bit ones
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2054 >
2021-03-03 18:34:26 +00:00
Vivia Nikolaidou
290d0432c3
interlace: Make caps writable before modifying them
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1373 >
2020-06-25 16:05:39 +03:00
Vivia Nikolaidou
482d2c9459
interlace: Switch field-pattern on the fly
...
The frame rate interlace uses changes when we change field-pattern, so
we need to issue a reconfigure event.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1364 >
2020-06-24 17:44:46 +00:00
Vivia Nikolaidou
1eeaee24d4
interlace: Re-indentation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1349 >
2020-06-24 11:31:15 +03:00
Vivia Nikolaidou
b53c1363f2
interlace: Don't change field-pattern on PAUSED or PLAYING state
...
It would otherwise change the caps the element produces and cause the
element to misbehave
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1349 >
2020-06-24 11:31:15 +03:00
Vivia Nikolaidou
7c7ac7a0dc
interlace: Don't fail negotiation if capsfilters decide framerate
...
Try to negotiate if the framerates on either sides of the interlace are
decided using capsfilters and the framerates are correct. Otherwise the
following pipelines would fail to negotiate:
gst-launch-1.0 videotestsrc !
video/x-raw,framerate=24/1,interlace-mode=progressive ! interlace
field-pattern=2 ! video/x-raw,framerate =30/1 ! fakesink
gst-launch-1.0 videotestsrc !
video/x-raw,framerate=60/1,interlace-mode=progressive ! interlace
field-pattern=0 ! video/x-raw,framerate=30/1 ! fakesink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1349 >
2020-06-24 11:15:48 +03:00
Vivia Nikolaidou
581d76b41a
interlace: Restrict passthrough conditions
...
Don't do passthrough if interleave-mode=mixed or if we have one of the
telecine modes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1349 >
2020-06-24 11:15:48 +03:00
Vivia Nikolaidou
76ce67e70b
interlace: Add field switching mode for 2:2 field pattern
...
In the 2:2 field pattern, interlace can switch from bottom-field-first
to top-field-first.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1349 >
2020-06-24 11:15:48 +03:00
Vivia Nikolaidou
ba500b816a
interlace: Only half the framerate for 1:1 field pattern
...
Keep the framerate for 2:2 field pattern, and completely remove it from
the caps for all others. Otherwise, negotiation will fail if caps on
both sides of the element specify a framerate.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1349 >
2020-06-24 11:15:48 +03:00
Vivia Nikolaidou
0c63c8d1f5
interlace: Add FIXME comment about false passthrough bug
...
If interlace-mode is missing from upstream caps, we can falsely do
passthrough when in fact we'd have to switch fields.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1349 >
2020-06-24 11:15:48 +03:00
Vivia Nikolaidou
969e647925
interlace: Fix crash with empty caps in setcaps
...
If the src_peer_caps are EMPTY (e.g. negotiation failed somewhere), the
assertion inside gst_video_info_from_caps would fail and the whole
pipeline would crash. Check for gst_caps_is_empty before
gst_video_info_from_caps and gracefully fail if it's empty.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1333 >
2020-06-11 12:06:17 +00:00
Mathieu Duponchelle
a048ce81d4
plugins: uddate gst_type_mark_as_plugin_api() calls
2020-06-06 00:40:42 +02:00
Sebastian Dröge
74f2f733be
plugins: Use gst_type_mark_as_plugin_api() for all non-element plugin types
2020-06-04 13:33:16 -04:00
Guillaume Desmottes
c3a9d2dc64
interlace: add alternate support
...
Allow downstream elements to negotiate the alternate interlace mode,
splitting each input buffer in two fields, each having their own buffer.
2020-03-24 09:57:53 +01:00
Guillaume Desmottes
2db7c4e22c
interlace: factor out interlace_mode_from_pattern()
2020-03-24 09:53:43 +01:00
Guillaume Desmottes
e755c45863
interlace: factor out gst_interlace_push_buffer()
2020-03-24 09:53:43 +01:00
Guillaume Desmottes
5bfbddf859
interlace: factor out gst_interlace_decorate_buffer_ts()
2020-03-24 09:53:43 +01:00
Guillaume Desmottes
eb914c127d
interlace: rename copy_field()
...
It is actually copying both fields (to a single frame/buffer).
2020-03-24 09:53:43 +01:00
Sebastian Dröge
812d593c4e
interlace: Store unsigned integers in unsigned integer types
...
And add some assertions to guard against overflows and out of bounds
reads.
2019-12-03 21:12:26 +00:00
Sebastian Dröge
c67146b27a
interlace: Increment phase_index before checking if we're at the end of the phase
...
Incrementing it afterwards will always have to phase_index >= 1 and we
will never be at the beginning (0) of the phase again, and thus never
reset timestamp tracking accordingly.
This was broken in bea13ef43b
in 2010, and
causes interlace to run into integer overflows after 2^31 frames or
about 5 hours at 29.97fps. Due to usage of wrong types for the integers
this then causes negative numbers to be used in calculations and all
calculations spectacularly fail, leading to all following buffers to
have the timestamp of the first buffer minus one nanosecond.
2019-12-03 21:12:26 +00:00
Thibault Saunier
78022a6e0c
docs: Port all docstring to gtk-doc markdown
2017-04-12 12:57:57 -03:00
Vivia Nikolaidou
e27fc343cc
interlace: Writing field-order into the src caps
...
Writing top-field-first vs bottom-field-first into the src caps
https://bugzilla.gnome.org/show_bug.cgi?id=775409
2016-11-30 18:50:41 +02:00
Vivia Nikolaidou
e6c3446d01
interlace: Allow interlaced sink caps, do passthrough
...
Allow interlace to receive already interlaced content, if compatible with its
configuration. In that case, it will just do passthrough.
https://bugzilla.gnome.org/show_bug.cgi?id=764036
2016-04-03 11:29:48 +03:00
Vineeth TM
8cdfb13658
bad: use new gst_element_class_add_static_pad_template()
...
https://bugzilla.gnome.org/show_bug.cgi?id=763081
2016-03-24 14:56:51 +02:00
Vincent Penquerc'h
5b786ce5b7
interlace: fix negotiation with fixed framerate downstream
...
https://bugzilla.gnome.org/show_bug.cgi?id=762924
2016-03-24 14:54:36 +02:00
Vineeth TM
7c42ba97d7
plugins-bad: Fix example pipelines
...
rename gst-launch --> gst-launch-1.0
replace old elements with new elements(ffmpegcolorspace -> videoconvert, ffenc_** -> avenc_**)
fix caps in examples
https://bugzilla.gnome.org/show_bug.cgi?id=759432
2015-12-15 10:30:49 +00:00
Sebastian Rasmussen
7731f3b36e
interlace: fix caps refcounting
...
tcaps was unrefed when it shouldn't have been unrefed
in some cases.
https://bugzilla.gnome.org/show_bug.cgi?id=734531
2014-08-10 12:04:38 +01:00
Tim-Philipp Müller
580a94d18b
interlace: fix negotiation if filter caps are passed to query_caps
...
Make videotestsrc ! interlace ! $anything work again. Problem
was that upstream filter caps were passed which contained
interlace-mode=progressive, which doesn't intersect too well
with interlace's source pad template caps, leading to
not-negotiated errors.
2013-07-22 17:32:50 +01:00
Wim Taymans
f468979dea
interlaced: set both DTS and PTS
...
Handle both dts and pts on output buffers.
2013-03-25 10:10:28 +01:00
David Schleef
65927acc45
interlace: fix negotiation for true interlaced modes
2013-02-06 15:51:01 -08:00
Robert Swain
4513a48e8a
interlace: Add support for more telecine patterns
2013-02-05 13:40:39 +01:00
Robert Swain
0fc9b0b289
interlace: Add more verbose hints about field patterns
2013-02-05 13:40:32 +01:00
Tim-Philipp Müller
9e1b75fda3
Fix FSF address
...
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:09:59 +00:00
Tim-Philipp Müller
32ba17cd0f
Use gst_element_class_set_static_metadata()
...
where possible. Avoids some string copies. Also re-indent
some stuff. Also some indent fixes here and there.
2012-10-17 17:46:34 +01:00
Mark Nauwelaerts
578861abea
replace gst_element_class_set_details_simple with gst_element_class_set_metadata
2012-09-14 17:27:49 +02:00
Wim Taymans
0d8f8a5134
rename some caps and elements in examples
2012-09-14 16:29:23 +02:00
Robert Swain
305db3ef56
interlace: Use buffer flags and caps correctly
...
This requires a recent commit to -base that adds an INTERLACED buffer
flag.
2012-07-20 23:29:54 +02:00
Wim Taymans
c0cd1c43ab
interlace: port to 0.11
2012-06-26 16:39:56 +02:00
Sebastian Dröge
cda192b3b7
gst: Update for GST_PLUGIN_DEFINE() API changes
2012-04-05 18:02:56 +02:00
Sebastian Dröge
a01a4ea2d3
Merge branch 'master' into 0.11
...
Conflicts:
gst/mpegtsdemux/tsdemux.c
gst/videoparsers/gsth264parse.c
tests/check/elements/camerabin2.c
2012-01-10 15:50:37 +01:00
Vincent Penquerc'h
6cf84a0348
interlace: fix caps leaks
2012-01-10 13:25:27 +00:00
Vincent Penquerc'h
5ea1601dd9
interlace: fix ref leak
2012-01-10 13:25:27 +00:00
Vincent Penquerc'h
1c25aab906
interlace: avoid dividing by zero on unkbown framerate
...
If the framerate is unknown, we cannot generate meaningful
buffer timestamps/durations, so set them to _NONE instead of
calculating something wrong and dividing by 0.
2012-01-06 10:54:11 +00:00
Vincent Penquerc'h
7521b597f4
various: fix pad template ref leaks
...
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:08:27 +00:00
Robert Swain
0de362f248
interlace: Fix buffer timestamp and duration
...
The field rate is twice the frame rate of the src pad and so the duration of
one output buffer is src_fps_d / (2 * src_fps_n).
2010-11-24 12:09:16 +01:00
Robert Swain
341b0c2d62
interlace: Rename pattern property to field-pattern
...
This is mostly for clarity of what the property means and, I believe, makes the
pattern-offset property more comprehensible.
2010-11-24 12:09:16 +01:00
Robert Swain
bea13ef43b
interlace: Add pattern offset property
...
This property allows one to start at any point within the field pattern after
a discontinuity (whenever gst_interlace_reset () is called). Thus with the
2:3:3:2 pattern, for example, one can start at offset 2 and achieve 3:2:2:3
or offset 1 and achieve 3:3:2:2.
2010-11-24 12:09:16 +01:00
David Schleef
8dfcc11bcb
interlace: Add allow-rff property. Fix timestamping
2010-09-18 15:05:26 -07:00
David Schleef
fd3d269b8d
interlace: merge telecine into normal operation
2010-09-18 14:58:04 -07:00