VC-1: Complex Profile is supported a bit

I’ve just added some support for WMV3 Complex Profile (aka old Advanced Profile).
I don’t know why most samples (users complaining about) I’ve met are anime. It’s a good chance they will work now.

And here is updated list of CP features explained:

  • RES_X8 – additional bit at the end of I-frame header pointing if this is normal I-frame or this is special coded frame (I’m sure that’s exactly WMV2/8 J-frame with different header)
  • RES_FASTTX – somehow interferes with P-frames but bitstream is not changed
  • RES_RTM – old P-frame format (header should be the same but some additions on macroblock level). This is also quite common in old WMV3 files. Not RE’d yet

17 Responses to “VC-1: Complex Profile is supported a bit”

  1. 167 says:

    hello, here there are additional samples fot the complex profile
    http://www.xaraxtreme.org/about/movies.html

  2. Martin says:

    Hi Kostya

    I’m experiencing skipping video & audio when playing different VC-1 movies.

    Corpse Bride Blu-ray for example (it’s VC-1 and DD 5.1). The sound is lagging/skipping and the picture shows “white blocks” like digital noise.

    Is this just because the VC-1 codec is very new and will it be fixed/optimized later on?

    Thanks
    /Martin :)

  3. Kostya says:

    @167: thanks
    @Martin: please provide a sample, it may be slow but it should not show artifacts (at least I hope so ;-) )

  4. Martin says:

    Hi Kostya

    The “sample” is 12GB in size (I don’t know how to split the .m2ts file).

    Is that ok? You can download it from FTP like last time.

    /Martin

  5. Martin says:

    PS. It shows artifacts everytime, I have tried it several times. The sound also has “artifacts” at the same time. It skips.

    /Martin :)

  6. kurisu says:

    Hi, to correlate with Martin’s message, I do too experience artefacts in VC-1 streams with FFmpeg M$ WVC1.
    It is present on all vc-1 movies I tried it on (about 12 in total).
    The artefacts are mostly located around the edges of the picture, and are not constantly present. As Martin said, it usually appears as random (but always the same at the same time position of the movie) white/black blocks, that looks a bit like badly contained xvid in AVI.
    I do not know how to split a vc-1 file either, but if told how, I probably could provide samples.

    cheers

  7. Kostya says:

    These artifacts may come from motion vectors handling slightly different in standards. I’ll ty to fix it this week (if I get enough time).

  8. kurisu says:

    thanks for your work, it’s really amazing.
    Again I wish I could split a movie and provide you with sample.
    If a screenshot is enough to you (just to illustrate the problem), I guess it might be much easier to organise.
    Let me know

    cheers

  9. Kostya says:

    Now edge artifacts should be fixed.

  10. kurisu says:

    thanks!
    However I still get the artifacts after fetching the latest svn (22709) of mplayer.

    I took 2 screenshots of a movie showing the artefacts, so you can get a better idea (warning, those are big >1.6MB) :
    http://homepage.mac.com/kurisu9/Picture_1.png
    http://homepage.mac.com/kurisu9/Picture_2.png
    for the second shot, the console outputs the following :
    [vc1 @ 0x6e4f80]Bits overconsumption: 301925 > 301920 at 41×58

  11. Kostya says:

    Thanks for testing too. I hope that the number of artifacts reduced anyway.

    First screenshot certainly shows B-frame MC error. I’ll try to fix it ASAP.
    The second screenshot shows frame decoding error. Are any subsequent frames affected. If no that’s also B-frame error, otherwise sample will be needed for study.

  12. kurisu says:

    Immediate subsequent frames do not show frame decoding errors, but there are similar errors throughout the movies.
    Yes, it seems there are less errors (though I honestly didn’t really keep count) in the movies I tried.
    If you need samples, I’ll be glad to provide some, if you tell me how ;-)

  13. Kostya says:

    Try now, I (hopefully) weeded all B-frame bugs but if that one (with printed error) still exists then try to cut it with ffmpeg:

    ffmpeg -i file -an -ss startpos -t duration -vcodec copy -f rawvideo output.vc1

    Result file is raw VC1 stream with no sound (should be playable by MPlayer)

  14. kurisu says:

    WOW !
    most of the worst artefacts are gone (I just quickly tried 2 movies). There are a few that remain (haven’t seen one big artefact yet) but only way to be sure is to watch the movie entirely. I’ll do that tonight (I live in Japan, so GMT+9) and will report here., with samples.
    man, fantastic work !

    cheers

  15. kurisu says:

    ok, I’ve cut some samples of the most common visual glitches encountered.
    shoot me an email (I assume you can see the email address I used for these comments) and I’ll give you the URL of the files.

    cheers

  16. Martin says:

    Downloaded the newest MPlayer SVN.

    Most of the video glitches are gone from Corpse Bride. There are still a few black squares/video noise at the edge of the picture. But it’s much better, appreciate all your work Kostya! :)

    The sound is still very laggy(the DD 5.1 music track), so it isn’t watchable yet…

    I really hope E-AC3 and TrueHD, DTS HD support is coming soon!

  17. Rather superb entry, definitely useful stuff. Never ever considered I’d find the facts I need right here. I have been looking everywhere in the internet for some time now and had been starting to get discouraged. Fortunately, I happened across your blog and received precisely what I was searching for.