Commit graph

101 commits

Author SHA1 Message Date
Tim-Philipp Müller
f18b1f7e80 deinterlace: fix on-the-fly changing of "mode" and "fields" properties
We call setcaps() to reconfigure ourselves, but we need to pass
the current *sink* caps, not the source caps then. Also fix a
caps leak.

https://bugzilla.gnome.org/show_bug.cgi?id=641599
2013-07-22 18:00:16 +01:00
Sebastian Dröge
ecc6c607ff deinterlace: The return value of gst_pad_set_caps() is not relevant anymore
Caps can fail to be set because the pad is not linked yet for example.
2013-05-22 17:34:07 +02:00
Sebastian Dröge
5c8bb90262 deinterlace: Improve handling of min/max buffer numbers of the buffer pool 2013-05-14 09:45:12 +02:00
Matej Knopp
30c00f4fb7 deinterlace: set caps for buffer pool config 2013-05-14 09:38:24 +02:00
Matej Knopp
67c2219687 deinterlace: force deinterlacing in "interlaced" mode
https://bugzilla.gnome.org/show_bug.cgi?id=697467
2013-04-07 20:48:21 +01:00
Kishore Arepalli
288e05c99d deinterlace: fix infinite loop on EOS with non-default methods or fields
Fixes problem of infinite loop in gst_deinterlace_reset_history.
Last field in the history was never deinterlaced because idx becomes negative.

Happens e.g. with method=scalerbob fields=bottom or
method=greedyl fields=top

https://bugzilla.gnome.org/show_bug.cgi?id=695644
https://bugzilla.gnome.org/show_bug.cgi?id=693173
2013-03-17 14:47:26 +00:00
Thijs Vermeir
df88341ffb deinterlace: use appropriate printf format for gsize 2012-12-18 16:02:09 +01:00
Wim Taymans
abd7e33db6 deinterlace: add support for strides
Implement stride support correctly by taking it from the GstVideoFrame.
Propose a bufferpool upstream when not operating in passthrough.
2012-12-11 13:00:46 +01:00
Tim-Philipp Müller
230cf41cc9 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:07:18 +00:00
Robert Swain
03e5376827 deinterlace: Add some useful debug logging 2012-09-25 17:05:37 +02:00
Robert Swain
33dd81569f deinterlace: Fix telecine
This only affects behaviour in telecine cases with pattern locking
enabled. The default case should be untouched.

This works with the output from fieldanalysis at least, but the field
order looks swapped for telecine mixed buffers with the
David_slides_Schleef clip.
2012-09-25 17:04:54 +02:00
Robert Swain
480b894642 deinterlace: Remove incorrect logic
I don't understand why these lines were added, they don't make sense to
me now and both David and I agree that removing them moves closer to
related logic being correct, therefore, they're being removed.

