Change the handling of url path
authorEonseokLee <eonseok.lee@samsung.com>
Fri, 22 Mar 2013 13:55:59 +0000 (22:55 +0900)
committerEonseokLee <eonseok.lee@samsung.com>
Fri, 22 Mar 2013 13:55:59 +0000 (22:55 +0900)
Change-Id: Ie9f8d459b46868ac9daf2fac6acc64f957867426
Signed-off-by: EonseokLee <eonseok.lee@samsung.com>
inc/FMediaPlayer.h
src/FMedia_PlayerImpl.cpp

index 0c48942..c8257aa 100755 (executable)
@@ -745,7 +745,6 @@ public:
        * @exception    E_INVALID_ARG                   A specified input parameter is invalid.
        * @exception    E_OUT_OF_MEMORY                 The memory is insufficient.
        * @remarks      See Programming Guide for the detail information of supported HTTP header fields.
-       * @remarks      Input URL should be encoded if there are non-alphanumeric characters in URL.
        * @see                  Close()
        */
        result OpenUrlAsync(const Tizen::Base::String& url, const Tizen::Base::Collection::IMap* pHeader = null);
@@ -772,7 +771,6 @@ public:
        * @remarks      The download will start when Play() is called.
        * @remarks      If the specified file name already exists, then the old file will be overwritten with the new one.
        * @remarks      See Programming Guide for the detail information of supported HTTP header fields.
-       * @remarks      Input URL should be encoded if there are non-alphanumeric characters in URL.
        * @see                  Close()
        */
        result OpenUrlAsync(const Tizen::Base::String& url, const Tizen::Base::String& filePath, IPlayerProgressiveDownloadListener& listener, const Tizen::Base::Collection::IMap* pHeader = null);
index 4936bbf..4fb0516 100644 (file)
@@ -541,9 +541,12 @@ _PlayerImpl::OpenUrl(const Tizen::Base::Utility::Uri& mediaUri, bool isAync)
 
        SysTryReturn(NID_MEDIA, !mediaUri.ToString().IsEmpty(), E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] Invalid argument is used. Input url is empty");
 
-       scheme = mediaUri.GetScheme();
-       SysTryCatch(NID_MEDIA, (scheme.Equals(L"rtsp", false) || scheme.Equals(L"http", false)), r = E_UNSUPPORTED_PROTOCOL,
-               E_UNSUPPORTED_PROTOCOL, "[E_UNSUPPORTED_PROTOCOL] error has been occurred.");
+       urlStr = mediaUri.ToString();
+
+       r = urlStr.SubString(0, 4, scheme);
+       SysTryReturn(NID_MEDIA, r == E_SUCCESS, E_UNSUPPORTED_PROTOCOL , E_UNSUPPORTED_PROTOCOL, "[%s] Failed to perform SubString operation", GetErrorMessage(E_UNSUPPORTED_PROTOCOL));
+       SysTryReturn(NID_MEDIA, (scheme.Equals(L"rtsp", false) || scheme.Equals(L"http", false)), r = E_UNSUPPORTED_PROTOCOL,
+       E_UNSUPPORTED_PROTOCOL, "[E_UNSUPPORTED_PROTOCOL] error has been occurred.");
 
        pInputFilePath.reset(_StringConverter::CopyToCharArrayN(mediaUri.ToString()));
        __isAsync = isAync;
