[ThumbnailExtractor] Add thumbnail extractor api
authorMinje Ahn <minje.ahn@samsung.com>
Fri, 3 Feb 2017 00:59:26 +0000 (09:59 +0900)
committerMinje Ahn <minje.ahn@samsung.com>
Tue, 7 Feb 2017 23:24:53 +0000 (08:24 +0900)
thumbnail-util capi base

Change-Id: I87136b4c25784af8b0b8e2ae8fc37a0a7d4aa82c
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
packaging/csapi-multimedia.spec
src/Tizen.Multimedia/Interop/Interop.Libraries.cs
src/Tizen.Multimedia/Interop/Interop.ThumbnailExtractor.cs [new file with mode: 0755]
src/Tizen.Multimedia/ThumbnailExtractor/ThumbnailData.cs [new file with mode: 0755]
src/Tizen.Multimedia/ThumbnailExtractor/ThumbnailExtractor.cs [new file with mode: 0755]
src/Tizen.Multimedia/ThumbnailExtractor/ThumbnailExtractorErrorFactory.cs [new file with mode: 0755]
src/Tizen.Multimedia/Tizen.Multimedia.Net45.csproj
src/Tizen.Multimedia/Tizen.Multimedia.csproj

index b64ab95..aa97af9 100644 (file)
@@ -1,6 +1,6 @@
 Name:       csapi-multimedia
 Summary:    Tizen Multimedia API for C#
-Version:    1.0.29
+Version:    1.0.30
 Release:    0
 Group:      Development/Libraries
 License:    Apache-2.0
index 660d6a6..861b91e 100755 (executable)
@@ -31,5 +31,6 @@ internal static partial class Interop
         public const string Libc = "libc.so.6";
         public const string Camera = "libcapi-media-camera.so.0";
         public const string StreamRecorder = "libcapi-media-streamrecorder.so.0";
+        public const string ThumbnailExtractor = "libcapi-media-thumbnail-util.so";
     }
 }
