MediaPlayer2Factory: use on demand initialization for static variable.

Test: MediaPlayer2 plays
Bug: 63934228
Change-Id: I0eb42a9eaf61ba2d4d49900d2926288e932e65cb
diff --git a/media/libmedia/MediaPlayer2Factory.h b/media/libmedia/MediaPlayer2Factory.h
index 799b5f3..416d241 100644
--- a/media/libmedia/MediaPlayer2Factory.h
+++ b/media/libmedia/MediaPlayer2Factory.h
@@ -50,9 +50,6 @@
         virtual sp<MediaPlayer2Base> createPlayer(pid_t pid) = 0;
     };
 
-    static status_t registerFactory(IFactory* factory,
-                                    player2_type type);
-    static void unregisterFactory(player2_type type);
     static player2_type getPlayerType(const sp<MediaPlayer2Engine>& client,
                                       const char* url);
     static player2_type getPlayerType(const sp<MediaPlayer2Engine>& client,
@@ -76,11 +73,13 @@
 
     MediaPlayer2Factory() { }
 
+    static bool ensureInit_l();
+
     static status_t registerFactory_l(IFactory* factory,
                                       player2_type type);
 
     static Mutex       sLock;
-    static tFactoryMap sFactoryMap;
+    static tFactoryMap *sFactoryMap;
     static bool        sInitComplete;
 
     DISALLOW_EVIL_CONSTRUCTORS(MediaPlayer2Factory);