Reino
26th August 2010, 20:15
Hello,
There are certain issues I'd like to report and some things I'd like to request.
First of all the most important thing; colors are screwed up while trying to decode lossless RGB32 video made by the latest ffdshow (rev.3529) itself. Since only FFV1 and LJPG support RGB32, this only applies to these. The funny thing however is, last year I also made a FFV1(RGB32) sample, with on older revision of course, and colors look just fine while decoding this old sample with the latest ffdshow revision.
left picture: Original
right picture: FFV1(RGB32) & LJPG(RGB32)
http://img185.imageshack.us/img185/8519/originalz.th.png (http://img185.imageshack.us/i/originalz.png/) http://img534.imageshack.us/img534/7733/sampleffv1rgb32vlcsmall.th.png (http://img534.imageshack.us/i/sampleffv1rgb32vlcsmall.png/)
Is this a known issue, or did I do something wrong?
Trying to create a FFV1(RGB32) file with "Context Model: Large", in combination with all possible settings, immediately results in a crash upon starting the encoding process in VirtualDub. No problem with "YV12", "Coder type: AC", "Context Model: Large", "Keyframe distance: 10" though.
Besides the colors being screwed up, when I open ffdshow-created-RGB32-files in Avisynth, I'm told these actually have the YV12 colorspace (also the old sample from a year ago with good colours!)! Also ffdshow puts out YV12 instead of RGB32. The only program that appears to show correct colors with FFV1(RGB32) and can convert it to a genuinely RGB32-file again is VirtualDub. LJPG(RGB32) doesn't open in VirtualDub :S. It says it "Couldn't locate decompressor for format 'LJPG' (unknown). And I always thought every format in ffdshow would work with VFW because of "ffvdub.vdf" residing in VirtualDub's plugin directory.
Anyway, something appears to be going wrong with the encoding process. Again, is this a known issue?
Although genuinely being recognized by Avisynth as RGB32-files, and NOT created with ffdshow but with HuffYUV 2.1.1 and Fraps for example, ffdshow also somehow outputs YV12 (without any conversions set). The input colorspace is correct though; RGB32.
Forcing an RGB32 output by only selecting RGB32 on ffdshow's "Output"-tab does work of course, but apparently the option "Select closest matching colorspace" doesn't work at all.
So in short, HFYU(RGB32) and FPS1(RGB32) ffdshow decodes as YV12 despite having enabled "Select closest matching colorspace". Is there a way to fix this?
And finally a request.
Every Avisynth user working with YV12-material (or by using ConverttoYV12) needs a YV12 decompressor, because Windows doesn't have one. In the early days XviD had one, but I guess nowadays most people would install Helix YUV Codecs 1.2. There's no need for that however, because ffdshow supports raw YV12 material no problem...in Avisynth because ffavisynth.dll resides in the Avisynth-plugin directory.
...and with DirectShow:
AVI/WAV File Source --> ffdshow Video Decoder --> Video Renderer
\-> Audio Renderer
However, at this moment having enabled YV12 in ffdshow means it becomes an unnecessary extra DirectShow filter in case of encoded YV12 material. An MPEG-2 or H.264 video decoder, which already puts out YV12, will pass its data through to an unnecessary ffdshow YV12 raw video decoder.
Would it be possible to somehow make an option in ffdshow to only enable YV12 for raw video material?
Thanks a lot!
There are certain issues I'd like to report and some things I'd like to request.
First of all the most important thing; colors are screwed up while trying to decode lossless RGB32 video made by the latest ffdshow (rev.3529) itself. Since only FFV1 and LJPG support RGB32, this only applies to these. The funny thing however is, last year I also made a FFV1(RGB32) sample, with on older revision of course, and colors look just fine while decoding this old sample with the latest ffdshow revision.
left picture: Original
right picture: FFV1(RGB32) & LJPG(RGB32)
http://img185.imageshack.us/img185/8519/originalz.th.png (http://img185.imageshack.us/i/originalz.png/) http://img534.imageshack.us/img534/7733/sampleffv1rgb32vlcsmall.th.png (http://img534.imageshack.us/i/sampleffv1rgb32vlcsmall.png/)
Is this a known issue, or did I do something wrong?
Trying to create a FFV1(RGB32) file with "Context Model: Large", in combination with all possible settings, immediately results in a crash upon starting the encoding process in VirtualDub. No problem with "YV12", "Coder type: AC", "Context Model: Large", "Keyframe distance: 10" though.
Besides the colors being screwed up, when I open ffdshow-created-RGB32-files in Avisynth, I'm told these actually have the YV12 colorspace (also the old sample from a year ago with good colours!)! Also ffdshow puts out YV12 instead of RGB32. The only program that appears to show correct colors with FFV1(RGB32) and can convert it to a genuinely RGB32-file again is VirtualDub. LJPG(RGB32) doesn't open in VirtualDub :S. It says it "Couldn't locate decompressor for format 'LJPG' (unknown). And I always thought every format in ffdshow would work with VFW because of "ffvdub.vdf" residing in VirtualDub's plugin directory.
Anyway, something appears to be going wrong with the encoding process. Again, is this a known issue?
Although genuinely being recognized by Avisynth as RGB32-files, and NOT created with ffdshow but with HuffYUV 2.1.1 and Fraps for example, ffdshow also somehow outputs YV12 (without any conversions set). The input colorspace is correct though; RGB32.
Forcing an RGB32 output by only selecting RGB32 on ffdshow's "Output"-tab does work of course, but apparently the option "Select closest matching colorspace" doesn't work at all.
So in short, HFYU(RGB32) and FPS1(RGB32) ffdshow decodes as YV12 despite having enabled "Select closest matching colorspace". Is there a way to fix this?
And finally a request.
Every Avisynth user working with YV12-material (or by using ConverttoYV12) needs a YV12 decompressor, because Windows doesn't have one. In the early days XviD had one, but I guess nowadays most people would install Helix YUV Codecs 1.2. There's no need for that however, because ffdshow supports raw YV12 material no problem...in Avisynth because ffavisynth.dll resides in the Avisynth-plugin directory.
...and with DirectShow:
AVI/WAV File Source --> ffdshow Video Decoder --> Video Renderer
\-> Audio Renderer
However, at this moment having enabled YV12 in ffdshow means it becomes an unnecessary extra DirectShow filter in case of encoded YV12 material. An MPEG-2 or H.264 video decoder, which already puts out YV12, will pass its data through to an unnecessary ffdshow YV12 raw video decoder.
Would it be possible to somehow make an option in ffdshow to only enable YV12 for raw video material?
Thanks a lot!