gogojaijai wrote:I am talking in the developer's point of view, and talking about a E2E system including encoder, decoder, PC, and 3DTV display (Samsung C7000 series)
The way you describe it, you're not really an a
pplication developer (i.e. the person who needs to program video player software which supports stereoscopic playback), but rather a
system integrator who needs to to provide relevant software and hardware for some specific task and make sure they work together, so you actually need to look at this solution from the end-user point of view. Sorry if I got it wrong, but I don't see what exactly do you need to program. Either way, you should have basic understanding of how the whole system works, which you seem to lack now.
Case 1: Side-by-side (half res) 3D video (i.e. left and right images are downsampled to compose a 1920*1080 image) is applied and encoded by using H.264
You just attach the 3DTV to the HDMI port and play back the video. The set might autodetect the stereo signal; if it doesn't, just activate the stereo mode in the menu.
If you need to play video on the secondary monitor only, the user has to take some simple steps order to configure span modes (BTW Windows 7 makes multimonitor setups a bit easier); applications can not and should not program these settings through the Windows API.
Case 2: Side-by-side (full res) 3D video (i.e. left and right images are composed to a 3840*1080 image is applied and encoded by using H.264
This will only work with a 3DTV if the video player supports this extended format and programs against NVAPI; you'll probably need a 3DTV Play driver installed and the maximum reolution will be 1080p24 (not 1080i60 or 1080p60) AFAIK, playing back stereoscopic video trough NVAPI involves programming against DXVA with a special video surface format.
Another option is to re-encode the video to a "frame compatible" half-res format, then use Case 1.
As I said earlier, one can not just compose a "frame packing" format and send it to the 3DTV, since there is no way for applications to directly control the HDMI InfoFrames through the video driver. The video player software can only draw the video overlay window and present video stream to the overlay, either by using DXVA hardware acceleration to decode video, or by doing all the decoding on the CPU.
Case 3: Left and Right images are encoded by using H.264/MVC, then it needs to be decoded by using H.264/MVC decoder
Basically the same as Case 2.
You will need an external 3rd party MVC decoder or a video player with direct support for MVC, however currently there are none AFAIK.
multi output mode, what does multi output mode mean? Why needs to consider multi output mode?
Modern video cards can have multiple monitor outputs, that is DVI or VGA for an LCD monitor and HDMI or component YPbPr for a TV set. Windows Vista and above natively supports multimonitor configurations, while Windows XP relies on video driver extensions.
There are two modes in multimonitor support: 1) the spanning mode, where the two monitors form an extended continuous desktop, and 2) clone mode, where the the secondary monitor displays the same picture as on the primary monitor, probably scaled to fit a different resolution.
You have to consider spanning mode if you need to play video on the secondary HDMI output only, and need a regular Windows desktop on the primary computer monitor. The video player application needs to support multimonitor configurations, so that full-screen playback properly adjusts to fit the secondary monitor only.
By the way, what does the video card do in the above cases?What is it for?
The video card provides DXVA acceleration for video decoding and supports multiple output devices.
Do I have to use HDMI interface or other interface (e.g. DVI) could be used?
You can use either ports to connect the TV set, and you can use HDMI-to-DVI or DVI-to-HDMI cables and passive adapters since HDMI and DVI are fully compatible up to 1080p60 24-bit RBG (DVI mode does not support audio though).