Page 1 of 5 123 ... LastLast
Results 1 to 10 of 44

Thread: AMD working on XvMC for r300g?

  1. #1
    Join Date
    Apr 2008
    Posts
    101

    Default AMD working on XvMC for r300g?

    http://cgit.freedesktop.org/mesa/mes...1fb9c17d2c2ecc

    why XvMC and not go directly to VDPAU or VA-API?

  2. #2
    Join Date
    Oct 2007
    Location
    Toronto-ish
    Posts
    7,541

    Default

    The upper-level XvMC-over-Gallium3D code already existed (running over Nouveau) as a result of Younes Manton's GSOC project...

    http://bitblitter.blogspot.com/

    ... although the lower level APIs are changing as a result of more recent Gallium3D design discussions. Cooper is working on driver-level stuff using the existing upper-level code.

  3. #3
    Join Date
    Apr 2008
    Posts
    101

    Default

    ah, ok. do you know if someone is already working on VA-API or VDPAU over gallium already? Or is just thoughts up till now?

  4. #4
    Join Date
    Jun 2009
    Posts
    1,188

    Default

    i think this wont happen any time soon, at least not until gallium get full openGL 3.2 support, why?

    1.) UVD2 is not that good to begin with and well and i doubt it will leave AMD documents review office soon

    2.) i think this far in time UVD2 or VA-API or VDPAU arent necessary anymore in the opensource world

    3.) all postproc code need to be ajusted for either one you choose or they have to be coded inside the library for the method you choose

    about number "2.)" think about it, support any of those will require an specific set of developer to maintain the code, this technologies are all propietaries to begin with and there is no way AMD support VDPAU api or nVIDIA support UVD2 to have some sort of standarization and VA-API is still too young and unsupported in almost all video players (at least not without have some patch and fix fun).

    so whatever of those 3 you choose will just add more overheat to the code and another VO devices (like we dont have enough already lol) in our favorite media player, beside the normal average joe dont need more complexity to watch videos.

    now is true that linux need hardware accelerated VO too, in my view the perfect solution should be XV output.

    1.)XV is tested and very well know, is fully supported everywhere, rigth now is better than anything in windows (at least in my experience) except when vdpau and UVD come to play, lol with XV even my old pc athlon x2 3800 was able to play H264 1080p videos without lost sync (i know is a nice cpu ofc XD but windows without gpu accel loose the sync in that pc )

    2.) Tear free video is a reality in xv in almost any configuration (intel, AMD and nvidia in all my pc's play tear free videos just perfectly, but is true that my pc's arent netbooks or toys like that)

    so you dont think that give a nice upgrade the current XV code would be the nicest solution? see my ideas

    1.) allow current XV code to load plugins instead of pure Xorg code, so when you initialize the overlay XV choose whatever engine fit best, note that this plugins will be only in the lower layer of the code, the one that actually process the frame not the external api to maintainiit transparent for the player

    2.) give XV 3 basic plugins: Xorg current code plugins, a fully shader 1.50 rendering plugin and a vdpau rendering plugin (in future could openCL instead of shaders ofc)

    3.) give XV a simple method to choose the output automatically based on the postproc and the video size/codec for example or simple a sub item in xv configuration inside video players

    4.) any postproc library you use woulndt need any modification or in the worst case only a minimal adjustment or optimization

    is a fact that this solution probably wouldnt be a match 100% with the vdpau performance but would be close enough in any decent card + the ability of being transparent and almost no need to do any recode in another library like postproc for example (ofc haveing this probably add shader rutines to postproc library would help a lot too)

  5. #5
    Join Date
    Jun 2009
    Posts
    1,188

    Default

    this can be done (i think) if you have an nvidia card, at least for now XD ofc until super gallium come to play

  6. #6
    Join Date
    Dec 2007
    Posts
    2,402

    Default

    The problem with Xv is that it only accelerates colorspace conversion and scaling (i.e., rendering of the decoded frame). The decode process (getting from compressed stream to frame for rendering) is still done in software which is where things like XvMC/VDPAU/VA-API come in.

  7. #7
    Join Date
    Jun 2009
    Posts
    1,188

    Default

    yes you are rigth but i still think that is more efficient to keep XV as and shader/openCL accelerated video ouput with plugins and add an library that handle the decode/decrypt the video at codec lvl and optimize libpostproc to use shader/openCL as a third library instead a big fat chunk doing it all and handle the output too and like i said you can avoid first the mass rewrite in application cuz XV would be almost transparent like always

    beside if we can make an accelerated decoder outside the video output anyone can use it for other stuff like dunno transcoding to another supported codec for example,etc (anyone said bindings :O )

    and ofc and standard accelerated postproc library would be awesome, cuz dev can focus in postproc techniques instead of debug the whole chunk like vdpau is and the fact it can be used by other application dunno gimp gap, cinelerra, whatever

    but well im a fan of modularity thats why i love KDE ;D

  8. #8
    Join Date
    Jan 2007
    Posts
    459

    Default

    Quote Originally Posted by jrch2k8 View Post
    i think this wont happen any time soon, at least not until gallium get full openGL 3.2 support, why?

    1.) UVD2 is not that good to begin with and well and i doubt it will leave AMD documents review office soon

    2.) i think this far in time UVD2 or VA-API or VDPAU arent necessary anymore in the opensource world

    3.) all postproc code need to be ajusted for either one you choose or they have to be coded inside the library for the method you choose

    about number "2.)" think about it, support any of those will require an specific set of developer to maintain the code, this technologies are all propietaries to begin with and there is no way AMD support VDPAU api or nVIDIA support UVD2 to have some sort of standarization and VA-API is still too young and unsupported in almost all video players (at least not without have some patch and fix fun).

    so whatever of those 3 you choose will just add more overheat to the code and another VO devices (like we dont have enough already lol) in our favorite media player, beside the normal average joe dont need more complexity to watch videos.

    now is true that linux need hardware accelerated VO too, in my view the perfect solution should be XV output.

    1.)XV is tested and very well know, is fully supported everywhere, rigth now is better than anything in windows (at least in my experience) except when vdpau and UVD come to play, lol with XV even my old pc athlon x2 3800 was able to play H264 1080p videos without lost sync (i know is a nice cpu ofc XD but windows without gpu accel loose the sync in that pc )

    2.) Tear free video is a reality in xv in almost any configuration (intel, AMD and nvidia in all my pc's play tear free videos just perfectly, but is true that my pc's arent netbooks or toys like that)

    so you dont think that give a nice upgrade the current XV code would be the nicest solution? see my ideas

    1.) allow current XV code to load plugins instead of pure Xorg code, so when you initialize the overlay XV choose whatever engine fit best, note that this plugins will be only in the lower layer of the code, the one that actually process the frame not the external api to maintainiit transparent for the player

    2.) give XV 3 basic plugins: Xorg current code plugins, a fully shader 1.50 rendering plugin and a vdpau rendering plugin (in future could openCL instead of shaders ofc)

    3.) give XV a simple method to choose the output automatically based on the postproc and the video size/codec for example or simple a sub item in xv configuration inside video players

    4.) any postproc library you use woulndt need any modification or in the worst case only a minimal adjustment or optimization

    is a fact that this solution probably wouldnt be a match 100% with the vdpau performance but would be close enough in any decent card + the ability of being transparent and almost no need to do any recode in another library like postproc for example (ofc haveing this probably add shader rutines to postproc library would help a lot too)
    many problems with what you say but ....

    " lol with XV even my old pc athlon x2 3800 was able to play H264 1080p videos without lost sync "
    B.O.L.L.O.C.K.S is a very good word for that.

    try decoding this PlanetEarthBirds.mkv 2 minute clip
    http://mirror05.x264.nl/Dark/x264clips/

    http://mirror05.x264.nl/Dark/x264cli...EarthBirds.mkv

    if your going to make claims like that jrch2k8 at least make sure to use quality 1080 High Profile Cabac x264 Encodes and not some bullish AVIVO Encoded junk Encode from a dix you want to call HD H264 1080p videos.

  9. #9
    Join Date
    Jan 2007
    Posts
    459

    Default

    the boards edit time kicked in so i could edit this into the above.

    this is your real HD that all others are measured against inthe x264 Encoder world , ao use it to see If You Measure Up, most dont.

    "General
    Complete name : C:\PlanetEarthBirds.mkv
    Format : Matroska
    File size : 216 MiB
    Duration : 2mn 2s
    Overall bit rate : 14.8 Mbps
    Encoded date : UTC 2010-01-05 17:47:54
    Writing application : mkvmerge v2.9.8 ('C'est le bon') built on Aug 13 2009 12:49:06
    Writing library : libebml v0.7.7 + libmatroska v0.8.1

    Video
    ID : 1
    Format : AVC
    Format/Info : Advanced Video Codec
    Format profile : High@L4.1
    Format settings, CABAC : Yes
    Format settings, ReFrames : 4 frames
    Muxing mode : Container profile=Unknown@4.1
    Codec ID : V_MPEG4/ISO/AVC
    Duration : 2mn 2s
    Bit rate : 14.0 Mbps
    Width : 1 920 pixels
    Height : 1 080 pixels
    Display aspect ratio : 16:9
    Frame rate : 23.976 fps
    Resolution : 8 bits
    Colorimetry : 4:2:0
    Scan type : Progressive
    Bits/(Pixel*Frame) : 0.282
    Stream size : 205 MiB (95%)
    Language : English

    Audio
    ID : 2
    Format : AC-3
    Format/Info : Audio Coding 3
    Codec ID : A_AC3
    Duration : 2mn 2s
    Bit rate mode : Constant
    Bit rate : 448 Kbps
    Channel(s) : 6 channels
    Channel positions : Front: L C R, Surround: L R, LFE
    Sampling rate : 48.0 KHz
    Video delay : 12ms
    Stream size : 6.55 MiB (3%)
    Title : Main
    Language : English"

  10. #10
    Join Date
    Oct 2009
    Posts
    2,137

    Default

    One of the keys to playing HD content with a software decoder is intelligent frame dropping. If the A/V goes out of sync, it is quite a severe decoder problem. I notice that ffmpeg has this problem. Anybody know if there's a way to force it to keep in sync?

    And yeah, an X2-3800 seems to be the bare minimum for mostly-smooth decoding of 1080. Note: MUST lock the CPU to maximum -- if it is under max, then you are subject the the scaling delay, which *does* screw with playback.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •