[gstreamer-bugs] [Bug 361587] New: wrong colors when playing a video when using xvimage sink

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Wed Oct 11 16:53:44 PDT 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=361587

  GStreamer | gst-plugins-base | Ver: HEAD CVS

           Summary: wrong colors when playing a video when using xvimage
                    sink
           Product: GStreamer
           Version: HEAD CVS
          Platform: Other
        OS/Version: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-base
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: xavierb at gmail.com
         QAContact: gstreamer-bugs at lists.sourceforge.net
     GNOME version: 2.13/2.14
   GNOME milestone: Unspecified


Please describe the problem:
all videos played get their colors shifted. (that is, red becomes blue, and so
on)

it's apparently related to I420 fourcc caps. (YV12 works, I420 doesn't)

Steps to reproduce:
gst-launch playbin uri=file://xxx.avi

Actual results:


Expected results:


Does this happen every time?
yes

Other information:
here is a log when the problem is present:

===================
0:00:00.541284000  7808 0x80a7140 DEBUG          xvimagesink
xvimagesink.c:1479:gst_xvimagesink_xcontext_get:<videosink-actual-sink> X
reports 1440x900 pixels and 373 mm x 231 mm
0:00:00.541459000  7808 0x80a7140 DEBUG          xvimagesink
xvimagesink.c:1407:gst_xvimagesink_calculate_pixel_aspect_ratio: calculated
pixel aspect ratio: 1,009199
0:00:00.541574000  7808 0x80a7140 DEBUG          xvimagesink
xvimagesink.c:1422:gst_xvimagesink_calculate_pixel_aspect_ratio: Decided on
index 0 (1/1)
0:00:00.541665000  7808 0x80a7140 DEBUG          xvimagesink
xvimagesink.c:1430:gst_xvimagesink_calculate_pixel_aspect_ratio: set xcontext
PAR to 1/1
0:00:00.541986000  7808 0x80a7140 DEBUG          xvimagesink
xvimagesink.c:1136:gst_xvimagesink_get_xv_support: Found 1 XV adaptor(s)
0:00:00.542163000  7808 0x80a7140 DEBUG          xvimagesink
xvimagesink.c:1153:gst_xvimagesink_get_xv_support: XV Adaptor ATI Radeon AVIVO
Video with 4 ports
0:00:00.542734000  7808 0x80a7140 DEBUG          xvimagesink
xvimagesink.c:1348:gst_xvimagesink_get_xv_support: Generated the following
caps: video/x-raw-yuv, format=(fourcc)YV12, width=(int)[ 1, 4096 ],
height=(int)[ 1, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 4096 ], height=(int)[ 1,
4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb,
endianness=(int)4321, depth=(int)32, bpp=(int)32, blue_mask=(int)-16777216,
green_mask=(int)-16777216, red_mask=(int)-16777216, width=(int)[ 1, 4096 ],
height=(int)[ 1, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
0:00:00.660941000  7808 0x80f1960 DEBUG          xvimagesink
xvimagesink.c:1762:gst_xvimagesink_setcaps:<videosink-actual-sink> intersection
returned video/x-raw-yuv, format=(fourcc)I420, width=(int)320, height=(int)180,
framerate=(fraction)30000/1001, pixel-aspect-ratio=(fraction)1/1

========

now, if I add in the code a workaround,
near xvimagesink.c:1306
      case XvYUV:
                if (formats[i].id == GST_MAKE_FOURCC ('I','4','2','0'))
                        break;

then the format is removed from the list, "YV12" is chosen instead, and
everything works as expected.

(now I have no idea if this is a Xv bug, an ati bug, a xvimagesink bug, a
colorspace converter bug, as I have no idea what those fourcc mean precisely...
)


-- 
Configure bugmail: http://bugzilla.gnome.org/userprefs.cgi?tab=email




More information about the Gstreamer-bugs mailing list