/*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2018 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.
internal delegate void VideoFrameDecodedCallback(IntPtr packetHandle, IntPtr userData);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void AudioFrameDecodedCallback(IntPtr packetHandle, IntPtr userData);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate void SubtitleUpdatedCallback(uint duration, string text, IntPtr userData);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate void SeekCompletedCallback(IntPtr userData);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate bool AdaptiveVariantCallback(int bandwidth, int width, int height, IntPtr userData);
+
[DllImport(Libraries.Player, EntryPoint = "player_create")]
internal static extern PlayerErrorCode Create(out PlayerHandle player);
[DllImport(Libraries.Player, EntryPoint = "player_get_volume")]
internal static extern PlayerErrorCode GetVolume(IntPtr player, out float left, out float right);
+ [DllImport(Libraries.Player, EntryPoint = "player_set_replaygain_enabled")]
+ internal static extern PlayerErrorCode SetReplayGain(IntPtr player, bool enabled);
+
+ [DllImport(Libraries.Player, EntryPoint = "player_is_replaygain_enabled")]
+ internal static extern PlayerErrorCode IsReplayGain(IntPtr player, out bool enabled);
+
[DllImport(Libraries.Player, EntryPoint = "player_set_sound_stream_info")]
internal static extern PlayerErrorCode SetAudioPolicyInfo(IntPtr player, AudioStreamPolicyHandle streamInfo);
internal static extern PlayerErrorCode SetPlayPosition(IntPtr player, int millisecond,
bool accurate, SeekCompletedCallback cb, IntPtr userData = default(IntPtr));
+ [DllImport(Libraries.Player, EntryPoint = "player_get_play_position_nsec")]
+ internal static extern PlayerErrorCode GetPlayPositionNanoseconds(IntPtr player, out long nanoseconds);
+
+ [DllImport(Libraries.Player, EntryPoint = "player_set_play_position_nsec")]
+ internal static extern PlayerErrorCode SetPlayPositionNanoseconds(IntPtr player, long nanoseconds,
+ bool accurate, SeekCompletedCallback cb, IntPtr userData = default(IntPtr));
+
[DllImport(Libraries.Player, EntryPoint = "player_set_mute")]
internal static extern PlayerErrorCode SetMute(IntPtr player, bool muted);
[DllImport(Libraries.Player, EntryPoint = "player_unset_media_packet_video_frame_decoded_cb")]
internal static extern PlayerErrorCode UnsetVideoFrameDecodedCb(IntPtr player);
+ [DllImport(Libraries.Player, EntryPoint = "player_set_media_packet_audio_frame_decoded_cb")]
+ internal static extern PlayerErrorCode SetAudioFrameDecodedCb(IntPtr player, IntPtr format, PlayerAudioExtractOption opt,
+ AudioFrameDecodedCallback callback, IntPtr userData = default(IntPtr));
+
+ [DllImport(Libraries.Player, EntryPoint = "player_unset_media_packet_audio_frame_decoded_cb")]
+ internal static extern PlayerErrorCode UnsetAudioFrameDecodedCb(IntPtr player);
+
[DllImport(Libraries.Player, EntryPoint = "player_set_streaming_cookie")]
internal static extern PlayerErrorCode SetStreamingCookie(IntPtr player, string cookie, int size);
[DllImport(Libraries.Player, EntryPoint = "player_get_streaming_download_progress")]
internal static extern PlayerErrorCode GetStreamingDownloadProgress(IntPtr player, out int start, out int current);
+ [DllImport(Libraries.Player, EntryPoint = "player_set_streaming_buffering_time")]
+ internal static extern PlayerErrorCode SetStreamingBufferingTime(IntPtr player, int bufferingTime, int reBufferingTime);
+
+ [DllImport(Libraries.Player, EntryPoint = "player_get_streaming_buffering_time")]
+ internal static extern PlayerErrorCode GetStreamingBufferingTime(IntPtr player, out int bufferingTime, out int reBufferingTime);
+
[DllImport(Libraries.Player, EntryPoint = "player_set_buffering_cb")]
internal static extern PlayerErrorCode SetBufferingCb(IntPtr player,
BufferingProgressCallback callback, IntPtr userData = default(IntPtr));
[DllImport(Libraries.Player, EntryPoint = "player_get_duration")]
internal static extern PlayerErrorCode GetDuration(IntPtr player, out int duration);
+ [DllImport(Libraries.Player, EntryPoint = "player_get_duration_nsec")]
+ internal static extern PlayerErrorCode GetDurationNanoseconds(IntPtr player, out long duration);
+
[DllImport(Libraries.Player, EntryPoint = "player_set_subtitle_path")]
internal static extern PlayerErrorCode SetSubtitlePath(IntPtr player, string path);
[DllImport(Libraries.Player, EntryPoint = "player_360_get_field_of_view")]
internal static extern PlayerErrorCode GetFieldOfView(IntPtr player, out int horizontalDegrees, out int verticalDegrees);
+ [DllImport(Libraries.Player, EntryPoint = "player_360_set_zoom_with_field_of_view")]
+ internal static extern PlayerErrorCode SetZoomWithFieldOfView(IntPtr player, float level, int horizontalDegrees, int verticalDegrees);
+
+ [DllImport(Libraries.Player, EntryPoint = "player_foreach_adaptive_variant")]
+ internal static extern PlayerErrorCode ForeachAdaptiveVariants(IntPtr player, AdaptiveVariantCallback callback, IntPtr userData);
+
+ [DllImport(Libraries.Player, EntryPoint = "player_set_max_adaptive_variant_limit")]
+ internal static extern PlayerErrorCode SetMaxLimit(IntPtr player, int bandwidth, int width, int height);
+
+ [DllImport(Libraries.Player, EntryPoint = "player_get_max_adaptive_variant_limit")]
+ internal static extern PlayerErrorCode GetMaxLimit(IntPtr player, out int bandwidth, out int width, out int height);
+
+ [DllImport(Libraries.Player, EntryPoint = "player_set_video_roi_area")]
+ internal static extern PlayerErrorCode SetVideoRoi(IntPtr player, double scaleX, double scaleY, double scaleWidth, double scaleHeight);
+
+ [DllImport(Libraries.Player, EntryPoint = "player_get_video_roi_area")]
+ internal static extern PlayerErrorCode GetVideoRoi(IntPtr player, out double scaleX, out double scaleY, out double scaleWidth, out double scaleHeight);
+
+ [DllImport(Libraries.Player, EntryPoint = "player_audio_pitch_set_enabled")]
+ internal static extern PlayerErrorCode SetAudioPitchEnabled(IntPtr player, bool enabled);
+
+ [DllImport(Libraries.Player, EntryPoint = "player_audio_pitch_is_enabled")]
+ internal static extern PlayerErrorCode IsAudioPitchEnabled(IntPtr player, out bool enabled);
+
+ [DllImport(Libraries.Player, EntryPoint = "player_audio_pitch_set_value")]
+ internal static extern PlayerErrorCode SetAudioPitch(IntPtr player, float level);
+
+ [DllImport(Libraries.Player, EntryPoint = "player_audio_pitch_get_value")]
+ internal static extern PlayerErrorCode GetAudioPitch(IntPtr player, out float level);
}
internal class PlayerHandle : SafeHandle