diff --git a/src/Tizen.Multimedia/Interop/Interop.ThumbnailExtractor.cs b/src/Tizen.Multimedia/Interop/Interop.ThumbnailExtractor.cs
new file mode 100755 (executable)
index 0000000..81b9224
--- /dev/null
@@ -0,0 +1,27 @@
+using System;
+using Tizen.Multimedia;
+using System.Runtime.InteropServices;
+
+internal static partial class Interop
+{
+    internal static partial class ThumbnailExtractor
+    {
+        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+        public delegate void ThumbnailExtractCallback(ThumbnailExtractorError error, string requestId, int thumbWidth, int thumbHeight, IntPtr thumbData, int thumbSize, IntPtr userData);
+
+        [DllImport(Libraries.ThumbnailExtractor, EntryPoint = "thumbnail_util_create")]
+        internal static extern ThumbnailExtractorError Create(out IntPtr handle);
+
+        [DllImport(Libraries.ThumbnailExtractor, EntryPoint = "thumbnail_util_extract")]
+        internal static extern ThumbnailExtractorError Extract(IntPtr handle, ThumbnailExtractCallback callback, IntPtr userData, out IntPtr requestId);
+
+        [DllImport(Libraries.ThumbnailExtractor, EntryPoint = "thumbnail_util_set_path")]
+        internal static extern ThumbnailExtractorError SetPath(IntPtr handle, string path);
+
+        [DllImport(Libraries.ThumbnailExtractor, EntryPoint = "thumbnail_util_set_size")]
+        internal static extern ThumbnailExtractorError SetSize(IntPtr handle, int width, int height);
+
+        [DllImport(Libraries.ThumbnailExtractor, EntryPoint = "thumbnail_util_destroy")]
+        internal static extern ThumbnailExtractorError Destroy(IntPtr handle);
+    }
+}
diff --git a/src/Tizen.Multimedia/ThumbnailExtractor/ThumbnailData.cs b/src/Tizen.Multimedia/ThumbnailExtractor/ThumbnailData.cs
new file mode 100755 (executable)
index 0000000..80e39c5
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the License);
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an AS IS BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+
+namespace Tizen.Multimedia
+{
+    /// <summary>
+    /// This class provides properties of the thumbnail of the given media
+    /// </summary>
+    public class ThumbnailData
+    {
+        internal ThumbnailData(byte[] thumbnailData, int width, int height)
+        {
+            Thumbnail = thumbnailData;
+            Width = width;
+            Height = height;
+        }
+        /// <summary>
+        /// The thumbnail data
+        /// </summary>
+        public byte[] Thumbnail { get; }
+
+        /// <summary>
+        /// The width of the thumbnail
+        /// </summary>
+        public int Width { get; }
+
+        /// <summary>
+        /// The height of the thumbnail
+        /// </summary>
+        public int Height { get; }
+    }
+}
diff --git a/src/Tizen.Multimedia/ThumbnailExtractor/ThumbnailExtractor.cs b/src/Tizen.Multimedia/ThumbnailExtractor/ThumbnailExtractor.cs
new file mode 100755 (executable)
index 0000000..49f6241
--- /dev/null
@@ -0,0 +1,211 @@
+/*
+* Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the License);
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an AS IS BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+
+using System;
+using System.Threading.Tasks;
+using System.Runtime.InteropServices;
+
+namespace Tizen.Multimedia
+{
+    static internal class ThumbnailExtractorLog
+    {
+        internal const string LogTag = "Tizen.Multimedia.ThumbnailExtractor";
+    }
+    /// <summary>
+    /// The Thumbnail extractor class provides a set of functions to extract the thumbnail data of the input media file
+    /// </summary>
+    public class ThumbnailExtractor : IDisposable
+    {
+        private bool _disposed = false;
+        internal IntPtr _handle = IntPtr.Zero;
+        /// <summary>
+        /// Thumbnail extractor constructor
+        /// </summary>
+        /// <remarks>
+        /// If you need a thumbnail of a specified size, use ThumbnailExtractor(path, width, height).
+        /// </remarks>
+        /// <param name="path"> The path of the media file to extract the thumbnail data </param>
+        public ThumbnailExtractor(string path)
+        {
+            ThumbnailExtractorError ret = ThumbnailExtractorError.None;
+
+            if (path == null)
+            {
+                Log.Error(ThumbnailExtractorLog.LogTag, "Path is NULL");
+                throw new ArgumentNullException(nameof(path));
+            }
+            else
+            {
+                ret = Interop.ThumbnailExtractor.Create(out _handle);
+                if (ret != ThumbnailExtractorError.None)
+                {
+                    Log.Error(ThumbnailExtractorLog.LogTag, "Failed to create constructor" + ret);
+                    ThumbnailExtractorErrorFactory.ThrowException(ret, "Failed to create constructor");
+                }
+                ret = Interop.ThumbnailExtractor.SetPath(_handle, path);
+                if (ret != ThumbnailExtractorError.None)
+                {
+                    Log.Error(ThumbnailExtractorLog.LogTag, "Failed to set path" + ret);
+                    Interop.ThumbnailExtractor.Destroy(_handle);
+                    _handle = IntPtr.Zero;
+                    ThumbnailExtractorErrorFactory.ThrowException(ret, "Failed to set path");
+                }
+            }
+        }
+        /// <summary>
+        /// Thumbnail extractor constructor
+        /// </summary>
+        /// <remarks>
+        /// If you need default size thumbnail, use ThumbnailExtractor(path). Default size is 320x240.
+        /// If the set width is not a multiple of 8, it can be changed by inner process.
+        /// The width will be a multiple of 8 greater than the set value.
+        /// </remarks>
+        /// <param name="path"> The path of the media file to extract the thumbnail data </param>
+        /// <param name="width"> The width of the thumbnail </param>
+        /// <param name="height"> The height of the thumbnail </param>
+        public ThumbnailExtractor(string path, int width, int height)
+        {
+            ThumbnailExtractorError ret = ThumbnailExtractorError.None;
+
+            if (path == null)
+            {
+                throw new ArgumentNullException(nameof(path), "Path is NULL");
+            }
+            else if (width <= 0)
+            {
+                throw new ArgumentOutOfRangeException(nameof(width), "Wrong width [" + width + "]");
+            }
+            else if (height <= 0)
+            {
+                throw new ArgumentOutOfRangeException(nameof(height), "Wrong width [" + height + "]");
+            }
+
+            ret = Interop.ThumbnailExtractor.Create(out _handle);
+            if (ret != ThumbnailExtractorError.None)
+            {
+                Log.Error(ThumbnailExtractorLog.LogTag, "Failed to create constructor" + ret);
+                ThumbnailExtractorErrorFactory.ThrowException(ret, "Failed to create constructor");
+            }
+
+            try
+            {
+                ret = Interop.ThumbnailExtractor.SetPath(_handle, path);
+                if (ret != ThumbnailExtractorError.None)
+                {
+                    Log.Error(ThumbnailExtractorLog.LogTag, "Failed to set path" + ret);
+                    ThumbnailExtractorErrorFactory.ThrowException(ret, "Failed to set path");
+                }
+                ret = Interop.ThumbnailExtractor.SetSize(_handle, width, height);
+                if (ret != ThumbnailExtractorError.None)
+                {
+                    Log.Error(ThumbnailExtractorLog.LogTag, "Failed to set size" + ret);
+                    ThumbnailExtractorErrorFactory.ThrowException(ret, "Failed to set size");
+                }
+            }
+            catch (Exception)
+            {
+                Interop.ThumbnailExtractor.Destroy(_handle);
+                _handle = IntPtr.Zero;
+            }
+        }
+
+        private Task<ThumbnailData> ExtractRequest()
+        {
+            if (_handle == IntPtr.Zero)
+            {
+                throw new ObjectDisposedException(nameof(ThumbnailExtractor), "Failed to extract thumbnail");
+            }
+
+            IntPtr id = IntPtr.Zero;
+            var task = new TaskCompletionSource<ThumbnailData>();
+
+            Interop.ThumbnailExtractor.ThumbnailExtractCallback extractCallback = (ThumbnailExtractorError error,
+                                                                                string requestId,
+                                                                                int thumbWidth,
+                                                                                int thumbHeight,
+                                                                                IntPtr thumbData,
+                                                                                int thumbSize,
+                                                                                IntPtr userData) =>
+            {
+                if (error == ThumbnailExtractorError.None)
+                {
+                    byte[] tmpBuf = new byte[thumbSize];
+                    Marshal.Copy(thumbData, tmpBuf, 0, thumbSize);
+                    Interop.Libc.Free(thumbData);
+                    task.TrySetResult(new ThumbnailData(tmpBuf, thumbWidth, thumbHeight));
+                }
+                else
+                {
+                    Log.Error(ThumbnailExtractorLog.LogTag, "Failed to extract thumbnail" + error);
+                    task.SetException(new InvalidOperationException("["+ error +"] Fail to create thumbnail"));
+                }
+            };
+            ThumbnailExtractorError res = Interop.ThumbnailExtractor.Extract(_handle, extractCallback, IntPtr.Zero, out id);
+            if (id != IntPtr.Zero)
+            {
+                Interop.Libc.Free(id);
+                id = IntPtr.Zero;
+            }
+            if (res != ThumbnailExtractorError.None)
+            {
+                Log.Error(ThumbnailExtractorLog.LogTag, "Failed to extract thumbnail" + res);
+                ThumbnailExtractorErrorFactory.ThrowException(res, "Failed to extract thumbnail");
+            }
+
+            return task.Task;
+        }
+        /// <summary>
+        /// Extract thumbnail
+        /// </summary>
+        /// <value> ThumbData object </value>
+        public async Task<ThumbnailData> Extract()
+        {
+            return await ExtractRequest();
+        }
+
+        /// <summary>
+        /// Thumbnail Utility destructor
+        /// </summary>
+        ~ThumbnailExtractor()
+        {
+            Dispose(false);
+        }
+
+        protected virtual void Dispose(bool disposing)
+        {
+            if (!_disposed)
+            {
+                if (disposing)
+                {
+                    // To be used if there are any other disposable objects
+                }
+                if (_handle != IntPtr.Zero)
+                {
+                    Interop.ThumbnailExtractor.Destroy(_handle);
+                    _handle = IntPtr.Zero;
+                }
+                _disposed = true;
+            }
+        }
+
+        public void Dispose()
+        {
+            Dispose(true);
+            GC.SuppressFinalize(this);
+        }
+    }
+}
diff --git a/src/Tizen.Multimedia/ThumbnailExtractor/ThumbnailExtractorErrorFactory.cs b/src/Tizen.Multimedia/ThumbnailExtractor/ThumbnailExtractorErrorFactory.cs
new file mode 100755 (executable)
index 0000000..a7974ce
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+* Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the License);
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an AS IS BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+
+using System;
+using System.IO;
+using Tizen.Internals.Errors;
+
+namespace Tizen.Multimedia
+{
+    /// <summary>
+    /// Enumeration for thumbnail extractor's error codes.
+    /// </summary>
+    internal enum ThumbnailExtractorError
+    {
+        None = ErrorCode.None,                          // Success
+        InvalidParameter = ErrorCode.InvalidParameter,  // Invalid parameter
+        OutOfMemory = ErrorCode.OutOfMemory,            // Out of memory
+        InvalidOperation = ErrorCode.InvalidOperation,  // Invalid operation
+        FileNoSpaceOnDevice = ErrorCode.FileNoSpaceOnDevice,  // No space left on device
+        PermissionDenied = ErrorCode.PermissionDenied,  // Permission deny
+    };
+
+    internal static class ThumbnailExtractorErrorFactory
+    {
+        internal static void ThrowException(ThumbnailExtractorError errorCode, string errorMessage = null, string paramName = null)
+        {
+            switch (errorCode)
+            {
+                case ThumbnailExtractorError.InvalidParameter:
+                    throw new ArgumentException("[" + errorCode.ToString() + "]" + errorMessage, paramName);
+                case ThumbnailExtractorError.OutOfMemory:
+                    throw new OutOfMemoryException("[" + errorCode.ToString() + "]" + errorMessage);
+                case ThumbnailExtractorError.InvalidOperation:
+                    throw new InvalidOperationException("[" + errorCode.ToString() + "]" + errorMessage);
+                case ThumbnailExtractorError.FileNoSpaceOnDevice:
+                    throw new IOException("[" + errorCode.ToString() + "] No space to write on the device");
+                case ThumbnailExtractorError.PermissionDenied:
+                    throw new UnauthorizedAccessException("[" + errorCode.ToString() + "]" + errorMessage);
+            }
+        }
+    }
+}
+
index a8c095d..e6dbb28 100755 (executable)
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="AudioIO\AudioCapture.cs" />\r
-    <Compile Include="AudioIO\AudioDataAvailableEventArgs.cs" />\r
-    <Compile Include="AudioIO\AudioIOEnums.cs" />\r
-    <Compile Include="AudioIO\AudioIOStateChangedEventArgs.cs" />\r
-    <Compile Include="AudioIO\AudioIOUtil.cs" />\r
-    <Compile Include="AudioIO\AudioPlaybackBufferAvailableEventArgs.cs" />\r
+    <Compile Include="AudioIO\AudioCapture.cs" />
+    <Compile Include="AudioIO\AudioDataAvailableEventArgs.cs" />
+    <Compile Include="AudioIO\AudioIOEnums.cs" />
+    <Compile Include="AudioIO\AudioIOStateChangedEventArgs.cs" />
+    <Compile Include="AudioIO\AudioIOUtil.cs" />
+    <Compile Include="AudioIO\AudioPlaybackBufferAvailableEventArgs.cs" />
     <Compile Include="AudioIO\AudioPlayback.cs" />
     <Compile Include="Camera\Area.cs" />
     <Compile Include="Camera\Camera.cs" />
@@ -78,9 +78,9 @@
     <Compile Include="Camera\Range.cs" />
     <Compile Include="Camera\SinglePlaneData.cs" />
     <Compile Include="Camera\TriplePlaneData.cs" />
-    <Compile Include="Common\MultimediaDebug.cs" />\r
+    <Compile Include="Common\MultimediaDebug.cs" />
     <Compile Include="Common\Size.cs" />
-    <Compile Include="Common\ValdiationUtil.cs" />\r
+    <Compile Include="Common\ValdiationUtil.cs" />
     <Compile Include="Interop\Interop.AudioIO.cs" />
     <Compile Include="Interop\Interop.Camera.cs" />
     <Compile Include="Interop\Interop.CameraDisplay.cs" />
@@ -99,7 +99,7 @@
     <Compile Include="MediaCodec\InputProcessedEventArgs.cs" />
     <Compile Include="MediaCodec\MediaCodec.cs" />
     <Compile Include="MediaCodec\MediaCodecError.cs" />
-    <Compile Include="MediaCodec\MediaCodecErrorOccurredEventArgs.cs" />\r
+    <Compile Include="MediaCodec\MediaCodecErrorOccurredEventArgs.cs" />
     <Compile Include="MediaCodec\MediaCodecStatus.cs" />
     <Compile Include="MediaCodec\MediaCodecType.cs" />
     <Compile Include="MediaCodec\OutputAvailableEventArgs.cs" />
     <Compile Include="MetadataExtractor\Artwork.cs" />
     <Compile Include="MetadataExtractor\Metadata.cs" />
     <Compile Include="MetadataExtractor\MetadataExtractor.cs" />
-    <Compile Include="Interop\Interop.EvasObject.cs" />\r
-    <Compile Include="MediaView\MediaView.cs" />\r
-    <Compile Include="Player\CapturedFrame.cs" />\r
-    <Compile Include="Player\MediaStreamBufferStatusChangedEventArgs.cs" />\r
-    <Compile Include="Player\MediaStreamSeekingOccurredEventArgs.cs" />\r
-    <Compile Include="Player\PlayerDisplay.cs" />\r
-    <Compile Include="Player\PlayerEnums.cs" />\r
-    <Compile Include="Player\MediaStreamConfiguration.cs" />\r
-    <Compile Include="Player\PlayerError.cs" />\r
-    <Compile Include="Player\PlayerErrorOccurredEventArgs.cs" />\r
-    <Compile Include="Player\PlayerTrackInfo.cs" />\r
-    <Compile Include="Player\StreamInfo.cs" />\r
-    <Compile Include="Player\AudioEffect.cs" />\r
-    <Compile Include="Player\BufferingProgressChangedEventArgs.cs" />\r
-    <Compile Include="Player\DownloadProgress.cs" />\r
-    <Compile Include="Player\EqualizerBand.cs" />\r
-    <Compile Include="Player\SubtitleUpdatedEventArgs.cs" />\r
-    <Compile Include="Player\PlaybackInterruptedEventArgs.cs" />\r
-    <Compile Include="Player\Player.cs" />\r
-    <Compile Include="Player\VideoFrameDecodedEventArgs.cs" />\r
-    <Compile Include="Player\VideoStreamChangedEventArgs.cs" />\r
-    <Compile Include="Properties\AssemblyInfo.cs" />\r
-    <Compile Include="Player\MediaSource.cs" />\r
-    <Compile Include="Player\MediaUriSource.cs" />\r
-    <Compile Include="Player\MediaBufferSource.cs" />\r
+    <Compile Include="Interop\Interop.EvasObject.cs" />
+    <Compile Include="MediaView\MediaView.cs" />
+    <Compile Include="Player\CapturedFrame.cs" />
+    <Compile Include="Player\MediaStreamBufferStatusChangedEventArgs.cs" />
+    <Compile Include="Player\MediaStreamSeekingOccurredEventArgs.cs" />
+    <Compile Include="Player\PlayerDisplay.cs" />
+    <Compile Include="Player\PlayerEnums.cs" />
+    <Compile Include="Player\MediaStreamConfiguration.cs" />
+    <Compile Include="Player\PlayerError.cs" />
+    <Compile Include="Player\PlayerErrorOccurredEventArgs.cs" />
+    <Compile Include="Player\PlayerTrackInfo.cs" />
+    <Compile Include="Player\StreamInfo.cs" />
+    <Compile Include="Player\AudioEffect.cs" />
+    <Compile Include="Player\BufferingProgressChangedEventArgs.cs" />
+    <Compile Include="Player\DownloadProgress.cs" />
+    <Compile Include="Player\EqualizerBand.cs" />
+    <Compile Include="Player\SubtitleUpdatedEventArgs.cs" />
+    <Compile Include="Player\PlaybackInterruptedEventArgs.cs" />
+    <Compile Include="Player\Player.cs" />
+    <Compile Include="Player\VideoFrameDecodedEventArgs.cs" />
+    <Compile Include="Player\VideoStreamChangedEventArgs.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="Player\MediaSource.cs" />
+    <Compile Include="Player\MediaUriSource.cs" />
+    <Compile Include="Player\MediaBufferSource.cs" />
     <Compile Include="Player\MediaStreamSource.cs" />
     <Compile Include="Interop\Interop.Libraries.cs" />
     <Compile Include="Recorder\AudioStreamDeliveredEventArgs.cs" />
     <Compile Include="ScreenMirroring\StateChangedEventArgs.cs" />
     <Compile Include="ScreenMirroring\ScreenMirroringErrorFactory.cs" />
     <Compile Include="ScreenMirroring\VideoInformation.cs" />
-    <Compile Include="Interop\Interop.ScreenMirroring.cs" />\r
+    <Compile Include="Interop\Interop.ScreenMirroring.cs" />
     <Compile Include="StreamRecorder\StreamRecordingBufferConsumedEventArgs.cs" />
     <Compile Include="StreamRecorder\StreamRecorder.cs" />
     <Compile Include="StreamRecorder\StreamRecorderEnums.cs" />
     <Compile Include="StreamRecorder\StreamRecordingErrorOccurredEventArgs.cs" />
     <Compile Include="StreamRecorder\StreamRecordingLimitReachedEventArgs.cs" />
     <Compile Include="Interop\Interop.StreamRecorder.cs" />
+    <Compile Include="ThumbnailExtractor\ThumbnailData.cs" />
+    <Compile Include="ThumbnailExtractor\ThumbnailExtractorErrorFactory.cs" />
+    <Compile Include="ThumbnailExtractor\ThumbnailExtractor.cs" />
+    <Compile Include="Interop\Interop.ThumbnailExtractor.cs" />
   </ItemGroup>
   <ItemGroup>
     <None Include="Tizen.Multimedia.nuspec" />
index c877923..2bbe0e7 100755 (executable)
-<?xml version="1.0" encoding="utf-8"?>\r
-<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
-  <PropertyGroup>\r
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
-    <ProjectGuid>{0CE698B0-4849-4096-9D7F-30E611F50DAD}</ProjectGuid>\r
-    <OutputType>Library</OutputType>\r
-    <AppDesignerFolder>Properties</AppDesignerFolder>\r
-    <RootNamespace>Tizen.Multimedia</RootNamespace>\r
-    <AssemblyName>Tizen.Multimedia</AssemblyName>\r
-    <FileAlignment>512</FileAlignment>\r
-  </PropertyGroup>\r
-  <PropertyGroup>\r
-    <TargetFrameworkIdentifier>.NETStandard</TargetFrameworkIdentifier>\r
-    <TargetFrameworkVersion>v1.3</TargetFrameworkVersion>\r
-    <NuGetTargetMoniker>.NETStandard,Version=v1.3</NuGetTargetMoniker>\r
-    <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>\r
-    <NoStdLib>true</NoStdLib>\r
-    <NoWarn>$(NoWarn);1701;1702</NoWarn>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
-    <DebugSymbols>true</DebugSymbols>\r
-    <DebugType>full</DebugType>\r
-    <Optimize>false</Optimize>\r
-    <OutputPath>bin\Debug\</OutputPath>\r
-    <DefineConstants>DEBUG;TRACE</DefineConstants>\r
-    <ErrorReport>prompt</ErrorReport>\r
-    <WarningLevel>4</WarningLevel>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
-    <DebugType>pdbonly</DebugType>\r
-    <Optimize>true</Optimize>\r
-    <OutputPath>bin\Release\</OutputPath>\r
-    <DefineConstants>TRACE</DefineConstants>\r
-    <ErrorReport>prompt</ErrorReport>\r
-    <WarningLevel>4</WarningLevel>\r
-  </PropertyGroup>\r
-  <PropertyGroup>\r
-    <SignAssembly>true</SignAssembly>\r
-  </PropertyGroup>\r
-  <PropertyGroup>\r
-    <AssemblyOriginatorKeyFile>Tizen.Multimedia.snk</AssemblyOriginatorKeyFile>\r
-  </PropertyGroup>\r
-  <ItemGroup>\r
-    <Compile Include="AudioIO\AudioCapture.cs" />\r
-    <Compile Include="AudioIO\AudioDataAvailableEventArgs.cs" />\r
-    <Compile Include="AudioIO\AudioIOEnums.cs" />\r
-    <Compile Include="AudioIO\AudioIOStateChangedEventArgs.cs" />\r
-    <Compile Include="AudioIO\AudioIOUtil.cs" />\r
-    <Compile Include="AudioIO\AudioPlaybackBufferAvailableEventArgs.cs" />\r
-    <Compile Include="AudioIO\AudioPlayback.cs" />\r
-    <Compile Include="Camera\Area.cs" />\r
-    <Compile Include="Camera\Camera.cs" />\r
-    <Compile Include="Camera\CameraDisplay.cs" />\r
-    <Compile Include="Camera\CameraEnums.cs" />\r
-    <Compile Include="Camera\CameraErrorFactory.cs" />\r
-    <Compile Include="Camera\CameraErrorOccurredEventArgs.cs" />\r
-    <Compile Include="Camera\CameraFeature.cs" />\r
-    <Compile Include="Camera\CameraFocusChangedEventArgs.cs" />\r
-    <Compile Include="Camera\CameraInterruptedEventArgs.cs" />\r
-    <Compile Include="Camera\CameraResolution.cs" />\r
-    <Compile Include="Camera\CameraSetting.cs" />\r
-    <Compile Include="Camera\CameraStateChangedEventArgs.cs" />\r
-    <Compile Include="Camera\CapturingEventArgs.cs" />\r
-    <Compile Include="Camera\DoublePlaneData.cs" />\r
-    <Compile Include="Camera\EncodedPlaneData.cs" />\r
-    <Compile Include="Camera\FaceDetectedData.cs" />\r
-    <Compile Include="Camera\FaceDetectedEventArgs.cs" />\r
-    <Compile Include="Camera\HdrCaptureProgressEventArgs.cs" />\r
-    <Compile Include="Camera\ImageData.cs" />\r
-    <Compile Include="Camera\Location.cs" />\r
-    <Compile Include="Camera\MediaPacketPreviewEventArgs.cs" />\r
-    <Compile Include="Camera\PreviewData.cs" />\r
-    <Compile Include="Camera\PreviewEventArgs.cs" />\r
-    <Compile Include="Camera\Range.cs" />\r
-    <Compile Include="Camera\SinglePlaneData.cs" />\r
-    <Compile Include="Camera\TriplePlaneData.cs" />\r
-    <Compile Include="Common\MultimediaDebug.cs" />\r
-    <Compile Include="Common\Size.cs" />\r
-    <Compile Include="Common\ValdiationUtil.cs" />\r
-    <Compile Include="Interop\Interop.AudioIO.cs" />\r
-    <Compile Include="Interop\Interop.Camera.cs" />\r
-    <Compile Include="Interop\Interop.CameraDisplay.cs" />\r
-    <Compile Include="Interop\Interop.CameraFeature.cs" />\r
-    <Compile Include="Interop\Interop.CameraSetting.cs" />\r
-    <Compile Include="Interop\Interop.MediaCodec.cs" />\r
-    <Compile Include="Interop\Interop.MediaTool.cs" />\r
-    <Compile Include="Interop\Interop.MediaVision.BarCode.cs" />\r
-    <Compile Include="Interop\Interop.MediaVision.Common.cs" />\r
-    <Compile Include="Interop\Interop.MediaVision.Face.cs" />\r
-    <Compile Include="Interop\Interop.MediaVision.Image.cs" />\r
-    <Compile Include="Interop\Interop.MediaVision.Surveillance.cs" />\r
-    <Compile Include="Interop\Interop.Player.cs" />\r
-    <Compile Include="Interop\Interop.MetadataExtractor.cs" />\r
-    <Compile Include="MediaCodec\BufferStatusChangedEventArgs.cs" />\r
-    <Compile Include="MediaCodec\InputProcessedEventArgs.cs" />\r
-    <Compile Include="MediaCodec\MediaCodec.cs" />\r
-    <Compile Include="MediaCodec\MediaCodecError.cs" />\r
-    <Compile Include="MediaCodec\MediaCodecErrorOccurredEventArgs.cs" />\r
-    <Compile Include="MediaCodec\MediaCodecStatus.cs" />\r
-    <Compile Include="MediaCodec\MediaCodecType.cs" />\r
-    <Compile Include="MediaCodec\OutputAvailableEventArgs.cs" />\r
-    <Compile Include="MediaCodec\SupportedCodecType.cs" />\r
-    <Compile Include="MediaTool\MediaFormat.cs" />\r
-    <Compile Include="MediaTool\MediaFormatAacType.cs" />\r
-    <Compile Include="MediaTool\MediaFormatMimeType.cs" />\r
-    <Compile Include="MediaTool\MediaFormatTextType.cs" />\r
-    <Compile Include="MediaTool\MediaPacket.cs" />\r
-    <Compile Include="MediaTool\MediaPacketBuffer.cs" />\r
-    <Compile Include="MediaTool\MediaPacketBufferFlags.cs" />\r
-    <Compile Include="MediaTool\MediaPacketVideoPlane.cs" />\r
-    <Compile Include="MediaVision\Barcode.cs" />\r
-    <Compile Include="MediaVision\BarcodeDetector.cs" />\r
-    <Compile Include="MediaVision\BarcodeDetectorEngineConfiguration.cs" />\r
-    <Compile Include="MediaVision\BarcodeGenerator.cs" />\r
-    <Compile Include="MediaVision\BarcodeGeneratorEngineConfiguration.cs" />\r
-    <Compile Include="MediaVision\BarcodeImageConfiguration.cs" />\r
-    <Compile Include="MediaVision\BarcodeImageFormat.cs" />\r
-    <Compile Include="MediaVision\BarcodeType.cs" />\r
-    <Compile Include="MediaVision\Colorspace.cs" />\r
-    <Compile Include="MediaVision\EngineConfiguration.cs" />\r
-    <Compile Include="MediaVision\ErrorCorrectionLevel.cs" />\r
-    <Compile Include="MediaVision\EyeCondition.cs" />\r
-    <Compile Include="MediaVision\FaceDetectionResult.cs" />\r
-    <Compile Include="MediaVision\FaceDetector.cs" />\r
-    <Compile Include="MediaVision\FaceEngineConfiguration.cs" />\r
-    <Compile Include="MediaVision\FaceRecognitionModel.cs" />\r
-    <Compile Include="MediaVision\FaceRecognitionModelType.cs" />\r
-    <Compile Include="MediaVision\FaceRecognitionResult.cs" />\r
-    <Compile Include="MediaVision\FaceRecognizer.cs" />\r
-    <Compile Include="MediaVision\FaceTracker.cs" />\r
-    <Compile Include="MediaVision\FaceTrackingModel.cs" />\r
-    <Compile Include="MediaVision\FaceTrackingResult.cs" />\r
-    <Compile Include="MediaVision\FacialExpression.cs" />\r
-    <Compile Include="MediaVision\Image.cs" />\r
-    <Compile Include="MediaVision\ImageEngineConfiguration.cs" />\r
-    <Compile Include="MediaVision\ImageRecognitionResult.cs" />\r
-    <Compile Include="MediaVision\ImageRecognizer.cs" />\r
-    <Compile Include="MediaVision\ImageTracker.cs" />\r
-    <Compile Include="MediaVision\ImageTrackingModel.cs" />\r
-    <Compile Include="MediaVision\MediaVisionErrorFactory.cs" />\r
-    <Compile Include="MediaVision\MediaVisionSource.cs" />\r
-    <Compile Include="MediaVision\MovementDetectedEventArgs.cs" />\r
-    <Compile Include="MediaVision\MovementDetectionEventTrigger.cs" />\r
-    <Compile Include="MediaVision\PersonAppearanceChangedEventArgs.cs" />\r
-    <Compile Include="MediaVision\PersonAppearanceEventTrigger.cs" />\r
-    <Compile Include="MediaVision\PersonRecognitionEventTrigger.cs" />\r
-    <Compile Include="MediaVision\PersonRecognitionResult.cs" />\r
-    <Compile Include="MediaVision\PersonRecognizedEventArgs.cs" />\r
-    <Compile Include="MediaVision\Point.cs" />\r
-    <Compile Include="MediaVision\QrConfiguration.cs" />\r
-    <Compile Include="MediaVision\QrMode.cs" />\r
-    <Compile Include="MediaVision\Quadrangle.cs" />\r
-    <Compile Include="MediaVision\Rectangle.cs" />\r
-    <Compile Include="MediaVision\SurveillanceEngineConfiguration.cs" />\r
-    <Compile Include="MediaVision\SurveillanceEventTrigger.cs" />\r
-    <Compile Include="MediaVision\TargetAttribute.cs" />\r
-    <Compile Include="MediaVision\TextAttribute.cs" />\r
-    <Compile Include="MetadataExtractor\MetadataEnums.cs" />\r
-    <Compile Include="MetadataExtractor\MetadataExtractorErrorFactory.cs" />\r
-    <Compile Include="MetadataExtractor\Synclyrics.cs" />\r
-    <Compile Include="MetadataExtractor\Frame.cs" />\r
-    <Compile Include="MetadataExtractor\Artwork.cs" />\r
-    <Compile Include="MetadataExtractor\Metadata.cs" />\r
-    <Compile Include="MetadataExtractor\MetadataExtractor.cs" />\r
-    <Compile Include="Interop\Interop.EvasObject.cs" />\r
-    <Compile Include="MediaView\MediaView.cs" />\r
-    <Compile Include="Player\CapturedFrame.cs" />\r
-    <Compile Include="Player\MediaStreamBufferStatusChangedEventArgs.cs" />\r
-    <Compile Include="Player\MediaStreamSeekingOccurredEventArgs.cs" />\r
-    <Compile Include="Player\PlayerDisplay.cs" />\r
-    <Compile Include="Player\PlayerEnums.cs" />\r
-    <Compile Include="Player\MediaStreamConfiguration.cs" />\r
-    <Compile Include="Player\PlayerError.cs" />\r
-    <Compile Include="Player\PlayerErrorOccurredEventArgs.cs" />\r
-    <Compile Include="Player\PlayerTrackInfo.cs" />\r
-    <Compile Include="Player\StreamInfo.cs" />\r
-    <Compile Include="Player\AudioEffect.cs" />\r
-    <Compile Include="Player\BufferingProgressChangedEventArgs.cs" />\r
-    <Compile Include="Player\DownloadProgress.cs" />\r
-    <Compile Include="Player\EqualizerBand.cs" />\r
-    <Compile Include="Player\SubtitleUpdatedEventArgs.cs" />\r
-    <Compile Include="Player\PlaybackInterruptedEventArgs.cs" />\r
-    <Compile Include="Player\Player.cs" />\r
-    <Compile Include="Player\VideoFrameDecodedEventArgs.cs" />\r
-    <Compile Include="Player\VideoStreamChangedEventArgs.cs" />\r
-    <Compile Include="Properties\AssemblyInfo.cs" />\r
-    <Compile Include="Player\MediaSource.cs" />\r
-    <Compile Include="Player\MediaUriSource.cs" />\r
-    <Compile Include="Player\MediaBufferSource.cs" />\r
-    <Compile Include="Player\MediaStreamSource.cs" />\r
-    <Compile Include="Interop\Interop.Libraries.cs" />\r
-    <Compile Include="Recorder\AudioStreamDeliveredEventArgs.cs" />\r
-    <Compile Include="Recorder\Recorder.cs" />\r
-    <Compile Include="Recorder\RecorderEnums.cs" />\r
-    <Compile Include="Recorder\RecorderErrorFactory.cs" />\r
-    <Compile Include="Recorder\RecorderInterruptedEventArgs.cs" />\r
-    <Compile Include="Recorder\RecorderStateChangedEventArgs.cs" />\r
-    <Compile Include="Recorder\RecordingErrorOccurredEventArgs.cs" />\r
-    <Compile Include="Recorder\RecordingLimitReachedEventArgs.cs" />\r
-    <Compile Include="Recorder\RecordingStatusChangedEventArgs.cs" />\r
-    <Compile Include="Recorder\VideoResolution.cs" />\r
-    <Compile Include="Interop\Interop.Recorder.cs" />\r
-    <Compile Include="Interop\Interop.RecorderAttribute.cs" />\r
-    <Compile Include="Interop\Interop.RecorderCapability.cs" />\r
-    <Compile Include="AudioManager\AudioDevice.cs" />\r
-    <Compile Include="AudioManager\AudioDeviceConnectionChangedEventArgs.cs" />\r
-    <Compile Include="AudioManager\AudioDeviceStateChangedEventArgs.cs" />\r
-    <Compile Include="AudioManager\AudioManager.cs" />\r
-    <Compile Include="AudioManager\AudioManagerEnumerations.cs" />\r
-    <Compile Include="AudioManager\AudioManagerErrorFactory.cs" />\r
-    <Compile Include="AudioManager\AudioStreamPolicy.cs" />\r
-    <Compile Include="AudioManager\AudioVolume.cs" />\r
-    <Compile Include="AudioManager\FocusStateChangedEventArgs.cs" />\r
-    <Compile Include="AudioManager\MaxVolumeLevel.cs" />\r
-    <Compile Include="AudioManager\StreamFocusStateChangedEventArgs.cs" />\r
-    <Compile Include="AudioManager\VolumeChangedEventArgs.cs" />\r
-    <Compile Include="AudioManager\VolumeLevel.cs" />\r
-    <Compile Include="Interop\Interop.Device.cs" />\r
-    <Compile Include="Interop\Interop.StreamPolicy.cs" />\r
-    <Compile Include="Interop\Interop.Volume.cs" />\r
-    <Compile Include="Interop\Interop.MediaController.cs" />\r
-    <Compile Include="MediaController\MediaControllerPlayback.cs" />\r
-    <Compile Include="MediaController\MediaControllerMetadata.cs" />\r
-    <Compile Include="MediaController\ServerInformation.cs" />\r
-    <Compile Include="MediaController\CustomCommandEventArgs.cs" />\r
-    <Compile Include="MediaController\PlaybackStateCommandEventArgs.cs" />\r
-    <Compile Include="MediaController\ServerUpdatedEventArgs.cs" />\r
-    <Compile Include="MediaController\PlaybackUpdatedEventArgs.cs" />\r
-    <Compile Include="MediaController\MetadataUpdatedEventArgs.cs" />\r
-    <Compile Include="MediaController\ShuffleModeUpdatedEventArgs.cs" />\r
-    <Compile Include="MediaController\RepeatModeUpdatedEventArgs.cs" />\r
-    <Compile Include="MediaController\MediaControllerErrorFactory.cs" />\r
-    <Compile Include="MediaController\MediaControllerEnums.cs" />\r
-    <Compile Include="MediaController\MediaControllerLog.cs" />\r
-    <Compile Include="MediaController\MediaControllerClient.cs" />\r
-    <Compile Include="MediaController\MediaControllerServer.cs" />\r
-    <Compile Include="MediaController\CustomCommandReplyEventArgs.cs" />\r
-    <Compile Include="ScreenMirroring\AudioInformation.cs" />\r
-    <Compile Include="ScreenMirroring\ScreenMirroring.cs" />\r
-    <Compile Include="ScreenMirroring\ScreenMirroringEnumerations.cs" />\r
-    <Compile Include="ScreenMirroring\StateChangedEventArgs.cs" />\r
-    <Compile Include="ScreenMirroring\ScreenMirroringErrorFactory.cs" />\r
-    <Compile Include="ScreenMirroring\VideoInformation.cs" />\r
-    <Compile Include="Interop\Interop.ScreenMirroring.cs" />\r
-    <Compile Include="StreamRecorder\StreamRecordingBufferConsumedEventArgs.cs" />\r
-    <Compile Include="StreamRecorder\StreamRecorder.cs" />\r
-    <Compile Include="StreamRecorder\StreamRecorderEnums.cs" />\r
-    <Compile Include="StreamRecorder\StreamRecorderErrorFactory.cs" />\r
-    <Compile Include="StreamRecorder\StreamRecorderNotifiedEventArgs.cs" />\r
-    <Compile Include="StreamRecorder\StreamRecorderVideoResolution.cs" />\r
-    <Compile Include="StreamRecorder\StreamRecordingErrorOccurredEventArgs.cs" />\r
-    <Compile Include="StreamRecorder\StreamRecordingLimitReachedEventArgs.cs" />\r
-    <Compile Include="Interop\Interop.StreamRecorder.cs" />\r
-  </ItemGroup>\r
-  <ItemGroup>\r
-    <None Include="Tizen.Multimedia.nuspec" />\r
-    <None Include="Tizen.Multimedia.project.json" />\r
-    <None Include="Tizen.Multimedia.snk" />\r
-  </ItemGroup>\r
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{0CE698B0-4849-4096-9D7F-30E611F50DAD}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Tizen.Multimedia</RootNamespace>
+    <AssemblyName>Tizen.Multimedia</AssemblyName>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup>
+    <TargetFrameworkIdentifier>.NETStandard</TargetFrameworkIdentifier>
+    <TargetFrameworkVersion>v1.3</TargetFrameworkVersion>
+    <NuGetTargetMoniker>.NETStandard,Version=v1.3</NuGetTargetMoniker>
+    <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
+    <NoStdLib>true</NoStdLib>
+    <NoWarn>$(NoWarn);1701;1702</NoWarn>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup>
+    <SignAssembly>true</SignAssembly>
+  </PropertyGroup>
+  <PropertyGroup>
+    <AssemblyOriginatorKeyFile>Tizen.Multimedia.snk</AssemblyOriginatorKeyFile>
+  </PropertyGroup>
+  <ItemGroup>
+    <Compile Include="AudioIO\AudioCapture.cs" />
+    <Compile Include="AudioIO\AudioDataAvailableEventArgs.cs" />
+    <Compile Include="AudioIO\AudioIOEnums.cs" />
+    <Compile Include="AudioIO\AudioIOStateChangedEventArgs.cs" />
+    <Compile Include="AudioIO\AudioIOUtil.cs" />
+    <Compile Include="AudioIO\AudioPlaybackBufferAvailableEventArgs.cs" />
+    <Compile Include="AudioIO\AudioPlayback.cs" />
+    <Compile Include="Camera\Area.cs" />
+    <Compile Include="Camera\Camera.cs" />
+    <Compile Include="Camera\CameraDisplay.cs" />
+    <Compile Include="Camera\CameraEnums.cs" />
+    <Compile Include="Camera\CameraErrorFactory.cs" />
+    <Compile Include="Camera\CameraErrorOccurredEventArgs.cs" />
+    <Compile Include="Camera\CameraFeature.cs" />
+    <Compile Include="Camera\CameraFocusChangedEventArgs.cs" />
+    <Compile Include="Camera\CameraInterruptedEventArgs.cs" />
+    <Compile Include="Camera\CameraResolution.cs" />
+    <Compile Include="Camera\CameraSetting.cs" />
+    <Compile Include="Camera\CameraStateChangedEventArgs.cs" />
+    <Compile Include="Camera\CapturingEventArgs.cs" />
+    <Compile Include="Camera\DoublePlaneData.cs" />
+    <Compile Include="Camera\EncodedPlaneData.cs" />
+    <Compile Include="Camera\FaceDetectedData.cs" />
+    <Compile Include="Camera\FaceDetectedEventArgs.cs" />
+    <Compile Include="Camera\HdrCaptureProgressEventArgs.cs" />
+    <Compile Include="Camera\ImageData.cs" />
+    <Compile Include="Camera\Location.cs" />
+    <Compile Include="Camera\MediaPacketPreviewEventArgs.cs" />
+    <Compile Include="Camera\PreviewData.cs" />
+    <Compile Include="Camera\PreviewEventArgs.cs" />
+    <Compile Include="Camera\Range.cs" />
+    <Compile Include="Camera\SinglePlaneData.cs" />
+    <Compile Include="Camera\TriplePlaneData.cs" />
+    <Compile Include="Common\MultimediaDebug.cs" />
+    <Compile Include="Common\Size.cs" />
+    <Compile Include="Common\ValdiationUtil.cs" />
+    <Compile Include="Interop\Interop.AudioIO.cs" />
+    <Compile Include="Interop\Interop.Camera.cs" />
+    <Compile Include="Interop\Interop.CameraDisplay.cs" />
+    <Compile Include="Interop\Interop.CameraFeature.cs" />
+    <Compile Include="Interop\Interop.CameraSetting.cs" />
+    <Compile Include="Interop\Interop.MediaCodec.cs" />
+    <Compile Include="Interop\Interop.MediaTool.cs" />
+    <Compile Include="Interop\Interop.MediaVision.BarCode.cs" />
+    <Compile Include="Interop\Interop.MediaVision.Common.cs" />
+    <Compile Include="Interop\Interop.MediaVision.Face.cs" />
+    <Compile Include="Interop\Interop.MediaVision.Image.cs" />
+    <Compile Include="Interop\Interop.MediaVision.Surveillance.cs" />
+    <Compile Include="Interop\Interop.Player.cs" />
+    <Compile Include="Interop\Interop.MetadataExtractor.cs" />
+    <Compile Include="MediaCodec\BufferStatusChangedEventArgs.cs" />
+    <Compile Include="MediaCodec\InputProcessedEventArgs.cs" />
+    <Compile Include="MediaCodec\MediaCodec.cs" />
+    <Compile Include="MediaCodec\MediaCodecError.cs" />
+    <Compile Include="MediaCodec\MediaCodecErrorOccurredEventArgs.cs" />
+    <Compile Include="MediaCodec\MediaCodecStatus.cs" />
+    <Compile Include="MediaCodec\MediaCodecType.cs" />
+    <Compile Include="MediaCodec\OutputAvailableEventArgs.cs" />
+    <Compile Include="MediaCodec\SupportedCodecType.cs" />
+    <Compile Include="MediaTool\MediaFormat.cs" />
+    <Compile Include="MediaTool\MediaFormatAacType.cs" />
+    <Compile Include="MediaTool\MediaFormatMimeType.cs" />
+    <Compile Include="MediaTool\MediaFormatTextType.cs" />
+    <Compile Include="MediaTool\MediaPacket.cs" />
+    <Compile Include="MediaTool\MediaPacketBuffer.cs" />
+    <Compile Include="MediaTool\MediaPacketBufferFlags.cs" />
+    <Compile Include="MediaTool\MediaPacketVideoPlane.cs" />
+    <Compile Include="MediaVision\Barcode.cs" />
+    <Compile Include="MediaVision\BarcodeDetector.cs" />
+    <Compile Include="MediaVision\BarcodeDetectorEngineConfiguration.cs" />
+    <Compile Include="MediaVision\BarcodeGenerator.cs" />
+    <Compile Include="MediaVision\BarcodeGeneratorEngineConfiguration.cs" />
+    <Compile Include="MediaVision\BarcodeImageConfiguration.cs" />
+    <Compile Include="MediaVision\BarcodeImageFormat.cs" />
+    <Compile Include="MediaVision\BarcodeType.cs" />
+    <Compile Include="MediaVision\Colorspace.cs" />
+    <Compile Include="MediaVision\EngineConfiguration.cs" />
+    <Compile Include="MediaVision\ErrorCorrectionLevel.cs" />
+    <Compile Include="MediaVision\EyeCondition.cs" />
+    <Compile Include="MediaVision\FaceDetectionResult.cs" />
+    <Compile Include="MediaVision\FaceDetector.cs" />
+    <Compile Include="MediaVision\FaceEngineConfiguration.cs" />
+    <Compile Include="MediaVision\FaceRecognitionModel.cs" />
+    <Compile Include="MediaVision\FaceRecognitionModelType.cs" />
+    <Compile Include="MediaVision\FaceRecognitionResult.cs" />
+    <Compile Include="MediaVision\FaceRecognizer.cs" />
+    <Compile Include="MediaVision\FaceTracker.cs" />
+    <Compile Include="MediaVision\FaceTrackingModel.cs" />
+    <Compile Include="MediaVision\FaceTrackingResult.cs" />
+    <Compile Include="MediaVision\FacialExpression.cs" />
+    <Compile Include="MediaVision\Image.cs" />
+    <Compile Include="MediaVision\ImageEngineConfiguration.cs" />
+    <Compile Include="MediaVision\ImageRecognitionResult.cs" />
+    <Compile Include="MediaVision\ImageRecognizer.cs" />
+    <Compile Include="MediaVision\ImageTracker.cs" />
+    <Compile Include="MediaVision\ImageTrackingModel.cs" />
+    <Compile Include="MediaVision\MediaVisionErrorFactory.cs" />
+    <Compile Include="MediaVision\MediaVisionSource.cs" />
+    <Compile Include="MediaVision\MovementDetectedEventArgs.cs" />
+    <Compile Include="MediaVision\MovementDetectionEventTrigger.cs" />
+    <Compile Include="MediaVision\PersonAppearanceChangedEventArgs.cs" />
+    <Compile Include="MediaVision\PersonAppearanceEventTrigger.cs" />
+    <Compile Include="MediaVision\PersonRecognitionEventTrigger.cs" />
+    <Compile Include="MediaVision\PersonRecognitionResult.cs" />
+    <Compile Include="MediaVision\PersonRecognizedEventArgs.cs" />
+    <Compile Include="MediaVision\Point.cs" />
+    <Compile Include="MediaVision\QrConfiguration.cs" />
+    <Compile Include="MediaVision\QrMode.cs" />
+    <Compile Include="MediaVision\Quadrangle.cs" />
+    <Compile Include="MediaVision\Rectangle.cs" />
+    <Compile Include="MediaVision\SurveillanceEngineConfiguration.cs" />
+    <Compile Include="MediaVision\SurveillanceEventTrigger.cs" />
+    <Compile Include="MediaVision\TargetAttribute.cs" />
+    <Compile Include="MediaVision\TextAttribute.cs" />
+    <Compile Include="MetadataExtractor\MetadataEnums.cs" />
+    <Compile Include="MetadataExtractor\MetadataExtractorErrorFactory.cs" />
+    <Compile Include="MetadataExtractor\Synclyrics.cs" />
+    <Compile Include="MetadataExtractor\Frame.cs" />
+    <Compile Include="MetadataExtractor\Artwork.cs" />
+    <Compile Include="MetadataExtractor\Metadata.cs" />
+    <Compile Include="MetadataExtractor\MetadataExtractor.cs" />
+    <Compile Include="Interop\Interop.EvasObject.cs" />
+    <Compile Include="MediaView\MediaView.cs" />
+    <Compile Include="Player\CapturedFrame.cs" />
+    <Compile Include="Player\MediaStreamBufferStatusChangedEventArgs.cs" />
+    <Compile Include="Player\MediaStreamSeekingOccurredEventArgs.cs" />
+    <Compile Include="Player\PlayerDisplay.cs" />
+    <Compile Include="Player\PlayerEnums.cs" />
+    <Compile Include="Player\MediaStreamConfiguration.cs" />
+    <Compile Include="Player\PlayerError.cs" />
+    <Compile Include="Player\PlayerErrorOccurredEventArgs.cs" />
+    <Compile Include="Player\PlayerTrackInfo.cs" />
+    <Compile Include="Player\StreamInfo.cs" />
+    <Compile Include="Player\AudioEffect.cs" />
+    <Compile Include="Player\BufferingProgressChangedEventArgs.cs" />
+    <Compile Include="Player\DownloadProgress.cs" />
+    <Compile Include="Player\EqualizerBand.cs" />
+    <Compile Include="Player\SubtitleUpdatedEventArgs.cs" />
+    <Compile Include="Player\PlaybackInterruptedEventArgs.cs" />
+    <Compile Include="Player\Player.cs" />
+    <Compile Include="Player\VideoFrameDecodedEventArgs.cs" />
+    <Compile Include="Player\VideoStreamChangedEventArgs.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="Player\MediaSource.cs" />
+    <Compile Include="Player\MediaUriSource.cs" />
+    <Compile Include="Player\MediaBufferSource.cs" />
+    <Compile Include="Player\MediaStreamSource.cs" />
+    <Compile Include="Interop\Interop.Libraries.cs" />
+    <Compile Include="Recorder\AudioStreamDeliveredEventArgs.cs" />
+    <Compile Include="Recorder\Recorder.cs" />
+    <Compile Include="Recorder\RecorderEnums.cs" />
+    <Compile Include="Recorder\RecorderErrorFactory.cs" />
+    <Compile Include="Recorder\RecorderInterruptedEventArgs.cs" />
+    <Compile Include="Recorder\RecorderStateChangedEventArgs.cs" />
+    <Compile Include="Recorder\RecordingErrorOccurredEventArgs.cs" />
+    <Compile Include="Recorder\RecordingLimitReachedEventArgs.cs" />
+    <Compile Include="Recorder\RecordingStatusChangedEventArgs.cs" />
+    <Compile Include="Recorder\VideoResolution.cs" />
+    <Compile Include="Interop\Interop.Recorder.cs" />
+    <Compile Include="Interop\Interop.RecorderAttribute.cs" />
+    <Compile Include="Interop\Interop.RecorderCapability.cs" />
+    <Compile Include="AudioManager\AudioDevice.cs" />
+    <Compile Include="AudioManager\AudioDeviceConnectionChangedEventArgs.cs" />
+    <Compile Include="AudioManager\AudioDeviceStateChangedEventArgs.cs" />
+    <Compile Include="AudioManager\AudioManager.cs" />
+    <Compile Include="AudioManager\AudioManagerEnumerations.cs" />
+    <Compile Include="AudioManager\AudioManagerErrorFactory.cs" />
+    <Compile Include="AudioManager\AudioStreamPolicy.cs" />
+    <Compile Include="AudioManager\AudioVolume.cs" />
+    <Compile Include="AudioManager\FocusStateChangedEventArgs.cs" />
+    <Compile Include="AudioManager\MaxVolumeLevel.cs" />
+    <Compile Include="AudioManager\StreamFocusStateChangedEventArgs.cs" />
+    <Compile Include="AudioManager\VolumeChangedEventArgs.cs" />
+    <Compile Include="AudioManager\VolumeLevel.cs" />
+    <Compile Include="Interop\Interop.Device.cs" />
+    <Compile Include="Interop\Interop.StreamPolicy.cs" />
+    <Compile Include="Interop\Interop.Volume.cs" />
+    <Compile Include="Interop\Interop.MediaController.cs" />
+    <Compile Include="MediaController\MediaControllerPlayback.cs" />
+    <Compile Include="MediaController\MediaControllerMetadata.cs" />
+    <Compile Include="MediaController\ServerInformation.cs" />
+    <Compile Include="MediaController\CustomCommandEventArgs.cs" />
+    <Compile Include="MediaController\PlaybackStateCommandEventArgs.cs" />
+    <Compile Include="MediaController\ServerUpdatedEventArgs.cs" />
+    <Compile Include="MediaController\PlaybackUpdatedEventArgs.cs" />
+    <Compile Include="MediaController\MetadataUpdatedEventArgs.cs" />
+    <Compile Include="MediaController\ShuffleModeUpdatedEventArgs.cs" />
+    <Compile Include="MediaController\RepeatModeUpdatedEventArgs.cs" />
+    <Compile Include="MediaController\MediaControllerErrorFactory.cs" />
+    <Compile Include="MediaController\MediaControllerEnums.cs" />
+    <Compile Include="MediaController\MediaControllerLog.cs" />
+    <Compile Include="MediaController\MediaControllerClient.cs" />
+    <Compile Include="MediaController\MediaControllerServer.cs" />
+    <Compile Include="MediaController\CustomCommandReplyEventArgs.cs" />
+    <Compile Include="ScreenMirroring\AudioInformation.cs" />
+    <Compile Include="ScreenMirroring\ScreenMirroring.cs" />
+    <Compile Include="ScreenMirroring\ScreenMirroringEnumerations.cs" />
+    <Compile Include="ScreenMirroring\StateChangedEventArgs.cs" />
+    <Compile Include="ScreenMirroring\ScreenMirroringErrorFactory.cs" />
+    <Compile Include="ScreenMirroring\VideoInformation.cs" />
+    <Compile Include="Interop\Interop.ScreenMirroring.cs" />
+    <Compile Include="StreamRecorder\StreamRecordingBufferConsumedEventArgs.cs" />
+    <Compile Include="StreamRecorder\StreamRecorder.cs" />
+    <Compile Include="StreamRecorder\StreamRecorderEnums.cs" />
+    <Compile Include="StreamRecorder\StreamRecorderErrorFactory.cs" />
+    <Compile Include="StreamRecorder\StreamRecorderNotifiedEventArgs.cs" />
+    <Compile Include="StreamRecorder\StreamRecorderVideoResolution.cs" />
+    <Compile Include="StreamRecorder\StreamRecordingErrorOccurredEventArgs.cs" />
+    <Compile Include="StreamRecorder\StreamRecordingLimitReachedEventArgs.cs" />
+    <Compile Include="Interop\Interop.StreamRecorder.cs" />
+    <Compile Include="ThumbnailExtractor\ThumbnailData.cs" />
+    <Compile Include="ThumbnailExtractor\ThumbnailExtractorErrorFactory.cs" />
+    <Compile Include="ThumbnailExtractor\ThumbnailExtractor.cs" />
+    <Compile Include="Interop\Interop.ThumbnailExtractor.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Tizen.Multimedia.nuspec" />
+    <None Include="Tizen.Multimedia.project.json" />
+    <None Include="Tizen.Multimedia.snk" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
        Other similar extension points exist, see Microsoft.Common.targets.
   <Target Name="BeforeBuild">
   </Target>
   <Target Name="AfterBuild">
   </Target>
-  -->\r
-  <PropertyGroup>\r
+  -->
+  <PropertyGroup>
     <!-- https://github.com/dotnet/corefxlab/tree/master/samples/NetCoreSample and
        https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/target-dotnetcore-with-msbuild
-    -->\r
+    -->
     <!-- We don't use any of MSBuild's resolution logic for resolving the framework, so just set these two
        properties to any folder that exists to skip the GetReferenceAssemblyPaths task (not target) and
        to prevent it from outputting a warning (MSB3644).
-    -->\r
-    <_TargetFrameworkDirectories>$(MSBuildThisFileDirectory)</_TargetFrameworkDirectories>\r
-    <_FullFrameworkReferenceAssemblyPaths>$(MSBuildThisFileDirectory)</_FullFrameworkReferenceAssemblyPaths>\r
-    <AutoUnifyAssemblyReferences>true</AutoUnifyAssemblyReferences>\r
-  </PropertyGroup>\r
-</Project>
\ No newline at end of file
+    -->
+    <_TargetFrameworkDirectories>$(MSBuildThisFileDirectory)</_TargetFrameworkDirectories>
+    <_FullFrameworkReferenceAssemblyPaths>$(MSBuildThisFileDirectory)</_FullFrameworkReferenceAssemblyPaths>
+    <AutoUnifyAssemblyReferences>true</AutoUnifyAssemblyReferences>
+  </PropertyGroup>
+</Project>