use dedicated looper for GenericSource

- handle setVideoSurface in deferred action, and return
  to client immediately

- handle GenericSource's prepareAsync on its own looper,
  instead of sharing looper with NuPlayer

- let HTTPLiveSource share looper with LiveSession, instead
  of NuPlayer

- remove reflector in RTSPSource

Bug: 16892748
Change-Id: I1aed557320052012065f5a90adbcb03c238da988
diff --git a/media/libmediaplayerservice/nuplayer/GenericSource.h b/media/libmediaplayerservice/nuplayer/GenericSource.h
index 44d690e..d3081de 100644
--- a/media/libmediaplayerservice/nuplayer/GenericSource.h
+++ b/media/libmediaplayerservice/nuplayer/GenericSource.h
@@ -70,6 +70,7 @@
 
 private:
     enum {
+        kWhatPrepareAsync,
         kWhatFetchSubtitleData,
         kWhatFetchTimedTextData,
         kWhatSendSubtitleData,
@@ -104,12 +105,17 @@
     int64_t mOffset;
     int64_t mLength;
 
+    sp<ALooper> mLooper;
+
+
     void resetDataSource();
 
     status_t initFromDataSource(
             const sp<DataSource> &dataSource,
             const char *mime);
 
+    void onPrepareAsync();
+
     void fetchTextData(
             uint32_t what, media_track_type type,
             int32_t curGen, sp<AnotherPacketSource> packets, sp<AMessage> msg);