3D Application Requirements on Samsung Smart TV

February 10, 2013

We were very excited when we were asked to build an application that plays 3D content on Samsung SmartTV Platform. The challenge of working on something that few others, if any, have got to work is always welcome for our engineering team. The moments of joy and despair, the extreme highs and lows of working on such projects are unparalleled.

The first good news was that Samsung SmartTV Platform did support playback of Side-by-Side (SBS) 3D videos. Getting 3D videos to play was slightly more involved than playing a normal 2D video. The player does not auto-detect the 3D encoding – instead the device capability has to be detected and then explicitly the SetPlayerProperty function is called to inform the player that it has to play SBS content. The pseudo-code to attain this is given below:

	Player.plugin.InitPlayer( videoURL );
 
	if ( Player.firmware_version >=  "T-INFOLINK2011" ) {
		if ( Player.pluginScreen3D.Flag3DEffectSupport() == 1 ||Player.pluginScreen3D.Flag3DTVConnect() == 1 ){
			Player.plugin.SetPlayerProperty( 2, "3", 1 ); 
		}
 
	Player.plugin.StartPlayback();

That’s it! This triggers the 3D-SBS mode in the Samsung devices capable of playing such content. Remember to reset the screen to 2D mode after playback is completed.

Another important thing if you want to support 3D playback – you cannot use the native volume control UI from Samsung. For 2D videos, the cleanest strategy is to delegate the volume control UI part to Samsung platform itself. For 3D, we cannot use the native UI – and have to implement everything from scratch – an undesirable side-effect of using the 3D mode.