I've tested a few progressive, interlaced and telecine clips and they
all behave properly timestamp-wise and visually after these changes.
2012-09-19 00:39:01 +02:00
Robert Swain
a35a931555 deinterlace: Fix field duration
The frame rate fraction is correctly adjusted in the cases preceding the
field duration calculation and so the factor of 2 is incorrect.
2012-09-19 00:17:49 +02:00
Jan Schmidt
a27deda053 deinterlace: Don't treat every custom-downstream event as EOS
Don't fall through to the EOS handling after receiving a
custom-downstream event.
2012-09-12 12:23:08 -07:00
Wim Taymans
1c64a91a50 deinterlace: improve framerate transform
Handle G_MAXINT in the framerates better. If we cannot double or divide the
framerate, clamp to the smallest/largest possible value we can express instead
of failing.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683861
2012-09-12 13:28:07 +02:00
Wim Taymans
6d9f9bf11a deinterlace: small cleanup 2012-09-12 13:17:54 +02:00
Wim Taymans
ecaa2624d3 deinterlace: remove redundant _set_allocation call 2012-09-06 17:09:20 +02:00
Mark Nauwelaerts
1ce09d7ef9 deinterlace: plug some leaks 2012-09-06 17:05:49 +02:00
Wim Taymans
510482b01a deinterlace: reuse core function for GCD 2012-09-06 16:52:18 +02:00
Mark Nauwelaerts
9d4579b38a deinterlace: support filter in getcaps 2012-09-06 16:31:17 +02:00
Mark Nauwelaerts
a4458f5f74 deinterlace: do not leak getcaps result 2012-09-06 16:31:17 +02:00
Wim Taymans
45e5ec29ac deinterlace: add support for bufferpool
Add bufferpool support to avoid a memcpy in the videosink when actively
interlacing.
Remove some commented obsolete code.
2012-09-06 16:25:05 +02:00
Wim Taymans
f59fb16f58 deinterlace: proxy allocation query in passthrough
We can let the allocation query pass when we are operating in passthrough mode.
2012-09-06 13:38:52 +02:00
Wim Taymans
4efdbc97a5 deinterlace: use default event functions
instead of blindly forwarding unknown events.
2012-09-06 13:23:46 +02:00
Wim Taymans
a557282aaa deinterlace: small cleanups 2012-09-06 13:23:30 +02:00
Wim Taymans
f1ef3b4983 deinterlace: call default query handlers
Call the default query handler instead of forwarding the query blindly. Fixes
issues of strides because of proxying the allocation query wrongly.
2012-09-06 12:56:30 +02:00
Tim-Philipp Müller
4bb52bbadf docs: gst-launch -> gst-launch-1.0 and ffmpegcolorspace -> videoconvert 2012-08-27 21:20:30 +01:00
Tim-Philipp Müller
045c4b6ec8 deinterlace: the field in caps is "interlace-mode" not "interlace-method"
Fix deinterlace unit test. Need to set right field on output caps.
Also remove right field (not old 0.10 "interlaced" boolean field)
from caps in unit test before comparing old and new.
2012-08-27 21:20:29 +01:00
Tim-Philipp Müller
0d148d9c6f deinterlace: fix not-negotiated errors on variable or missing framerate in input caps
Remove some bogus code I added during porting that would error out
on missing or variable framerates in input caps. Handle this like
we do in 0.10

Fixes test_mode_disabled_passthrough unit test check.
2012-08-14 01:20:19 +01:00
Robert Swain
cc4941797d deinterlace: Fix timestamp adjustment and caps 2012-07-26 16:04:23 +02:00
Robert Swain
01016109d0 deinterlace: Fix/simplify telecine state checks 2012-07-26 16:03:57 +02:00
Robert Swain
db5bb81e36 deinterlace: Improve debug output 2012-07-26 12:31:52 +02:00
Robert Swain
f20d8f59c8 deinterlace: Fix low-latency pattern locking 2012-07-26 12:31:52 +02:00
Robert Swain
30a61f26ba deinterlace: RFF should be ignored in deinterlace
RFF only occurs on progressive frames in telecine sequences. For
deinterlace, we don't want these repeated fields as we will simply be
pushing the progressive frame and then moving on.

However, we need to consider RFF in order to correctly identify patterns
and adjust the timestamps.
2012-07-26 12:31:52 +02:00
Robert Swain
7c0af11fca deinterlace: Improve process logic
The logic now works better if we filter orphans, then progressive, then
telecine interlaced fields which need to be woven and fall through to
interlace. Telecine interlaced fields will be regularly deinterlaced if
there is no pattern lock for us to be sure that we have a telecine
pattern.

