Announcement

Collapse
No announcement yet.

Xv video output has purple tint instead of beeing black

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Originally posted by Nighthog View Post
    The other way is like how all the other outputs work that they expand the 16-235 video into the 0-255 colour range that your screen is able and normally produces. You can read this kinda advanced stuff like buttloads over at AVSforums.
    =_=;
    Well, if the problem is what you exposed (good work BTW ), that's the logical solution, and the driver not doing it is a bug. These are PC cards, not TV adapters. Monitors are calibrated for 0-255, so the drivers should convert the 16-235 range to 0-255, as ALL the drivers do in linux (except fglrx). Movies look much better with -vo x11 than with -vo xv, at least in my monitor (Samsung 226BW).

    Anyway, do you know if is there a methodical way to expand the color range "by hand", using contrast/brightess/saturation? Just until this bug is fixed.

    (edit) Or at least they should allow us to change it in the control panel, as nvidia does (shit, everytime I see their beautiful gtk2 control panel I get jealous :P)
    Last edited by Fran; 08-24-2008, 06:00 AM.

    Comment


    • #17
      Originally posted by Fran View Post
      Well, if the problem is what you exposed (good work BTW ), that's the logical solution, and the driver not doing it is a bug. These are PC cards, not TV adapters. Monitors are calibrated for 0-255, so the drivers should convert the 16-235 range to 0-255, as ALL the drivers do in linux (except fglrx). Movies look much better with -vo x11 than with -vo xv, at least in my monitor (Samsung 226BW).

      Anyway, do you know if is there a methodical way to expand the color range "by hand", using contrast/brightess/saturation? Just until this bug is fixed.

      (edit) Or at least they should allow us to change it in the control panel, as nvidia does (shit, everytime I see their beautiful gtk2 control panel I get jealous :P)
      Gotta tell though using the 16-235 colour range and calibrating the screen for that gives the best quality in image and the most correct one, it's the general consensus that it's better, but it's no where as easy to just expand the damn video which in turn mostly gives a all good image anyway for most to accept.
      Though calibrating a computer monitor for 16-235 levels will be a huge problem if you do other stuff than watch movies on it. Basically everything but 16-235 content video will show incorrect colours >_>;
      So if you have a seperate monitor/TV/HDTV calibrating that might be the better solution for best image as you will have it dedicated for the video only and you will probably like the image/colours on video there alot better than on your main screen when set up correctly for it.

      Comment


      • #18
        I have the same problem, and dig for a while, no solution is found.
        >_<
        And moreover, my video card's chipset is M52, so I have to enable TexturedVideo in order to use xv drive when using mplayer. -__-
        But, I want the best pic while playing video.
        So, I tried other drivers when using mplayer.
        Now, I find that both gl2 and gl will give the right black color,
        but here is another issue, since there are several other subparameters with gl2 or gl, I donot know which is better.
        Maybe you can have a try:
        -vo gl2:yuv=x
        or
        -vo gl:yuv=x
        above both x can be 2,3,or 4
        but when I use gl, I press f to go fullscreen, but when press f again to go back, the whole screen is messed up, I donot know why?

        My environment: Archlinux 2.6.26 i686, openbox, using catalyst 8.8-1 driver

        Comment


        • #19
          Without actually looking anything up, here are some thoughts:

          1. Xv's job was utilize special video hardware to do colorspace and scaling for video (back when the CPU was slow). ATI doesn't even put this hardware on their cards anymore (but you can write a driver to allocate some of the texture units to simulate hardware).

          2. Each display device has its own (adjustible) color profile.

          3. Most video formats don't have color profiles.

          4. There's more than one way to specify colors.

          5. The OS (linux) might have a way of inserting filters (like mplayer's -vf). Maybe somewhere in X?

          6. The drivers should have a way of inserting filters, since they should be able to adjust displays based on the display's color profile, or a color profile supplied by a calibration tool.

          7. 8 bit color channel depth is a current hardware constraint. There were and will be displays with different bit depths.

          8. The cinematographers should be able to shoot the movie using the colors they want. That used to mean selecting film emulsions and adjusting camera exposures and lighting.

          Where should adjustments be done?

          1. The user program (mplayer) does the conversion (or calls upon the driver to do so (see gl:yuv) based on user input or headers in the video file.

          2. The driver does the conversion based on input from the user or from the driven display.

          So, IMO, Xv shouldn't be doing any "brightness" compression unless specifically asked.

          Thanks for listening.

          Comment


          • #20
            Originally posted by archman View Post
            -vo gl:yuv=x
            Use whatever x works for you. With gl you can also choose the type of scaling with the lscale=x parameter.

            but when I use gl, I press f to go fullscreen, but when press f again to go back, the whole screen is messed up, I donot know why?
            This happens if your screen res x and y aren't divisible by 64 AFAICT.

            The work around is to add a virtual line to your xorg.conf with 1 added (it will mean your screen will scroll by a pixel).

            eg
            Code:
            Section "Screen"
                    Identifier "aticonfig-Screen[0]"
                    Device     "aticonfig-Device[0]"
                    Monitor    "aticonfig-Monitor[0]"
                    DefaultDepth     24
                    SubSection "Display"
                            Viewport   0 0
                            Depth     24
                            Modes   "1920x1440_50.00"
                            virtual 1920 1441
                    EndSubSection
            EndSection
            fixes the problem for a test I just tried.

            Comment


            • #21
              Originally posted by legume View Post
              This happens if your screen res x and y aren't divisible by 64 AFAICT.

              The work around is to add a virtual line to your xorg.conf with 1 added (it will mean your screen will scroll by a pixel).
              well, my resolution is 1024x768
              so, I think maybe there is something wrong parameters I set in xorg.conf:
              Code:
              Section "ServerLayout"
              	Identifier     "Default Layout"
              	Screen      0  "aticonfig-Screen[0]-0" 0 0
              	InputDevice    "MX300" "AlwaysCore"
                      InputDevice    "Synaptics Touchpad" "CorePointer"
              	InputDevice    "Keyboard1" "CoreKeyboard"
              EndSection
              
              Section "Files"
                  RgbPath	 "/usr/share/X11/rgb"
                  FontPath     "/usr/share/fonts/TTF"
                  FontPath     "/usr/share/fonts/Type1"
                  FontPath     "/usr/share/fonts/wenquanyi/wqy-zenhei"
                  FontPath     "/usr/share/fonts/wqy-bitmapfont/"
                  ModulePath   "/usr/lib/xorg/modules"
                  FontPath     "/usr/share/fonts/misc"
                  FontPath     "/usr/share/fonts/100dpi:unscaled"
                  FontPath     "/usr/share/fonts/75dpi:unscaled"
              EndSection
              
              Section "Module"
                  Load "glx"
                  Load "dri"
                  Load "GLcore"
                  Load "freetype"
              EndSection
              
              Section "InputDevice"
              	Identifier  "Keyboard1"
              	Driver      "kbd"
              	Option	    "XkbRules" "xorg"
              	Option	    "XkbModel" "pc105"
              	Option	    "XkbLayout" "us"
              EndSection
              
              Section "InputDevice"
              	Identifier  "MX300"
              	Driver      "mouse"
              	Option      "CorePointer"
                      Option      "Protocol" "ExplorerPS/2"
                      Option	    "Device" "/dev/input/mice"
              	Option	    "Emulate3Buttons"
                      Option      "Emulate3Timeout"    "50"
                      Option      "EmulateWheel" "on"
                      Option      "EmulateWheelButton" "2"
                      Option      "EmulateWheelTimeOut" "200"
              	Option	    "YAxisMapping" "4 5"
                      Option	    "XAxisMapping" "6 7"
                      Option	    "ZAxisMapping" "4 5"
              EndSection
              
              Section "InputDevice"
                      Identifier      "Synaptics Touchpad"
                      Driver          "synaptics"
                      Option          "SendCoreEvents"        "true"
                      Option          "Device"                "/dev/psaux"
                      Option          "Protocol"              "auto-dev"
                      Option          "HorizScrollDelta"      "0"
                      Option          "SHMConfig"             "true"
              EndSection
              
              Section "Monitor"
              	Identifier   "aticonfig-Monitor[0]-0"
              	Option	    "VendorName" "ATI Proprietary Driver"
              	Option	    "ModelName" "Generic Autodetecting Monitor"
              	Option	    "DPMS" "true"
                      DisplaySize    271    203    # 1024x768 96dpi
              EndSection
              
              Section "Device"
                  Identifier  "aticonfig-Device[0]-0"
                  Driver      "fglrx"
                  BusID       "PCI:1:0:0"
                  Option          "ForceMonitors" "lvds,crt1"
                  Option          "TexturedVideo" "on"
                  Option          "Centermode" "off"
                  Option          "VideoOverlay" "on"
                  Option          "OpenGLOverlay" "off"
                  Option          "OverlayOnCRTC2" "0"
                  Option          "PseudoColorVisuals" "off"
                  Option          "UseFastTLS" "2"
                  Option          "XAANoOffscreenPixmaps" "true"
                  Option          "DRI" "true"
              EndSection
              
              Section "Screen"
              	Identifier "aticonfig-Screen[0]-0"
              	Device     "aticonfig-Device[0]-0"
              	Monitor    "aticonfig-Monitor[0]-0"
              	DefaultDepth     24
              	SubSection "Display"
              		Viewport   0 0
              		Depth     24
                      Modes "1024x768"
              	EndSubSection
              EndSection
              
              Section "Extensions"
                  Option "Composite" "0"
                  Option "XVideo" "Enable"
              EndSection
              
              Section "DRI"
                  Mode 0666
              EndSection
              my card is x1300 on T60
              I post my xorf.conf here, maybe someone can tell me what's wrong.

              Comment


              • #22
                Originally posted by archman View Post
                well, my resolution is 1024x768
                so, I think maybe there is something wrong parameters I set in xorg.conf:
                Hmm 1024x768 works for me. Maybe you could try removing a few things from you device section - don't know if it will help, though. IIRC the TLS one gets ignored and you get whatever is set with aticonfig anyway. I don't know what you actually need - On a single CRT mine is empty now, though I used to need XAANoOffscreenPixmaps for my old (R5xx) card. As a start try -

                Code:
                Section "Device"
                    Identifier  "aticonfig-Device[0]-0"
                    Driver      "fglrx"
                    BusID       "PCI:1:0:0"
                    Option          "ForceMonitors" "lvds,crt1"
                    Option          "Centermode" "off"
                    Option          "XAANoOffscreenPixmaps" "true"
                    Option          "DRI" "true"
                EndSection

                Comment

                Working...
                X