// Control
        public bool OpenMeshStream(string sourceUrl, bool mDataInStreamingAssets)
        {
            if (!sourceUrl.Contains(".mp4") && !sourceUrl.Contains("rtmp://"))
            {
                sourceUrl += ".mp4";
            }

            string url = sourceUrl;

            if (!url.StartsWith("http") && !url.StartsWith("rtmp") && mDataInStreamingAssets)
            {
                url = Application.streamingAssetsPath + "/" + sourceUrl;
                Debug.Log("[MeshReader] Open in StreamingAssets: " + url);

                //ANDROID STREAMING ASSETS => need to copy the data somewhere else on device to acces it, beacause it is currently in jar file
                if (url.StartsWith("jar"))
                {
                    WWW www = new WWW(url);
                    //yield return www; //can't do yield here, not really blocking beacause the data is local
                    while (!www.isDone)
                    {
                        ;
                    }

                    if (!string.IsNullOrEmpty(www.error))
                    {
                        Debug.LogError("[MeshReader] PATH : " + url);
                        Debug.LogError("[MeshReader] Can't read data in streaming assets: " + www.error);
                    }
                    else
                    {
                        //copy data on device
                        url = Application.persistentDataPath + "/" + sourceUrl;
                        if (!System.IO.File.Exists(url))
                        {
                            Debug.Log("[MeshReader] NEW Roopath: " + url);
                            System.IO.FileStream fs = System.IO.File.Create(url);
                            fs.Write(www.bytes, 0, www.bytesDownloaded);
                            Debug.Log("[MeshReader] data copied");
                            fs.Dispose();
                        }
                    }
                }
            }

            TextFormat = getTextureFormat();
            //TextFormat = TextureFormat.PVRTC_RGB4;
            Debug.Log("...................this platform is ............->" + TextFormat);
            if (!ReaderAPIPRM.OpenMeshStream(ApiKey, url, (int)TextFormat))
            {
                return(false);
            }
            //ReaderAPIPRM.SetReaderLoop(ApiKey, false);
            ReaderAPIPRM.GetResolution(ApiKey, ref TextureWidth, ref TextureHeight);
            MeshData.mVersion = (Version)ReaderAPIPRM.GetFormatVersion(ApiKey);
            ReaderAPIPRM.GetMeshStreamInfo(ApiKey, ref SourceDurationSec, ref SourceFPS, ref SourceNbFrames);
            if (MeshData.mVersion == Version.FORMAT_OLD)
            {
                TextFormat = TextureFormat.RGBA32;
            }
            else
            {
                TextureWidth  = getWidthInNewFormat(TextureWidth);
                TextureHeight = TextureWidth;
            }

            Debug.Log("[MeshPlayerPlugin] Open Success!");
            Debug.Log("[MeshReader] Stream Duration = " + SourceDurationSec);
            Debug.Log("[MeshReader] Stream FPS = " + SourceFPS);
            Debug.Log("[MeshReader] Stream Number of Frames = " + SourceNbFrames);
            return(true);
        }