From acfc9a50276a0a34f9386f36f61c066050de98ef Mon Sep 17 00:00:00 2001 From: coderhyme Date: Thu, 10 Nov 2016 11:35:22 +0900 Subject: [PATCH] Fix a SupportedCodecs issue causing application abortion Change-Id: Id26698f1f928b5029cbe1e3fc686d1940d41209b Signed-off-by: coderhyme --- packaging/csapi-multimedia.spec | 2 +- src/Tizen.Multimedia/MediaCodec/MediaCodec.cs | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/packaging/csapi-multimedia.spec b/packaging/csapi-multimedia.spec index 5b1820d..9dfbd07 100644 --- a/packaging/csapi-multimedia.spec +++ b/packaging/csapi-multimedia.spec @@ -8,7 +8,7 @@ Name: csapi-multimedia Summary: Tizen Multimedia API for C# -Version: 1.0.13 +Version: 1.0.14 Release: 0 Group: Development/Libraries License: Apache-2.0 diff --git a/src/Tizen.Multimedia/MediaCodec/MediaCodec.cs b/src/Tizen.Multimedia/MediaCodec/MediaCodec.cs index 50db753..03e6f83 100644 --- a/src/Tizen.Multimedia/MediaCodec/MediaCodec.cs +++ b/src/Tizen.Multimedia/MediaCodec/MediaCodec.cs @@ -41,7 +41,7 @@ namespace Tizen.Multimedia.MediaCodec if (ret == (int)MediaCodecErrorCode.InvalidOperation) { - throw new InvalidOperationException("Not able to initiate a new media codec."); + throw new InvalidOperationException("Not able to initialize a new media codec."); } MediaCodecDebug.AssertNoError(ret); @@ -128,6 +128,11 @@ namespace Tizen.Multimedia.MediaCodec private static bool TryGetMimeTypeFromCodecType(int codecType, ref T result) { + if (codecType == -1) + { + return false; + } + foreach (T value in Enum.GetValues(typeof(T))) { if ((Convert.ToInt32(value) & CodecTypeMask) == codecType) @@ -235,7 +240,7 @@ namespace Tizen.Multimedia.MediaCodec if (format == null) { - throw new ArgumentNullException("Format can't be null."); + throw new ArgumentNullException(nameof(format)); } if (codecType != MediaCodecTypes.Hardware && codecType != MediaCodecTypes.Software) @@ -344,7 +349,7 @@ namespace Tizen.Multimedia.MediaCodec if (packet == null) { - throw new ArgumentNullException("Packet can't be null"); + throw new ArgumentNullException(nameof(packet)); } MediaPacket.Lock packetLock = new MediaPacket.Lock(packet); @@ -479,9 +484,12 @@ namespace Tizen.Multimedia.MediaCodec catch (Exception) { Interop.MediaPacket.Destroy(packetHandle); + + // TODO should we throw it to unmanaged code? throw; } + //TODO dispose if no event handler registered _outputAvailable?.Invoke(this, args); }; -- 2.7.4