[gstreamer-bugs] [Bug 371108] New: videoscale sucks at basic mathematics when it comes to PAR
GStreamer (bugzilla.gnome.org)
bugzilla-daemon at bugzilla.gnome.org
Sun Nov 5 08:56:36 PST 2006
Do not reply to this via email (we are currently unable to handle email
responses and they get discarded). You can add comments to this bug at
http://bugzilla.gnome.org/show_bug.cgi?id=371108
GStreamer | gst-plugins-base | Ver: 0.10.10
Summary: videoscale sucks at basic mathematics when it comes to
PAR
Product: GStreamer
Version: 0.10.10
Platform: Other
OS/Version: Linux
Status: NEW
Severity: normal
Priority: Normal
Component: gst-plugins-base
AssignedTo: gstreamer-bugs at lists.sourceforge.net
ReportedBy: thomas at apestaart.org
QAContact: gstreamer-bugs at lists.sourceforge.net
GNOME version: Unspecified
GNOME milestone: Unspecified
videoscale's job is to scale video, preserving display aspect ratio, unless it
is not able to at all. Given that 3 x 2 variables take part in the negotiation
(w, h, par for two pads), and "preserving DAR" is an equation that links the
six variables, p-a-r should be calculated on one side if all other variables
are specified.
For example, this pipeline:
gst-launch -v videotestsrc !
video/x-raw-rgb,width=720,height=576,pixel-aspect-ratio=16/15 ! videoscale !
video/x-raw-rgb,width=768,height=576 ! fakesink silent=TRUE
should negotiate a par of 1/1 on videoscale's src pad.
instead it does this:
[gst-head] [thomas at otto gst-plugins-bad]$ gst-launch -v videotestsrc !
video/x-raw-rgb,width=720,height=576,pixel-aspect-ratio=16/15 ! videoscale !
video/x-raw-rgb,width=768,height=576 ! fakesink silent=TRUE
Setting pipeline to PAUSED ...
/pipeline0/videotestsrc0.src: caps = video/x-raw-rgb, bpp=(int)32,
endianness=(int)4321, depth=(int)24, red_mask=(int)16711680,
green_mask=(int)65280, blue_mask=(int)255, width=(int)720, height=(int)576,
framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)16/15
Pipeline is PREROLLING ...
/pipeline0/capsfilter0.src: caps = video/x-raw-rgb, bpp=(int)32,
endianness=(int)4321, depth=(int)24, red_mask=(int)16711680,
green_mask=(int)65280, blue_mask=(int)255, width=(int)720, height=(int)576,
framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)16/15
/pipeline0/capsfilter0.sink: caps = video/x-raw-rgb, bpp=(int)32,
endianness=(int)4321, depth=(int)24, red_mask=(int)16711680,
green_mask=(int)65280, blue_mask=(int)255, width=(int)720, height=(int)576,
framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)16/15
/pipeline0/videoscale0.src: caps = video/x-raw-rgb, width=(int)768,
height=(int)576, bpp=(int)32, endianness=(int)4321, depth=(int)24,
red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255,
framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)16/15
/pipeline0/videoscale0.sink: caps = video/x-raw-rgb, bpp=(int)32,
endianness=(int)4321, depth=(int)24, red_mask=(int)16711680,
green_mask=(int)65280, blue_mask=(int)255, width=(int)720, height=(int)576,
framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)16/15
/pipeline0/capsfilter1.src: caps = video/x-raw-rgb, width=(int)768,
height=(int)576, bpp=(int)32, endianness=(int)4321, depth=(int)24,
red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255,
framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)16/15
/pipeline0/capsfilter1.sink: caps = video/x-raw-rgb, width=(int)768,
height=(int)576, bpp=(int)32, endianness=(int)4321, depth=(int)24,
red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255,
framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)16/15
/pipeline0/fakesink0.sink: caps = video/x-raw-rgb, width=(int)768,
height=(int)576, bpp=(int)32, endianness=(int)4321, depth=(int)24,
red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255,
framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)16/15
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
I'm pretty sure videoscale actually used to do this.
Please help save mathematics from oblivion!
--
Configure bugmail: http://bugzilla.gnome.org/userprefs.cgi?tab=email
More information about the Gstreamer-bugs
mailing list