[gstreamer-bugs] [Bug 619844] New: [basetransform] transform_caps can ignore pass-through
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Thu May 27 08:45:43 PDT 2010
https://bugzilla.gnome.org/show_bug.cgi?id=619844
GStreamer | gstreamer (core) | git
Summary: [basetransform] transform_caps can ignore pass-through
Classification: Desktop
Product: GStreamer
Version: git
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gstreamer (core)
AssignedTo: gstreamer-bugs at lists.sourceforge.net
ReportedBy: otte at gnome.org
QAContact: gstreamer-bugs at lists.sourceforge.net
GNOME target: ---
GNOME version: ---
Due to the way basetransform calls transform_caps it is possible that
passthrough caps aren't used. To reproduce, the following launch line can be
used:
gst-launch videotestsrc !
video/x-raw-yuv,format=\(4\)YV12\;video/x-raw-yuv,format=\(4\)I420 !
ffmpegcolorspace !
video/x-raw-yuv,format=\(4\)YV12\;video/x-raw-yuv,format=\(4\)I420 !
ffmpegcolorspace ! video/x-raw-yuv,format=\(4\)YV12 ! xvimagesink -v
This should show the pipeline switching from YV12 to I420, even though
everywhere (but in template caps), YV12 is the preferred format.
Here's what happens:
Suppose we have a caps with two structures A B. The transform_caps function T
will then transform them into a new caps A T(A) B T(B)
If the peer then accepts caps from T(A) and B, it will not use the passthrough
caps from B but the caps from T(A). And there's nothing an element can do about
it.
A suggestion is to add a flag to basetranform to say "pass the whole caps to
the transform func instead of structure-by-structure". This would solve this
issue and also the performance issues from bug 619806
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the Gstreamer-bugs
mailing list