Robert Swain
9be159b32c
deinterlace: Implement field history flushing
...
In a number of cases it is necessary to flush the field history by
performing 'degraded' deinterlacing - that is, using the user-chosen
method for as many fields as possible, then using vfir for as long as
there are >= 2 fields remaining in the history, then using linear for
the last field.
This should avoid losing fields being kept for history for example at
EOS.
This may address part of #633294
2010-11-12 10:40:51 +00:00
Robert Swain
5a56274cba
deinterlace: Refactor chain function
...
This is needed to be able to output a frame from outside the chain
function, i.e. in the following commit that adds flushing of the field
history.
2010-11-12 10:40:48 +00:00
Robert Swain
6a6f90e745
deinterlace: Fix required fields logic
...
Both history_count and fields_required count from 1. As per the while loop
condition that follows this code, to perform the deinterlacing method, we need
history_count >= fields_required fields in the history. Therefore if we have
history_count < fields_required (not fields_required + 1), we need more fields.
2010-10-06 15:05:36 +02:00
David Schleef
738e092d4e
deinterlace: Document methods with bad quality
2010-09-05 22:23:58 -07:00
David Schleef
4eee45debb
deinterlace: use separate buffer metadata for fields
...
Call gst_buffer_make_metadata_writable() on buffers that are
duplicated into fields. Fixes #627689 .
2010-08-23 02:51:24 -07:00
Sebastian Dröge
a11b271bf4
deinterlace: Call orc_init() before trying to get target flags
2010-06-14 15:38:02 +02:00
David Schleef
f14972bf20
deinterlace: convert from liboil to orc
2010-06-08 17:25:34 -07:00
Sebastian Dröge
d09ff4124e
deinterlace: Don't reconfigure the caps when changing properties
...
Fixes bug #619848 .
2010-06-01 11:21:30 +02:00
Sebastian Dröge
a9ed56b1ad
deinterlace: Add support for UYVY
2010-05-07 20:41:31 +02:00
Sebastian Dröge
9d6e4a7ac8
deinterlace: Add support for all common RGB formats
2010-05-05 17:39:32 +02:00
Sebastian Dröge
848f071ef4
deinterlace: Add support for AYUV
2010-05-05 16:06:51 +02:00
Sebastian Dröge
2ac1f1c7ee
deinterlace: Make automatic detection of interlacing the default
...
Previously "force deinterlacing" was the default, which is a not very
sensible default for the normal use case where deinterlace should act
in passthrough mode unless interlaced content is present.
2010-04-30 22:17:12 +02:00
Sebastian Dröge
61217b521c
deinterlace: Improve segment handling a bit
2010-04-29 19:28:24 +02:00
Sebastian Dröge
05a2732851
deinterlace: Order caps by amount of contained information
2010-04-29 19:28:24 +02:00
Sebastian Dröge
cb789617f9
deinterlace: Properly set interlaced field in getcaps
2010-04-29 19:28:24 +02:00
Sebastian Dröge
03a8379e20
deinterlace: Add support for Y444, Y42B, I420, YV12 and Y41B
...
The vfir method supports them and will be used until something else
supports it.
2010-04-29 19:28:23 +02:00
Sebastian Dröge
600f82fbfe
deinterlace: Move deinterlacing methods to their own file
2010-04-29 19:28:23 +02:00
Sebastian Dröge
a405d5a4f1
deinterlace: Simplify passthrough mode detection
2010-04-29 19:28:23 +02:00
Sebastian Dröge
3dc7215492
deinterlace: Refactor deinterlacing as preparation for supporting more color formats
2010-04-29 19:28:23 +02:00
David Schleef
289f69eb84
deinterlace: Only check interlaced flag in sink caps
...
Fixes #615460 .
2010-04-11 13:15:32 -07:00
Stefan Kost
e7a5ff40bd
docs: trim sections file more
...
Rename some defines and move some itesm to *.c files. Add more items to internal
subsection.
2010-04-08 12:14:07 +03:00
Tim-Philipp Müller
5908c40405
deinterlace: fix typo in mode enum description
2009-11-20 10:30:00 +00:00
Jan Schmidt
baa79ffecb
Use new still-frame API from gst-plugins-base
2009-11-18 03:09:06 +00:00
Tim-Philipp Müller
65a1db99eb
deinterlace: remove pointless call to gst_element_no_more_pads()
2009-11-02 08:45:53 +00:00
Sebastian Dröge
810c60a6f3
deinterlace: Remove the interlaced field from the output caps if deinterlacing is enabled
2009-06-23 17:52:29 +02:00
Sebastian Dröge
ceea8dc15f
deinterlace: Implement upstream negotation
2009-06-11 10:06:04 +02:00
Sebastian Dröge
cd33adbd96
deinterlace: Improve debugging and clean up some code
2009-06-11 10:06:04 +02:00
Sebastian Dröge
101123a75d
deinterlace: Clip buffers to the current segment if possible
2009-06-11 10:06:04 +02:00
Sebastian Dröge
4710a91cbf
deinterlace: Clean up includes and clean up order of instance struct fields
2009-06-11 10:06:03 +02:00
Sebastian Dröge
f297e37b5e
deinterlace: Fix QoS calculations
...
The diff is a signed integer, not an unsigned one of course.
In modes other than GST_DEINTERLACE_ALL every frame has twice the
duration of the field duration.
2009-06-10 09:57:31 +02:00
Sebastian Dröge
d0a5c0f3e3
deinterlace: Implement basic QoS
...
This change is based on Tim's QoS implementation
for jpegdec.
2009-06-09 19:56:53 +02:00
Sebastian Dröge
049722b680
deinterlace: Directly proxy events/queries to the peer pads
...
This removes some overhead introduced by the default handlers
that need to iterate over the other pads.
2009-06-09 19:56:53 +02:00
Sebastian Dröge
29111fa1f8
deinterlace: First try to handle DVD still frames correctly
...
This helps a bit with bug #582740 but still doesn't make it work.
2009-06-04 20:35:35 +02:00
Sebastian Dröge
ad9b02b881
deinterlace: If the upstream max latency is unbound return unbound max latency
...
Fixes bug #582661 .
2009-05-15 15:14:52 +02:00
Sebastian Dröge
43445935e8
Moved 'deinterlace2' from -bad to -good
...
And rename it to deinterlace.
2009-05-13 10:48:45 +02:00