Robert Swain
6402556157
deinterlace: Port greedyl to GstDeinterlaceSimpleMethod
...
The main goal of this change is to reuse the complex but now neatly
written scanline pointer calculation code from the simple methods.
2011-02-23 13:09:19 +01:00
Robert Swain
6b26017ae7
deinterlace: small clean-ups
...
Improve debug output by printing the buffer pointer when
popping a buffer and simplify code to use scanlines.bottom_field
as appropriate.
https://bugzilla.gnome.org/show_bug.cgi?id=642691
2011-02-21 20:14:19 +00:00
Robert Swain
32f757786b
deinterlace: fix assigned method_id when using fallback
...
https://bugzilla.gnome.org/show_bug.cgi?id=642691
2011-02-21 20:14:09 +00:00
Thiago Santos
cb527623a3
deinterlace: Handle image caps without asserting
...
Images might have framerate=0/1 in the caps, which caused an
assertion on deinterlace. I don't know of interlaced image formats
but deinterlace might be hardcoded on some generic pipelines and
it shouldn't assert.
The fix was to set field_duration to 0 if the input has a framerate
with a 0 numerator.
This patch also adds checks for this situation on the unit tests.
https://bugzilla.gnome.org/show_bug.cgi?id=641400
2011-02-04 09:38:35 -03:00
Tim-Philipp Müller
ede0635d45
deinterlace: simplify template caps
...
We can merge all the YUV variants into one single structure.
2011-01-31 13:44:45 +00:00
David Schleef
c2b343cd76
deinterlace: rewrite how neighboring scan lines are calculated
...
Old code was difficult to understand exactly how the neighboring
scan lines are calculated, and it appeared that some were off by
+2 or -2, depending on the field flag. Fixes #639321 .
2011-01-18 11:04:08 +01:00
David Schleef
97d74f293c
deinterlace: Change the default to linear
...
The previous default, greedyh, takes 4 times as long as MPEG-2
video decoding, and is unlikely fast enough on any current CPU
to play 1080i video in real-time. greedyl isn't much faster.
linear was chosen over vfir, since the quality advantage of vfir
is minimal compared to the occasional visual artifacts and slower
processing.
2011-01-05 17:50:09 -08:00
Sebastian Dröge
76ad0ee09b
deinterlace: Change classification to Filter/Effect/Video/Deinterlace
2010-12-16 10:04:19 +01:00
Jan Schmidt
9941d3f0a2
deinterlace: Avoid infinite loop draining frames
...
When the pipeline is flushed just as we're draining history,
don't loop infinitely, just discard the history and abort.
2010-12-12 10:15:13 +11:00
David Schleef
b27d93a84a
deinterlace: analyse RFF fields in correct order
...
Code was repeating the second field, not the first.
Fixes : #636179 .
2010-11-30 17:28:00 -08:00
Tim-Philipp Müller
baacc9952a
deinterlace: fix reference leak
2010-11-14 00:18:16 +00:00
Jan Schmidt
89a24bd36f
deinterlace: Flush QoS and history before applying segment
...
When handling newsegment, flush out the buffer history in the
existing segment, not the new one. Fixes playback in some DVD
cases.
Partially fixes #633294
2010-11-12 13:21:09 +00:00
Tim-Philipp Müller
5adbc1e4c0
deinterlace: improve event logging
2010-11-12 12:20:16 +00:00
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
David Schleef
e9d4710cc8
Update generated orc code
2010-10-15 14:02:57 -07: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
9071cc8748
deinterlace: initialize all deinterlace class members
...
This fixes UYVY deinterlacing.
2010-09-05 22:23:58 -07:00
David Schleef
6143a60bdb
deinterlace: Fix greedyl Orc implementation
...
To agree with the previous C/asm code.
2010-09-05 18:42:59 -07:00
David Schleef
6584c75afe
deinterlace: Update disted Orc files
2010-09-04 12:46:31 -07:00
David Schleef
f35d546c71
deinterlace: remove assembly code in favor of orc
2010-09-04 12:39:11 -07:00
David Schleef
02196850dd
deinterlace: implement greedy in Orc
2010-09-04 12:39:11 -07:00
David Schleef
294d5c48da
update disted Orc files
2010-09-04 11:43:21 -07:00
Tim-Philipp Müller
b26897dd84
Release 0.10.25
2010-09-02 23:44:19 +01: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
9e981f6c2d
0.10.24.4 pre-release
2010-08-21 21:41:36 +02:00
Tim-Philipp Müller
240dec038c
gst: update orc files
2010-06-26 18:41:49 +01: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
9ff3ef0c92
deinterlace: orcify some deinterlacing methods
2010-06-08 17:25:34 -07:00
David Schleef
f14972bf20
deinterlace: convert from liboil to orc
2010-06-08 17:25:34 -07:00
Mark Nauwelaerts
69d47ef4a0
deinterlace: avoid gtk-doc confusing comments
2010-06-01 15:56:25 +02: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
dc6dd62824
deinterlace: Add MMX/3DNow implementations of greedyh for UYVY
2010-06-01 11:21:29 +02:00
Sebastian Dröge
2096cf6e55
deinterlace: Fix UYVY implementation of greedyh to be actually used
2010-06-01 11:21:29 +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
eeb5a23483
deinterlace: Add planar YUV support to all other simple methods
2010-04-29 19:28:24 +02:00
Sebastian Dröge
4ca4ac3f03
deinterlace: Add planar YUV support to greedyh method
2010-04-29 19:28:24 +02:00
Sebastian Dröge
bdb9675519
deinterlace: Add support for planar YUV formats in greedyl method
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
a626b19490
deinterlace: Define deinterlace method base classes as abstract types
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
Benjamin Otte
1055aaa9cb
Add -Wredundant-decls warning flag
...
Also fix compile issues
2010-03-17 19:35:10 +01:00
Benjamin Otte
3342b1679e
Add -Wmissing-declarations -Wmissing-prototypes warning flags
...
And fix all the warnings.
2010-03-17 18:23:28 +01:00
Sebastian Dröge
2261bd8346
deinterlace: Fix license and copyright headers
2010-01-18 17:44:17 +01: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
Jan Schmidt
1636bb0800
deinterlace: Pull in CFLAGS and LIBS flags from -base before core before system.
2009-11-04 15:59:49 +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
20668a0782
deinterlace: Copy the correct line from correct place in the history
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
Brian Cameron
09fbeee42d
deinterlace: Fix spurious colons in asm code
...
Fixes #584174 .
Signed-off-by: David Schleef <ds@schleef.org>
2009-06-01 12:01:28 -07: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