Telecine sequences that aren't 24fps progressive with RFF flags can't
really be tested until fieldanalysis is ported.
2012-07-26 12:31:52 +02:00
Wim Taymans
7fdd607561 deinterlace: get frame flags correctly
Also move the deinterlace plugin to ported status
2012-07-23 15:50:18 +02:00
Robert Swain
eac172c433 deinterlace: Port to 1.0
This requires the additional INTERLACED buffer flag recently added to
-base
2012-07-20 23:23:42 +02:00
Vincent Penquerc'h
fe45881a0f deinterlace: send QoS messages when dropping a frame
https://bugzilla.gnome.org/show_bug.cgi?id=657941
2012-06-12 15:40:37 +01:00
Tim-Philipp Müller
e09ae5736d Use new gst_element_class_set_static_metadata() 2012-04-10 00:51:41 +01:00
Sebastian Dröge
aa2cd462da gst: Update for GST_PLUGIN_DEFINE() API changes 2012-04-05 17:36:38 +02:00
Wim Taymans
c44cd8f55b Merge branch 'master' into 0.11
unport gdkpixbuf
not merged: https://bugzilla.gnome.org/show_bug.cgi?id=654850

Conflicts:
	docs/plugins/Makefile.am
	docs/plugins/gst-plugins-good-plugins-docs.sgml
	docs/plugins/gst-plugins-good-plugins-sections.txt
	docs/plugins/gst-plugins-good-plugins.hierarchy
	docs/plugins/inspect/plugin-avi.xml
	docs/plugins/inspect/plugin-png.xml
	ext/flac/gstflacdec.c
	ext/flac/gstflacdec.h
	ext/libpng/gstpngdec.c
	ext/libpng/gstpngenc.c
	ext/speex/gstspeexdec.c
	gst/audioparsers/gstflacparse.c
	gst/flv/gstflvmux.c
	gst/rtp/gstrtpdvdepay.c
	gst/rtp/gstrtph264depay.c
2012-03-22 11:53:24 +01:00
Sebastian Dröge
4d55588e35 deinterlace: Fix 'implicit conversion from enumeration type 'GstDeinterlaceFields' to different enumeration type 'GstDeinterlaceMode'' compiler warning 2012-03-06 13:19:24 +01:00
Sebastian Dröge
10554b271f Merge branch 'master' into 0.11
Conflicts:
	ext/flac/gstflacdec.c
	ext/jpeg/gstjpegenc.c
	ext/pulse/pulsesink.c
	sys/v4l2/gstv4l2src.c
2012-01-25 12:49:11 +01:00
Mark Nauwelaerts
9d771c9bed deinterlace: fix arithmetic for unsigned comparison 2012-01-20 17:10:33 +01:00
Vincent Penquerc'h
4d51c68fc0 deinterlace: make interlacedness test deterministic
If the interlaced flag is not present in the caps, we assume the
data is not interlaced, instead of leaving the boolean uninitialized.
2012-01-16 12:13:50 +00:00
Vincent Penquerc'h
c0e101e93f various: fix pad template leaks
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:30:27 +00:00
Jan Schmidt
3b03db5e40 deinterlace: Don't pointlessly hold object lock over caps operations
Avoids a deadlock when getcaps is recursive due to the getcaps being
reflected upstream/downstream. The lock isn't actually protecting
anything here.
2011-10-28 00:41:45 +11:00
René Stadler
dcd493279d deinterlace: remove avoidable call to gst_object_set_name 2011-10-21 22:32:38 +02:00
David Schleef
0446787e65 deinterlace: change field handling through methods
This likely breaks stuff.  The good: all of the methods now create
field images aligned with input frames, without timestamp mangling.
The bad: this touches a lot of code, much of which is hairy and in
need of cleanup.  However, at this point we can reasonably create a
PSNR-based test.
2011-08-21 15:15:14 -07:00
Mart Raudsepp
62cd1215c7 deinterlace: Fix Since tags for fieldanalysis related new properties
commit c1b100cf9c is after 0.10.29 and 0.10.30 was a branched release.
So fix Since tags from 0.10.29 to 0.10.31 for the new properties.
2011-08-02 23:38:13 +01:00