<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>intellectualcramps</title>
	<atom:link href="http://intellectualcramps.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://intellectualcramps.wordpress.com</link>
	<description>A little bit of this and a little bit of that.</description>
	<lastBuildDate>Thu, 09 May 2013 19:01:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='intellectualcramps.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>intellectualcramps</title>
		<link>http://intellectualcramps.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://intellectualcramps.wordpress.com/osd.xml" title="intellectualcramps" />
	<atom:link rel='hub' href='http://intellectualcramps.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Serenity for Android now available for Nook and Nook HD!</title>
		<link>http://intellectualcramps.wordpress.com/2013/05/09/998/</link>
		<comments>http://intellectualcramps.wordpress.com/2013/05/09/998/#comments</comments>
		<pubDate>Thu, 09 May 2013 18:59:54 +0000</pubDate>
		<dc:creator>kingargyle</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[googletv]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[plex media server]]></category>

		<guid isPermaLink="false">http://intellectualcramps.wordpress.com/?p=998</guid>
		<description><![CDATA[For those Nook HD and Nook users that have the Google Play store, if you have a Plex Media Server, Serenity for Android can now be installed on your Nook tablet.  It&#8217;ll give you an alternative way to access your &#8230; <a href="http://intellectualcramps.wordpress.com/2013/05/09/998/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intellectualcramps.wordpress.com&#038;blog=20154979&#038;post=998&#038;subd=intellectualcramps&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter" alt="" src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQtvKewVN-pF_3YQM3txmSE4yTovcFK7dKrKHlBOtNTHyWsJ1bA" width="275" height="183" /></p>
<p>For those Nook HD and Nook users that have the Google Play store, if you have a Plex Media Server, <a href="https://play.google.com/store/apps/details?id=us.nineworlds.serenity">Serenity for Android</a> can now be installed on your Nook tablet.  It&#8217;ll give you an alternative way to access your Movies and TV Shows from your plex media server.   We are glad to see the Nook finally get the Google Play store, and glad to make Serenity available for the device.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intellectualcramps.wordpress.com/998/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intellectualcramps.wordpress.com/998/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intellectualcramps.wordpress.com&#038;blog=20154979&#038;post=998&#038;subd=intellectualcramps&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://intellectualcramps.wordpress.com/2013/05/09/998/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fdec28d17fb2417999492a96fb338eae?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kingargyle</media:title>
		</media:content>

		<media:content url="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQtvKewVN-pF_3YQM3txmSE4yTovcFK7dKrKHlBOtNTHyWsJ1bA" medium="image" />
	</item>
		<item>
		<title>Serenity for Android 1.2.0</title>
		<link>http://intellectualcramps.wordpress.com/2013/04/28/serenity-for-android-2/</link>
		<comments>http://intellectualcramps.wordpress.com/2013/04/28/serenity-for-android-2/#comments</comments>
		<pubDate>Mon, 29 Apr 2013 01:16:08 +0000</pubDate>
		<dc:creator>kingargyle</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[googletv]]></category>
		<category><![CDATA[serenity]]></category>

		<guid isPermaLink="false">http://intellectualcramps.wordpress.com/?p=995</guid>
		<description><![CDATA[Version 1.2.0 is now available in the play store.   This version focuses on adding better support for those with large video libraries. Features and Improvements: Grid View for Movie browsing.  This is can be enabled through the Settings menu, &#8230; <a href="http://intellectualcramps.wordpress.com/2013/04/28/serenity-for-android-2/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intellectualcramps.wordpress.com&#038;blog=20154979&#038;post=995&#038;subd=intellectualcramps&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p style="text-align:center;"><a href="http://intellectualcramps.files.wordpress.com/2013/04/serenity-bonsai-logo.png"><img class="aligncenter  wp-image-993" alt="serenity-bonsai-logo" src="http://intellectualcramps.files.wordpress.com/2013/04/serenity-bonsai-logo.png?w=358&#038;h=358" width="358" height="358" /></a></p>
<p>Version 1.2.0 is now available in the play store.   This version focuses on adding better support for those with large video libraries.</p>
<p><a href="https://play.google.com/store/apps/details?id=us.nineworlds.serenity"> <img alt="Get it on Google Play" src="https://developer.android.com/images/brand/en_generic_rgb_wo_45.png" /><br />
</a></p>
<p>Features and Improvements:</p>
<ul>
<li>Grid View for Movie browsing.  This is can be enabled through the Settings menu, and selecting the appropriate option under Layouts.  The grid will show a 3 x 8 grid of posters.  The grid scrolls horizontally.</li>
<li>Poster view for TV Shows.  Some users have requested a Poster view instead of the banner view for the TV Shows.  This can be enabled in the Settings Menu.</li>
<li>Grid View supports Page Up and Page Down keys on Google TV remotes to move a page at a time.</li>
<li>Set Category filter preference.</li>
<li>Preference for Poster view for TV Shows instead of Banners.</li>
<li>Support for SSA/ASS subtitles for internal player.</li>
<li>Support for MX Player&#8217;s view offset when running on a Tablet.. Will update the plex view offset after returning from MX Player.</li>
<li>Add Studio infographic for Movie and TV Shows.</li>
</ul>
<p>Version 1.3.0 is under development and the plan is to finally add Music Library support as well as NetCast (Video/Podcast) support.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intellectualcramps.wordpress.com/995/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intellectualcramps.wordpress.com/995/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intellectualcramps.wordpress.com&#038;blog=20154979&#038;post=995&#038;subd=intellectualcramps&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://intellectualcramps.wordpress.com/2013/04/28/serenity-for-android-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fdec28d17fb2417999492a96fb338eae?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kingargyle</media:title>
		</media:content>

		<media:content url="http://intellectualcramps.files.wordpress.com/2013/04/serenity-bonsai-logo.png" medium="image">
			<media:title type="html">serenity-bonsai-logo</media:title>
		</media:content>

		<media:content url="https://developer.android.com/images/brand/en_generic_rgb_wo_45.png" medium="image">
			<media:title type="html">Get it on Google Play</media:title>
		</media:content>
	</item>
		<item>
		<title>Serenity for Android</title>
		<link>http://intellectualcramps.wordpress.com/2013/04/11/serenity-for-android/</link>
		<comments>http://intellectualcramps.wordpress.com/2013/04/11/serenity-for-android/#comments</comments>
		<pubDate>Thu, 11 Apr 2013 16:34:58 +0000</pubDate>
		<dc:creator>kingargyle</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[googletv]]></category>
		<category><![CDATA[serenity]]></category>

		<guid isPermaLink="false">http://intellectualcramps.wordpress.com/?p=992</guid>
		<description><![CDATA[Version 1.1.2 is now available in the play store. This is mainly a logo and name change for the app.  Why the name change, because Serenity runs on more than just Google TV devices.  It will currently run on any &#8230; <a href="http://intellectualcramps.wordpress.com/2013/04/11/serenity-for-android/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intellectualcramps.wordpress.com&#038;blog=20154979&#038;post=992&#038;subd=intellectualcramps&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p style="text-align:center;"><a href="http://intellectualcramps.files.wordpress.com/2013/04/serenity-bonsai-logo.png"><img class="aligncenter  wp-image-993" alt="serenity-bonsai-logo" src="http://intellectualcramps.files.wordpress.com/2013/04/serenity-bonsai-logo.png?w=358&#038;h=358" width="358" height="358" /></a></p>
<p>Version 1.1.2 is now available in the play store. This is mainly a logo and name change for the app.  Why the name change, because Serenity runs on more than just Google TV devices.  It will currently run on any Android device running version 3.1 or above.  This means it is possible to load it on Kindle Fires, almost any Android Tablet, and even some android phones.   It also means it can run on those Android mini usb sticks, as well as the recently released OUYA device.     Having &#8220;Google TV&#8221; in the name was in some ways saying that it only ran on Google TV devices, which isn&#8217;t the case, it is optimized for those devices though.</p>
<p><a href="https://play.google.com/store/apps/details?id=us.nineworlds.serenity"><br />
<img alt="Get it on Google Play" src="https://developer.android.com/images/brand/en_generic_rgb_wo_45.png" /><br />
</a></p>
<p>We changed the logo as well to help de-emphasize the TV aspect of the app, and also to differentiate it from other apps in the play store that were using the Serenity name.   Logo created by <a href="http://www.spiderflystudios.com/">Spiderfly Studios</a>.</p>
<p>So if you are a Plex Media Server user and have a tablet or another android based device and were hesitant to give Serenity a try because you thought it was only for Google TV, please give it another look.  It has a different approach to playing back your content than the official plex client.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intellectualcramps.wordpress.com/992/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intellectualcramps.wordpress.com/992/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intellectualcramps.wordpress.com&#038;blog=20154979&#038;post=992&#038;subd=intellectualcramps&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://intellectualcramps.wordpress.com/2013/04/11/serenity-for-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fdec28d17fb2417999492a96fb338eae?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kingargyle</media:title>
		</media:content>

		<media:content url="http://intellectualcramps.files.wordpress.com/2013/04/serenity-bonsai-logo.png" medium="image">
			<media:title type="html">serenity-bonsai-logo</media:title>
		</media:content>

		<media:content url="https://developer.android.com/images/brand/en_generic_rgb_wo_45.png" medium="image">
			<media:title type="html">Get it on Google Play</media:title>
		</media:content>
	</item>
		<item>
		<title>Serenity for Google TV 1.1.0</title>
		<link>http://intellectualcramps.wordpress.com/2013/04/08/serenity-for-google-tv-1-1-0/</link>
		<comments>http://intellectualcramps.wordpress.com/2013/04/08/serenity-for-google-tv-1-1-0/#comments</comments>
		<pubDate>Mon, 08 Apr 2013 16:08:29 +0000</pubDate>
		<dc:creator>kingargyle</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[googletv]]></category>
		<category><![CDATA[serenity]]></category>

		<guid isPermaLink="false">http://intellectualcramps.wordpress.com/?p=989</guid>
		<description><![CDATA[Version 1.1.0 is now available in the play store. There is one minor bug fix that came in with this release, and that is for situations where there are TV Show entries in Plex, but they have no episodes. This &#8230; <a href="http://intellectualcramps.wordpress.com/2013/04/08/serenity-for-google-tv-1-1-0/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intellectualcramps.wordpress.com&#038;blog=20154979&#038;post=989&#038;subd=intellectualcramps&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="https://play.google.com/store/apps/details?id=us.nineworlds.serenity"><br />
<img alt="Get it on Google Play" src="https://developer.android.com/images/brand/en_generic_rgb_wo_45.png" /><br />
</a></p>
<p>Version 1.1.0 is now available in the play store. There is one minor bug fix that came in with this release, and that is for situations where there are TV Show entries in Plex, but they have no episodes. This was reported through Google Play, so thanks to whoever reported this situation.</p>
<p>In addition to the bug fix, the following additonal items are new in 1.1.0.</p>
<ul>
<li><span style="line-height:1.5;">Subtitle playback support (SRT format only)</span></li>
<li><span style="line-height:1.5;">Video Tutorial through Options menu</span></li>
<li><span style="line-height:1.5;">Refactored Video Download manager</span></li>
<li><span style="line-height:1.5;">Remove Music and Photo options from menu.</span></li>
<li><span style="line-height:1.5;">Support for Long menu names.</span></li>
<li><span style="line-height:1.5;">Keyboard Shortcuts</span></li>
<li><span style="line-height:1.5;">TV Show content ratings</span></li>
<li><span style="line-height:1.5;">OSD D-Pad navigation</span></li>
<li><span style="line-height:1.5;">Improved inforgraphic size for 1080p displays</span></li>
</ul>
<p>Subtitle support works on Google TV as well as tablets.  Only SRT format is supported at this time as it appears to be the most popular version supported.  If you have other formats you would like supported by the internal player, please let me know.  Both the internal and supported external players will work with subtitles.</p>
<p>In addition, there is now a Video tutorial to help get people going with the app.  You can view this on YouTube.</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='640' height='390' src='http://www.youtube.com/embed/_yKc8ymXerg?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<p>It&#8217;ll provide a good overview of the application and how to get things setup.  In addition, I have tried to address the navigation issues for those with large video collections.  See the <a href="https://github.com/NineWorlds/serenity-android/wiki/Remote-and-Keyboard-Controls">Keyboard short cuts</a> list for a list of quick navigation features.</p>
<p>One final item, if you are in Columbus, OH on April 18th, I&#8217;ll be discussing Google TV development at the <a href="http://www.meetup.com/GDG-Columbus/events/112262612/">Google Developer&#8217;s Group meetup</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intellectualcramps.wordpress.com/989/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intellectualcramps.wordpress.com/989/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intellectualcramps.wordpress.com&#038;blog=20154979&#038;post=989&#038;subd=intellectualcramps&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://intellectualcramps.wordpress.com/2013/04/08/serenity-for-google-tv-1-1-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fdec28d17fb2417999492a96fb338eae?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kingargyle</media:title>
		</media:content>

		<media:content url="https://developer.android.com/images/brand/en_generic_rgb_wo_45.png" medium="image">
			<media:title type="html">Get it on Google Play</media:title>
		</media:content>
	</item>
		<item>
		<title>Subtitle Support</title>
		<link>http://intellectualcramps.wordpress.com/2013/04/04/subtitle-support/</link>
		<comments>http://intellectualcramps.wordpress.com/2013/04/04/subtitle-support/#comments</comments>
		<pubDate>Thu, 04 Apr 2013 18:06:36 +0000</pubDate>
		<dc:creator>kingargyle</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[googletv]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[serenity]]></category>

		<guid isPermaLink="false">http://intellectualcramps.wordpress.com/?p=986</guid>
		<description><![CDATA[One of the more frequent questions from users of Serenity for Google TV, is the ability to play back subtitles with the movie. Plex does provide the information if it is there, but until Android 4.1 (aka Jelly Bean), there &#8230; <a href="http://intellectualcramps.wordpress.com/2013/04/04/subtitle-support/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intellectualcramps.wordpress.com&#038;blog=20154979&#038;post=986&#038;subd=intellectualcramps&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>One of the more frequent questions from users of Serenity for Google TV, is the ability to play back subtitles with the movie.  Plex does provide the information if it is there, but until Android 4.1 (aka Jelly Bean), there was no native subtitle support for the video player.  Even then it seems to have problems with reading streams for the subtitles.   Google TV devices are currently based on Android 3.2 (Honeycomb) which doesn&#8217;t have an api to play subtitles back.   Plex in these cases would normally Transcode the subtitles into the video stream, however, Serenity doesn&#8217;t support transcoding.   So what to do.  Simple turn to open source software for some help.</p>
<p><a href="https://play.google.com/store/apps/details?id=us.nineworlds.serenity"><br />
<img alt="Get it on Google Play" src="https://developer.android.com/images/brand/en_generic_rgb_wo_45.png" /><br />
</a></p>
<p>Hidden on GitHub is <a href="https://github.com/JDaren/subtitleConverter">subtitleConverter</a> by J. David Requejo.  This was a PHD research project, and allows for converting from one subtitle format to another.  The nice thing is that the TimedTextObject contains a general format for subtitles.  Once it is in this format it is a matter of navigating the tree and checking the time offsets for when the title is displayed and when it should disappear.</p>
<p>Since Google TV devices don&#8217;t have native support for displaying the subtitles, how do we go about this.   Serenity uses a modified version of the MediaController, and SurfaceView.  The main activity contains the following layout xml:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;RelativeLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    android:layout_width=&quot;fill_parent&quot;
    android:layout_height=&quot;fill_parent&quot;
    android:orientation=&quot;vertical&quot;
    android:id=&quot;@+id/video_playeback&quot;
    android:background=&quot;#000000&quot;
    android:keepScreenOn=&quot;true&quot; &gt;
    
    &lt;SurfaceView android:id=&quot;@+id/surfaceView&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_centerInParent=&quot;true&quot;
        /&gt;
    
    &lt;TextView android:id=&quot;@+id/txtSubtitles&quot;
        android:layout_alignParentBottom=&quot;true&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:gravity=&quot;center&quot;
        android:layout_centerHorizontal=&quot;true&quot;
        android:visibility=&quot;invisible&quot;
        style=&quot;@android:style/TextAppearance.Large&quot;/&gt;

&lt;/RelativeLayout&gt;
</pre>
<p>This contains the surfaceview for the video to be drawn on, and a TextView to be used to display the subtitles.</p>
<p>For knowing when to display the subtitles during playback we use a Handler with a small time delay for when it should execute.  The first time it is called with it&#8217;s runnable, it executes immediately.  Every subsequent execution is delayed by 100 milliseconds.</p>
<pre class="brush: java; title: ; notranslate">
private Handler subtitleDisplayHandler = new Handler();
private Runnable subtitle = new Runnable() {
 public void run() {
   if (isMediaPlayerStateValid() &amp;&amp; mediaPlayer.isPlaying()) {
      int currentPos = mediaPlayer.getCurrentPosition();
      Collection&lt;Caption&gt; subtitles =  srt.captions.values();
      for(Caption caption : subtitles) {
         if (currentPos &gt;= caption.start.getMilliseconds() &amp;&amp; currentPos &lt;= caption.end.getMilliseconds()) {
            onTimedText(caption);
            break;
  	 } else if (currentPos &gt; caption.end.getMilliseconds()) {
	    onTimedText(null);
         }
      }
   }
   subtitleDisplayHandler.postDelayed(this, SUBTITLE_DISPLAY_CHECK);
 };
};
</pre>
<p>The postDelayed will re-execute the Handler with the runnable by the amount of milliseconds specified.</p>
<p>The onTimedText is what is responsible for displaying or hiding the subtitles during playback.</p>
<pre class="brush: java; title: ; notranslate">

public void onTimedText(Caption text) {
   TextView subtitles = (TextView) findViewById(R.id.txtSubtitles);
   if (text == null) {
      subtitles.setVisibility(View.INVISIBLE);
      return;
   }
   subtitles.setText(Html.fromHtml(text.content));
   subtitles.setVisibility(View.VISIBLE);
}

</pre>
<p>Since the subtitles can be marked up with HTML to specify italics, bold, or underline we use the Html.fromHtml method to set the text as appropriate and set the visibility.  If text came in null, the view is hidden.</p>
<p>The whole process is kicked off by a Async task that retrieves the Subtitles from Plex as a stream.</p>
<pre class="brush: java; title: ; notranslate">
public class SubtitleAsyncTask extends AsyncTask&lt;Void, Void, Void&gt; {

  @Override
  protected Void doInBackground(Void... params) {
    if (subtitleURL != null) {
       try {
          URL url = new URL(subtitleURL);
          InputStream stream = url.openStream();
          FormatSRT formatSRT = new FormatSRT();
          srt = formatSRT.parseFile(stream);
          subtitleDisplayHandler.post(subtitle);
       } catch (Exception e) {
          Log.e(getClass().getName(), e.getMessage(), e);
       }
    }
    // TODO Auto-generated method stub
    return null;
  }
}
</pre>
<p>This just reads the stream, and parses the SubRip (SRT) formatted subtitles files into a TimedTextObject, and then starts the handler.</p>
<p>It is important to make sure when your Activity finishes that you remove any callbacks on the Handler.  So make sure to do the following in your onFinish method:</p>
<pre class="brush: java; title: ; notranslate">
   subtitleDisplayHandler.removeCallbacks(subtitle);
</pre>
<p>This should work regardless of Android version.  It has been tested on Android 3.2 through the lastest JellyBean release.   If you need to manipulate Subtitles, use them, or covert them to other formats, you may want to try out the subtitleConverter project.   Expect to see this support with Serenity for Google TV v1.1.0.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intellectualcramps.wordpress.com/986/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intellectualcramps.wordpress.com/986/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intellectualcramps.wordpress.com&#038;blog=20154979&#038;post=986&#038;subd=intellectualcramps&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://intellectualcramps.wordpress.com/2013/04/04/subtitle-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fdec28d17fb2417999492a96fb338eae?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kingargyle</media:title>
		</media:content>

		<media:content url="https://developer.android.com/images/brand/en_generic_rgb_wo_45.png" medium="image">
			<media:title type="html">Get it on Google Play</media:title>
		</media:content>
	</item>
		<item>
		<title>Setting up Robolectric and Maven</title>
		<link>http://intellectualcramps.wordpress.com/2013/03/28/setting-up-robolectric-and-maven/</link>
		<comments>http://intellectualcramps.wordpress.com/2013/03/28/setting-up-robolectric-and-maven/#comments</comments>
		<pubDate>Thu, 28 Mar 2013 19:29:58 +0000</pubDate>
		<dc:creator>kingargyle</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[googletv]]></category>
		<category><![CDATA[serenity]]></category>

		<guid isPermaLink="false">http://intellectualcramps.wordpress.com/?p=979</guid>
		<description><![CDATA[I ran into some frustrations while trying to use Robolectric and the Android Maven Plugin.  The tests are not included in the same project as the main code, because Eclipse likes to bundle all the tests into the main apk &#8230; <a href="http://intellectualcramps.wordpress.com/2013/03/28/setting-up-robolectric-and-maven/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intellectualcramps.wordpress.com&#038;blog=20154979&#038;post=979&#038;subd=intellectualcramps&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I ran into some frustrations while trying to use <a href="http://pivotal.github.com/robolectric/maven-quick-start.html">Robolectric</a> and the <a href="https://code.google.com/p/maven-android-plugin/">Android Maven Plugin</a>.  The tests are not included in the same project as the main code, because Eclipse likes to bundle all the tests into the main apk when testing.  This causes its own nightmares and headaches.  So I separated the tests out into their own project.   When running the tests from the command line I was having NullPointer and ClassNotFound exceptions occurring.  Took a bit to find it, but the magic formula is the following configuration entry for your surefire-test-plugin:</p>
<pre class="brush: xml; title: ; notranslate">
  &lt;plugin&gt;
   &lt;artifactId&gt;maven-surefire-plugin&lt;/artifactId&gt;
   &lt;version&gt;2.13&lt;/version&gt;
   &lt;configuration&gt;
     &lt;workingDirectory&gt;../../serenity-app&lt;/workingDirectory&gt;
   &lt;/configuration&gt;
  &lt;/plugin&gt;
</pre>
<p>Basically, Robolectric expects to be able to find resources in the same project as it is being run, unfortunately if you separate the tests out so they behave nicely with ADT, you have to point the working directory back to the root of your apps directory.   Once I did this, all the tests started working.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intellectualcramps.wordpress.com/979/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intellectualcramps.wordpress.com/979/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intellectualcramps.wordpress.com&#038;blog=20154979&#038;post=979&#038;subd=intellectualcramps&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://intellectualcramps.wordpress.com/2013/03/28/setting-up-robolectric-and-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fdec28d17fb2417999492a96fb338eae?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kingargyle</media:title>
		</media:content>
	</item>
		<item>
		<title>Serenity for Google TV 1.0.2</title>
		<link>http://intellectualcramps.wordpress.com/2013/03/24/serenity-for-google-tv-1-0-2/</link>
		<comments>http://intellectualcramps.wordpress.com/2013/03/24/serenity-for-google-tv-1-0-2/#comments</comments>
		<pubDate>Sun, 24 Mar 2013 16:38:32 +0000</pubDate>
		<dc:creator>kingargyle</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[planetandroid]]></category>
		<category><![CDATA[plex media server]]></category>
		<category><![CDATA[serenity]]></category>

		<guid isPermaLink="false">http://intellectualcramps.wordpress.com/?p=977</guid>
		<description><![CDATA[Serenity for Google TV v 1.0.2 is now live in the Google Play Store. This is primarily a bug fix release: Fix issue with banners being stretched vertically Fix issue with Poster being vertically stretched. On Deck for episodes now &#8230; <a href="http://intellectualcramps.wordpress.com/2013/03/24/serenity-for-google-tv-1-0-2/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intellectualcramps.wordpress.com&#038;blog=20154979&#038;post=977&#038;subd=intellectualcramps&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://intellectualcramps.files.wordpress.com/2013/03/serenity_logo2_512.png"><img class="aligncenter size-full wp-image-971" alt="serenity_logo2_512" src="http://intellectualcramps.files.wordpress.com/2013/03/serenity_logo2_512.png?w=640"   /></a></p>
<p>Serenity for Google TV v 1.0.2 is now live in the <a href="https://play.google.com/store/apps/details?id=us.nineworlds.serenity">Google Play Store</a>.</p>
<p><a href="https://play.google.com/store/apps/details?id=us.nineworlds.serenity"><br />
<img alt="Get it on Google Play" src="https://developer.android.com/images/brand/en_generic_rgb_wo_45.png" /><br />
</a></p>
<p>This is primarily a bug fix release:</p>
<ul>
<li><span style="line-height:16px;">Fix issue with banners being stretched vertically</span></li>
<li>Fix issue with Poster being vertically stretched.</li>
<li>On Deck for episodes now behaves the way the plex media server FAQ describes. If you finish watching an episode completely, the next episode will be refreshed automatically.</li>
</ul>
<p>Remember you need a Plex Media Server and either a Google TV device, or an Android based tablet to use Serenity.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intellectualcramps.wordpress.com/977/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intellectualcramps.wordpress.com/977/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intellectualcramps.wordpress.com&#038;blog=20154979&#038;post=977&#038;subd=intellectualcramps&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://intellectualcramps.wordpress.com/2013/03/24/serenity-for-google-tv-1-0-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fdec28d17fb2417999492a96fb338eae?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kingargyle</media:title>
		</media:content>

		<media:content url="http://intellectualcramps.files.wordpress.com/2013/03/serenity_logo2_512.png" medium="image">
			<media:title type="html">serenity_logo2_512</media:title>
		</media:content>

		<media:content url="https://developer.android.com/images/brand/en_generic_rgb_wo_45.png" medium="image">
			<media:title type="html">Get it on Google Play</media:title>
		</media:content>
	</item>
		<item>
		<title>Serenity for Google TV 1.0.0</title>
		<link>http://intellectualcramps.wordpress.com/2013/03/19/serenity-for-google-tv-1-0-0/</link>
		<comments>http://intellectualcramps.wordpress.com/2013/03/19/serenity-for-google-tv-1-0-0/#comments</comments>
		<pubDate>Tue, 19 Mar 2013 16:25:15 +0000</pubDate>
		<dc:creator>kingargyle</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[serenity]]></category>

		<guid isPermaLink="false">http://intellectualcramps.wordpress.com/?p=970</guid>
		<description><![CDATA[Serenity for Google TV v 1.0.0 is now live in the Google Play Store. It has been an interesting learning experience designing an android based app.  Particularly one designed for a 10 foot viewing experience.  Designing for a TV screen &#8230; <a href="http://intellectualcramps.wordpress.com/2013/03/19/serenity-for-google-tv-1-0-0/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intellectualcramps.wordpress.com&#038;blog=20154979&#038;post=970&#038;subd=intellectualcramps&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://intellectualcramps.files.wordpress.com/2013/03/serenity_logo2_512.png"><img class="aligncenter size-full wp-image-971" alt="serenity_logo2_512" src="http://intellectualcramps.files.wordpress.com/2013/03/serenity_logo2_512.png?w=640"   /></a></p>
<p>Serenity for Google TV v 1.0.0 is now live in the <a href="https://play.google.com/store/apps/details?id=us.nineworlds.serenity">Google Play Store</a>.</p>
<p><a href="https://play.google.com/store/apps/details?id=us.nineworlds.serenity"><br />
<img alt="Get it on Google Play" src="https://developer.android.com/images/brand/en_generic_rgb_wo_45.png" /><br />
</a></p>
<p>It has been an interesting learning experience designing an android based app.  Particularly one designed for a 10 foot viewing experience.  Designing for a TV screen is not the same necessarily as designing for a tablet.  There are different interaction points, and if you want the app to work well on both, you have to strike a balance between the features of both items.   It is in particular why Serenity is only landscape mode, and why it is a full screen application.   With devices like Ouya being released, and the various android on a stick devices out there, we are going to see that just porting a tablet app unchanged to a tv environment may not necessarily be a good experience for the user.  However, going the opposite direction one can balance the experience between the TV and the tablet and have it work well.  It doesn&#8217;t translate as well when going to the smaller phone screen though.</p>
<p><span style="line-height:1.5;">Serenit currently depends on a plex media server for it&#8217;s information and storage of the movies and tv shows.   I like Plex, but the developer/third-party documentation leaves a lot to be desired at times.   Information you need to access and update portions of the server metadata is buried on the projects developer&#8217;s forums, and the wiki documentation is sparse at best.  To help others, the REST library I use to access the content on Plex is open sourced as part of the project.  Hopefully this makes it a bit easier for others to access the metadata stored on the plex server.</span></p>
<p><span style="line-height:1.5;">Anyways, here are a few screen shots of Serenity.  It works on all Google TV devices, and should work on a wide variety of android tablets.   The app code is<a href="https://github.com/NineWorlds/serenity-android/wiki/Serenity-for-Google-TV"> available on github</a>, as well as development versions of the app for those that want to test drive it before purchasing.</span></p>
<p><img class="aligncenter" alt="" src="https://lh6.ggpht.com/VFEOC0G5HtKFJm1PK2cFSzi9H_EV99SK411IhCMij1qT9ED2rmUim7tp1UzDq3K-UQ=w705" width="705" height="344" /></p>
<p><a href="http://intellectualcramps.files.wordpress.com/2013/03/episodebrowser_720.png"><img class="aligncenter size-large wp-image-972" alt="episodebrowser_720" src="http://intellectualcramps.files.wordpress.com/2013/03/episodebrowser_720.png?w=640&#038;h=360" width="640" height="360" /></a></p>
<p><a href="http://intellectualcramps.files.wordpress.com/2013/03/tvshowsbrowser.png"><img class="aligncenter size-large wp-image-973" alt="tvshowsbrowser" src="http://intellectualcramps.files.wordpress.com/2013/03/tvshowsbrowser.png?w=640&#038;h=364" width="640" height="364" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intellectualcramps.wordpress.com/970/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intellectualcramps.wordpress.com/970/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intellectualcramps.wordpress.com&#038;blog=20154979&#038;post=970&#038;subd=intellectualcramps&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://intellectualcramps.wordpress.com/2013/03/19/serenity-for-google-tv-1-0-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fdec28d17fb2417999492a96fb338eae?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kingargyle</media:title>
		</media:content>

		<media:content url="http://intellectualcramps.files.wordpress.com/2013/03/serenity_logo2_512.png" medium="image">
			<media:title type="html">serenity_logo2_512</media:title>
		</media:content>

		<media:content url="https://developer.android.com/images/brand/en_generic_rgb_wo_45.png" medium="image">
			<media:title type="html">Get it on Google Play</media:title>
		</media:content>

		<media:content url="https://lh6.ggpht.com/VFEOC0G5HtKFJm1PK2cFSzi9H_EV99SK411IhCMij1qT9ED2rmUim7tp1UzDq3K-UQ=w705" medium="image" />

		<media:content url="http://intellectualcramps.files.wordpress.com/2013/03/episodebrowser_720.png?w=640" medium="image">
			<media:title type="html">episodebrowser_720</media:title>
		</media:content>

		<media:content url="http://intellectualcramps.files.wordpress.com/2013/03/tvshowsbrowser.png?w=640" medium="image">
			<media:title type="html">tvshowsbrowser</media:title>
		</media:content>
	</item>
		<item>
		<title>Serenity for Google TV 0.11.0 Available</title>
		<link>http://intellectualcramps.wordpress.com/2013/03/12/serenity-for-google-tv-0-11-0-available/</link>
		<comments>http://intellectualcramps.wordpress.com/2013/03/12/serenity-for-google-tv-0-11-0-available/#comments</comments>
		<pubDate>Tue, 12 Mar 2013 16:07:19 +0000</pubDate>
		<dc:creator>kingargyle</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[googletv]]></category>
		<category><![CDATA[serenity]]></category>

		<guid isPermaLink="false">http://intellectualcramps.wordpress.com/?p=965</guid>
		<description><![CDATA[So I missed posting that 0.10.0 was released, and now 0.11.0 is available here are the Features from both releases.   Serenity requires a Plex Media Server, and runs best on Android Tablets or a Google TV device.   I&#8217;ll &#8230; <a href="http://intellectualcramps.wordpress.com/2013/03/12/serenity-for-google-tv-0-11-0-available/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intellectualcramps.wordpress.com&#038;blog=20154979&#038;post=965&#038;subd=intellectualcramps&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>So I missed posting that 0.10.0 was released, and now 0.11.0 is available here are the Features from both releases.   Serenity requires a Plex Media Server, and runs best on Android Tablets or a Google TV device.   I&#8217;ll be putting in screen size restrictions to exclude phones (sorry I don&#8217;t have the development cycles available currently to support the smaller screens).</p>
<p>Download: <a href="https://github.com/NineWorlds/serenity-android/wiki/Downloads">https://github.com/NineWorlds/serenity-android/wiki/Downloads</a></p>
<p>Without further ado, here are the features:</p>
<p>0.11.0</p>
<ul>
<li>Ability to Search for Movies. Press the Search button or select the Search menu option. On Vizio Co-Stars the search button will bring up the in app search dialog, other devices may only bring up the Global, it is device dependent on how this is implemented.
<ul>
<li>Search Suggestions are provided based on last keywords searched.</li>
<li>Only movie titles are searched.</li>
<li>Items that match the search criteria are shown in the Movie Browser.</li>
</ul>
</li>
<li>Changed movie background image. Image curtesy of the MediaRedux skin from xbmc.</li>
<li>Episode Filtering now available. Episodes filter takes you directly to the episode browser.</li>
<li>Download movies and episodes to external storage device. Use an external player to play them back. Access this option by long pressing a movie or episode poster image. Items are downloaded in background so you can continue to use the app, you will be notified when downloads are complete.</li>
<li>Ability to select where download videos are stored. This uses external storage and starts at the root, this is device dependent on how it defines external storage.</li>
<li>Implement HttpResponseCache to help cache some requests. May help with performance on large video collections. Cache is 10meg and uses external storage.</li>
</ul>
<p>0.10.0</p>
<ul>
<li>Discover Plex Media Servers on the local network. This relies on the DLNA option being enabled on the plex media server. A new preference setting is available to select the Media server to connect too.</li>
<li>Packages have been renamed so you should Uninstall prior Serenity applications so you don&#8217;t end up with duplicate options in your application launcher.</li>
<li>Long press on a Movie poster to be able to Toggle Watched and Unwatched status. Note for Vizio CoStar users there is a bug with the Costar Remote where it sends the wrong KeyCode, you can move the mouse pointer over the poster, and then hold down the &#8220;-&#8221; key on the front of the remote to get the menu option. Other devices and remote ip controls should work correctly.</li>
<li>Tablets &#8211; Add basic support to use Able Remote as a second screen device. If you long press the poster, you should get an option to &#8220;Play on TV&#8221; if you have able remote installed. The only player that currently works is the aVia Media Player. Neither Serenity or ViMu seem to respond to the url intent that is passed. Chrome might work as well depending on video being sent.</li>
<li>After a video is played and returning to the browser screen, the watched status is updated on the screen.</li>
<li>User Requested &#8211; Increased legibility for Drop Down menus and all screens. Font sizes have been increased due to user feedback.</li>
<li>Adds enhanced support for ViMu and MX Player external players. ViMu enforces direct play of the files, MX Player enforces hardware decoding. Both players now get sent and display the title of the video being played.</li>
<li>User Requested &#8211; Support for Season and Episode numbers in Summary screens when browsing. This requires that your TV Shows have this in their file names in the format of SxxExx. If there are other formats that need to be supported please comment below or open an enhancement request.</li>
<li>User Requested &#8211; Display Date originally Aired when browsing episodes.</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intellectualcramps.wordpress.com/965/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intellectualcramps.wordpress.com/965/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intellectualcramps.wordpress.com&#038;blog=20154979&#038;post=965&#038;subd=intellectualcramps&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://intellectualcramps.wordpress.com/2013/03/12/serenity-for-google-tv-0-11-0-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fdec28d17fb2417999492a96fb338eae?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kingargyle</media:title>
		</media:content>
	</item>
		<item>
		<title>Serenity 0.9.0 Released and Transcoding Thoughts.</title>
		<link>http://intellectualcramps.wordpress.com/2013/02/24/serenity-0-9-0-released-and-transcoding-thoughts/</link>
		<comments>http://intellectualcramps.wordpress.com/2013/02/24/serenity-0-9-0-released-and-transcoding-thoughts/#comments</comments>
		<pubDate>Sun, 24 Feb 2013 17:44:48 +0000</pubDate>
		<dc:creator>kingargyle</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[serenity]]></category>
		<category><![CDATA[googletv]]></category>
		<category><![CDATA[myplex]]></category>
		<category><![CDATA[tv boxes]]></category>

		<guid isPermaLink="false">http://intellectualcramps.wordpress.com/?p=961</guid>
		<description><![CDATA[Serenity version 0.9.0 has been posted to the downloads page. This adds a few features: Adds ability to Filter TV Shows by Categories. Fixes some force close issues when no Library entries are found. Refactors some screens to better show &#8230; <a href="http://intellectualcramps.wordpress.com/2013/02/24/serenity-0-9-0-released-and-transcoding-thoughts/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intellectualcramps.wordpress.com&#038;blog=20154979&#038;post=961&#038;subd=intellectualcramps&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="https://github.com/kingargyle/plexapp-client/wiki/Serenity-for-Google-TV">Serenity</a> version 0.9.0 has been posted to the downloads page. This adds a few features:</p>
<ul>
<li><span style="line-height:16px;">Adds ability to Filter TV Shows by Categories.</span></li>
<li>Fixes some force close issues when no Library entries are found.</li>
<li>Refactors some screens to better show Director, Writer, Genre, etc metadata information.</li>
</ul>
<p>Download: <a href="https://github.com/kingargyle/plexapp-client/wiki/Downloads">https://github.com/kingargyle/plexapp-client/wiki/Downloads</a></p>
<p>Serenity runs best on Android Tablets and Google TV boxes.  It also seems to work very well with the various MBX flavored Android 4.x TV sticks.   Serenity is designed for the Big Screen experience, so it&#8217;s interface is designed for use with remotes and directional pads (i.e. XBox/PS 3/OnLive) controllers.   This means it should also work on Ouya&#8217;s device when it comes out, but has not been tested there yet.</p>
<p>I&#8217;ve been asked about transcoding support for Serenity a number of times, and it is one of Plex&#8217;s heavily promoted features.   Serenity allows the use of an external video player, where as the official Plex app doesn&#8217;t.   Transcoding comes into play with Android and Plex in many cases because the original audio/video codecs aren&#8217;t available on the device you want to play the audio or video file on.  Same with viewing Photos, transcoding converts it to a format your device can handle.    It is also may be necessary if you have your Plex Media Server so that it can be seen externally on the net.  Whether through MyPlex or directly making it visible.   In these cases you may want to transcode to a lower bit so it can be played remote over a celluar connection without using all your bandwidth.</p>
<p>For Serenity, it is not designed for the later use case, and for the former use case where the necessary audio/video codecs may not natively be available, it does provide the option to use an external player.   So for videos that your device may not have the necessary codecs built in, you can choose to use an external player like <a href="https://play.google.com/store/apps/details?id=com.mxtech.videoplayer.ad&amp;hl=en">MX Player</a> which does understand a variety of codecs.    With this functionality, Serenity doesn&#8217;t need to provide transcoding support, it can pass the necessary url to the external player. The external player handles the rest.</p>
<p>If you want to make sure your video files can be played natively by the internal player then at least make sure you have your videos encoded in the following formats:</p>
<ul>
<li><span style="line-height:1.5;">Containers: MKV, MP4</span></li>
<li>Video Codecs: H264, XVID, MPEG-4</li>
<li>Audio Codes: AAC (2 or 6 channel format).</li>
</ul>
<p>The above should work on pretty much any android device.  <a href="http://handbrake.fr/">Handbrake</a> can be used to convert a wide variety of video formats to the necessary format, and it is available on a variety of platforms.</p>
<p>If you have a Google TV device, you have more options available to you for native support.   Here are the ones I know work:</p>
<ul>
<li><span style="line-height:16px;">Containers: MKV, MP4, AVI</span></li>
<li>Video Codecs: H264, XVID, DIVX, MPEG-4</li>
<li>Audio Codecs: AC3/DTS (pass thru on some devices), MP3, and AAC</li>
</ul>
<p>If you want to keep your AC3/DTS audio tracks, but still make your movies playable natively.  Then I recommend choosing a container format like MKV which can hold multiple audio tracks.   The first audio track should be encoded as an AAC track (I prefer 6 channel or 2 channel dolby pro-logic II), the second you can have as your AC3/DTS pass through track.   This way you keep the digital tracks for your home theaters and devices/players that support them, and the AAC track can be played natively by your device.   External players like MX Player allow you to switch the audio tracks as well.  So you could include English on one track, and another foreign launguage audio track on the second.</p>
<p>Serenity is pretty functional and with the ability to choose external players, transcoding isn&#8217;t really necessary.  Especially since it&#8217;s focus is not on remote play of videos, but of playing them locally in your home on either a Tablet or a device connected to your TV.</p>
<p>Next version will be 0.10.0.   Time frame for Serenity to be in the play store has not been determined, but we&#8217;ll put 1.0.0 Beta up there when it is ready.  Until then, you can get the APK directly from the download site.</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intellectualcramps.wordpress.com/961/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intellectualcramps.wordpress.com/961/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intellectualcramps.wordpress.com&#038;blog=20154979&#038;post=961&#038;subd=intellectualcramps&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://intellectualcramps.wordpress.com/2013/02/24/serenity-0-9-0-released-and-transcoding-thoughts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fdec28d17fb2417999492a96fb338eae?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kingargyle</media:title>
		</media:content>
	</item>
	</channel>
</rss>