@@ -2192,7 +2195,6 @@ _PlayerImpl::OpenUrlAsync(const Tizen::Base::String& url, const Tizen::Base::Col
        result r = E_SUCCESS;
 
        int err = ::PLAYER_ERROR_NONE;
-       Tizen::Base::Utility::Uri mediaUri;
        Tizen::Base::String scheme;
        bool containsCookie = false;
        bool containsUserAgent = false;
@@ -2213,13 +2215,12 @@ _PlayerImpl::OpenUrlAsync(const Tizen::Base::String& url, const Tizen::Base::Col
 
        SysTryReturn(NID_MEDIA, !url.IsEmpty(), E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] Invalid argument is used. Input url is empty");
 
-       mediaUri.SetUri(url);
-       scheme = mediaUri.GetScheme();
-       SysTryCatch(NID_MEDIA, scheme.Equals(L"http", false), r = E_UNSUPPORTED_PROTOCOL,
-               E_UNSUPPORTED_PROTOCOL, "[E_UNSUPPORTED_PROTOCOL] scheme is Unsupported protocol");
-
        if (pHeader)
        {
+               r = url.SubString(0, 4, scheme);
+               SysTryReturn(NID_MEDIA, r == E_SUCCESS, E_UNSUPPORTED_PROTOCOL , E_UNSUPPORTED_PROTOCOL, "[%s] Failed to perform SubString operation", GetErrorMessage(E_UNSUPPORTED_PROTOCOL));
+               SysTryReturn(NID_MEDIA, scheme.Equals(L"http", false), E_UNSUPPORTED_PROTOCOL,  E_UNSUPPORTED_PROTOCOL, "[E_UNSUPPORTED_PROTOCOL] error has been occurred.");
+
                const HashMap *pMapHeader = dynamic_cast<const HashMap *>(pHeader);
                SysTryCatch(NID_MEDIA, pMapHeader != null, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] A system error has been occurred.");
                pMapHeader->ContainsKey(String("Cookie"), containsCookie);
@@ -2264,6 +2265,12 @@ _PlayerImpl::OpenUrlAsync(const Tizen::Base::String& url, const Tizen::Base::Col
                        }
                }
        }
+       else
+       {
+               r = url.SubString(0, 4, scheme);
+               SysTryReturn(NID_MEDIA, r == E_SUCCESS, E_UNSUPPORTED_PROTOCOL , E_UNSUPPORTED_PROTOCOL, "[%s] Failed to perform SubString operation", GetErrorMessage(E_UNSUPPORTED_PROTOCOL));
+               SysTryReturn(NID_MEDIA, (scheme.Equals(L"rtsp", false) || scheme.Equals(L"http", false)), E_UNSUPPORTED_PROTOCOL,       E_UNSUPPORTED_PROTOCOL, "[E_UNSUPPORTED_PROTOCOL] error has been occurred.");
+       }
 
        pInputFilePath.reset(_StringConverter::CopyToCharArrayN(url));
        __isAsync = true;
@@ -2386,7 +2393,6 @@ _PlayerImpl::OpenUrlAsync(Player* pPlayerInstance, const Tizen::Base::String& ur
        result r = E_SUCCESS;
 
        int err = ::PLAYER_ERROR_NONE;
-       Tizen::Base::Utility::Uri mediaUri;
        Tizen::Base::String scheme;
        bool containsCookie = false;
        bool containsUserAgent = false;
@@ -2414,10 +2420,9 @@ _PlayerImpl::OpenUrlAsync(Player* pPlayerInstance, const Tizen::Base::String& ur
 
        SysTryReturn(NID_MEDIA, !url.IsEmpty(), E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] Invalid argument is used. Input url is empty");
 
-       mediaUri.SetUri(url);
-       scheme = mediaUri.GetScheme();
-       SysTryCatch(NID_MEDIA, scheme.Equals(L"http", false), r = E_UNSUPPORTED_PROTOCOL,
-               E_UNSUPPORTED_PROTOCOL, "[E_UNSUPPORTED_PROTOCOL] scheme is Unsupported protocol");
+       r = url.SubString(0, 4, scheme);
+       SysTryReturn(NID_MEDIA, r == E_SUCCESS, E_UNSUPPORTED_PROTOCOL , E_UNSUPPORTED_PROTOCOL, "[%s] Failed to perform SubString operation", GetErrorMessage(E_UNSUPPORTED_PROTOCOL));
+       SysTryReturn(NID_MEDIA, (scheme.Equals(L"http", false)), E_UNSUPPORTED_PROTOCOL,        E_UNSUPPORTED_PROTOCOL, "[E_UNSUPPORTED_PROTOCOL] error has been occurred.");
 
        pInputFilePath.reset(_StringConverter::CopyToCharArrayN(url));
        __isAsync = true;