shshankjain / webm

Automatically exported from code.google.com/p/webm
0 stars 0 forks source link

YUY2 format not support by VP8 video decoder #110

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Install VMware 7.1
2. Install Windows 7
3. Install WebM DirectShow filters
4. Use GraphStudio (GraphEdit) to open a WebM file

What is the expected output? What do you see instead?

DirectShow graph should look:
... VP8 Video Decoder -> Video Renderer
instead it looks
... VP8 Video Decoder -> AVI Decompressor -> 
    Color Converter -> Video Renderer

Note that "Video Mixing Renderer 9" doesn't work at all.

What version are you using? On what Windows version?

webmdshow-0.9.8.1-20100608-src.zip on Windows 7 x64

Original issue reported on code.google.com by cristian...@gmail.com on 29 Jun 2010 at 8:41

GoogleCodeExporter commented 9 years ago
Only YV12 output is supported (because that's all the vpx library supports).

We will file this report as an enhancement request.

Original comment by matthewj...@google.com on 30 Jun 2010 at 1:24

GoogleCodeExporter commented 9 years ago
I tested on Win7 x64, but I an unable to duplicate your actual output. 

I can successfully render using VMR9.

We would need more information in order to duplicate the behavior on your 
system.

Are you running Win7 inside a virtual machine?  

When you right-click on the video renderer's input pin, to get a property page, 
what color-space format was negotiated between the pins?  Was it YUY2?

It sounds like you're running in a VM, and so your video renderer doesn't have 
direct access to the video hardware (or something like that), so it only 
accepts packed YUV formats on its input pin.

Original comment by matthewj...@google.com on 1 Jul 2010 at 11:48

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Windows 7 was running under VMware Workstation 7.1 (should also work with 
VMware Player 3)

VMware system tools were installed, thus having VMware video accelerated 
drivers (Aero theme works)

I have tested both Theora and WebM, Theora was using YUY2. 

I was using VMware to make screencasts showing how the html5 <video> activex 
plugin was working with Internet Explorer, but when I've tried with WebM it 
didn't work.

Original comment by cristian...@gmail.com on 2 Jul 2010 at 6:47

GoogleCodeExporter commented 9 years ago
FYI
According to Frank, libyuv supports conversion from YUY2 to I420. Maybe you can 
call the function to do the conversion. Here is the 
code.(http://code.google.com/p/libyuv/source/browse/)

Original comment by yunqingw...@google.com on 17 Nov 2011 at 9:58

GoogleCodeExporter commented 9 years ago
The function YUY2ToI420 in planar_functions.h does conversion from YUY2 to I420
The function I420ToYUY2 in convert.h does the opposite.
I'm not sure how you would hook those up for graph edit, though.

Original comment by fbarch...@chromium.org on 17 Nov 2011 at 11:44

GoogleCodeExporter commented 9 years ago
We'll need to modify the filter.  If we have source code to do the conversion, 
it shouldn't take long.

Original comment by matthewj...@google.com on 18 Nov 2011 at 12:50

GoogleCodeExporter commented 9 years ago
Note that YUY2ToI420 is fully optimized, but I420ToYUY2 is not yet.
If its for a real application, I'll be sure to prioritize optimizing it.

Original comment by fbarch...@chromium.org on 18 Nov 2011 at 4:44

GoogleCodeExporter commented 9 years ago
We have the old optimized versions of packed-to-YV12 conversions from
the On2 days (Scott's "on2 blitter").  We also have unoptimized
conversion going the other way, from the old On2 Flv SDK.

Original comment by matthewj...@google.com on 19 Nov 2011 at 2:30

GoogleCodeExporter commented 9 years ago
I've done the optimized I420ToYUY2 now, which should be checked in Monday.
C code ConvertToYUY2Buffer (1135 ms)
SSE2   ConvertToYUY2Buffer (203 ms)
5.6x faster.

Original comment by phthor...@gmail.com on 20 Nov 2011 at 3:51

GoogleCodeExporter commented 9 years ago
Tested I420ToYUY2 on Linux and Mac as well

Original C code
Win32 LmiVideoFrameTest.ConvertToYUY2Buffer (1129 ms)

SSE2
Win32 LmiVideoFrameTest.ConvertToYUY2Buffer (204 ms)
Mac32 LmiVideoFrameTest.ConvertToYUY2Buffer (230 ms)
Lin64  LmiVideoFrameTest.ConvertToYUY2Buffer (180 ms)
Lin32 LmiVideoFrameTest.ConvertToYUY2Buffer (185 ms)

Original comment by phthor...@gmail.com on 20 Nov 2011 at 8:08

GoogleCodeExporter commented 9 years ago
YUY2 is checked into libyuv, if someone wants to try hooking it up to graphedit.

Original comment by phthor...@gmail.com on 22 Nov 2011 at 1:02

GoogleCodeExporter commented 9 years ago
I added support for YV12, I420, UYVY, YUY2, YUYV, and YVYU formats.  If you 
can't build from sources, let me know and we'll make arrangements to get you a 
binary.

Original comment by matthewj...@google.com on 23 Nov 2011 at 7:21

GoogleCodeExporter commented 9 years ago

Original comment by matthewj...@google.com on 16 Feb 2012 at 12:07