PROJECT(esplusplayer)
SET(description "new multimedia player, object-oriented model")
SET(PC_NAME "esplusplayer")
+IF(${USE_MIXER} STREQUAL "yes")
SET(PC_LDFLAGS "-lesplusplayer -lmixer")
SET(PC_CFLAGS "-I/usr/include/esplusplayer_capi -I/usr/include/mixer")
+ELSE(${USE_MIXER} STREQUAL "yes")
+SET(PC_LDFLAGS "-lesplusplayer")
+SET(PC_CFLAGS "-I/usr/include/esplusplayer_capi")
+ENDIF(${USE_MIXER} STREQUAL "yes")
SET(INC_DIR ${PROJECT_SOURCE_DIR}/include/)
INCLUDE_DIRECTORIES(${INC_DIR})
/**
* @brief Enumerations for the buffer status
*/
-enum esplusplayer_buffer_status {
+typedef enum {
ESPLUSPLAYER_BUFFER_STATUS_UNDERRUN,
ESPLUSPLAYER_BUFFER_STATUS_OVERRUN
-};
+} esplusplayer_buffer_status;
/**
* @brief Enumerations for video decoded buffer type
* decoded video frame will be croped and scaled, then sent to
* user by media_packet_video_decoded_cb, only support hw decoder now
*/
-enum esplusplayer_decoded_video_frame_buffer_type {
+typedef enum {
ESPLUSPLAYER_DECODED_VIDEO_FRAME_BUFFER_TYPE_NONE,
ESPLUSPLAYER_DECODED_VIDEO_FRAME_BUFFER_TYPE_COPY,
ESPLUSPLAYER_DECODED_VIDEO_FRAME_BUFFER_TYPE_REFERENCE,
ESPLUSPLAYER_DECODED_VIDEO_FRAME_BUFFER_TYPE_SCALE,
ESPLUSPLAYER_DECODED_VIDEO_FRAME_BUFFER_TYPE_MANUAL_COPY
-};
+} esplusplayer_decoded_video_frame_buffer_type;
/**
* @brief Enumerations for buffer size option
* MIN_BYTE_THRESHOLD : Emit under-run when queued bytes drops below this
* percent of max-byte-size(size%)
*/
-enum esplusplayer_buffer_option {
+typedef enum {
ESPLUSPLAYER_BUFFER_AUDIO_MAX_TIME_SIZE,
ESPLUSPLAYER_BUFFER_VIDEO_MAX_TIME_SIZE,
ESPLUSPLAYER_BUFFER_AUDIO_MIN_TIME_THRESHOLD,
ESPLUSPLAYER_BUFFER_VIDEO_MAX_BYTE_SIZE,
ESPLUSPLAYER_BUFFER_AUDIO_MIN_BYTE_THRESHOLD,
ESPLUSPLAYER_BUFFER_VIDEO_MIN_BYTE_THRESHOLD
-};
+} esplusplayer_buffer_option;
/**
* @brief video decoded buffer struct
/**
* @brief Enumerations for the display mode
*/
-enum esplusplayer_display_mode {
+typedef enum {
ESPLUSPLAYER_DISPLAY_MODE_LETTER_BOX,
ESPLUSPLAYER_DISPLAY_MODE_ORIGIN_SIZE,
ESPLUSPLAYER_DISPLAY_MODE_FULL_SCREEN,
ESPLUSPLAYER_DISPLAY_MODE_CROPPED_FULL,
ESPLUSPLAYER_DISPLAY_MODE_ORIGIN_OR_LETTER,
ESPLUSPLAYER_DISPLAY_MODE_DST_ROI
-};
+} esplusplayer_display_mode;
/**
* @brief Enumerations for the display type
*/
-enum esplusplayer_display_type {
+typedef enum {
ESPLUSPLAYER_DISPLAY_TYPE_NONE,
ESPLUSPLAYER_DISPLAY_TYPE_OVERLAY,
ESPLUSPLAYER_DISPLAY_TYPE_EVAS,
ESPLUSPLAYER_DISPLAY_TYPE_MIXER
-};
+} esplusplayer_display_type;
/**
* @brief Enumerations for the display rotation type
*/
-enum esplusplayer_display_rotation_type {
+typedef enum {
ESPLUSPLAYER_DISPLAY_ROTATION_TYPE_NONE,
ESPLUSPLAYER_DISPLAY_ROTATION_TYPE_90,
ESPLUSPLAYER_DISPLAY_ROTATION_TYPE_180,
ESPLUSPLAYER_DISPLAY_ROTATION_TYPE_270
-};
+} esplusplayer_display_rotation_type;
#ifdef __cplusplus
} // extern "C"
/**
* @brief Enumerations for the drm type
*/
-enum esplusplayer_drm_type {
+typedef enum {
ESPLUSPLAYER_DRM_TYPE_NONE,
ESPLUSPLAYER_DRM_TYPE_PLAYREADY,
ESPLUSPLAYER_DRM_TYPE_MARLIN,
ESPLUSPLAYER_DRM_TYPE_VERIMATRIX,
ESPLUSPLAYER_DRM_TYPE_WV_MODULAR
-};
+} esplusplayer_drm_type;
/**
* @brief Enumerations for the algorithm encrypted
*/
-enum esplusplayer_drmb_es_cipher_algorithm {
+typedef enum {
ESPLUSPLAYER_DRMB_ES_CIPHER_ALGORITHM_UNKNOWN = -1,
ESPLUSPLAYER_DRMB_ES_CIPHER_ALGORITHM_RC4 = 0,
ESPLUSPLAYER_DRMB_ES_CIPHER_ALGORITHM_AES128_CTR = 1,
ESPLUSPLAYER_DRMB_ES_CIPHER_ALGORITHM_AES128_CBC = 2
-};
+} esplusplayer_drmb_es_cipher_algorithm;
/**
* @brief Enumerations for the algorithm encrypted
*/
-enum esplusplayer_drmb_es_media_format {
+typedef enum {
ESPLUSPLAYER_DRMB_ES_MEDIA_FORMAT_NONE = 0,
ESPLUSPLAYER_DRMB_ES_MEDIA_FORMAT_FMP4 = 1,
ESPLUSPLAYER_DRMB_ES_MEDIA_FORMAT_TS = 2,
ESPLUSPLAYER_DRMB_ES_MEDIA_FORMAT_FMP4_VIDEO = 5,
ESPLUSPLAYER_DRMB_ES_MEDIA_FORMAT_CLEAN_AUDIO = 6,
ESPLUSPLAYER_DRMB_ES_MEDIA_FORMAT_PES = 7
-};
+} esplusplayer_drmb_es_media_format;
/**
* @brief Enumerations for the phase for cipher
*/
-enum esplusplayer_drmb_es_cipher_phase {
+typedef enum {
ESPLUSPLAYER_DRMB_ES_CIPHER_PHASE_NONE = 0,
ESPLUSPLAYER_DRMB_ES_CIPHER_PHASE_INIT = 1,
ESPLUSPLAYER_DRMB_ES_CIPHER_PHASE_UPDATE = 2,
ESPLUSPLAYER_DRMB_ES_CIPHER_PHASE_FINAL = 3
-};
+} esplusplayer_drmb_es_cipher_phase;
/**
* @brief Subsample information structure for encrypted es
/**
* @brief Enumerations for the error type
*/
-enum esplusplayer_error_type {
+typedef enum {
ESPLUSPLAYER_ERROR_TYPE_NONE = TIZEN_ERROR_NONE, /**< Successful */
ESPLUSPLAYER_ERROR_TYPE_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */
ESPLUSPLAYER_ERROR_TYPE_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */
ESPLUSPLAYER_ERROR_TYPE_DRM_DECRYPTION_FAILED = ESPLUSPLAYER_CUSTOM_ERROR_CLASS | 0x05, /**< drm decryption failed */
ESPLUSPLAYER_ERROR_TYPE_NOT_SUPPORTED_FORMAT = ESPLUSPLAYER_CUSTOM_ERROR_CLASS | 0x08,/**< format not supported */
ESPLUSPLAYER_ERROR_TYPE_UNKNOWN
-};
+} esplusplayer_error_type;
#ifdef __cplusplus
} // extern "C"
/**
* @brief Enumerations for the Adaptive info type
*/
-enum esplusplayer_adaptive_info_type {
+typedef enum {
ESPLUSPLAYER_ADAPT_INFO_TYPE_NONE,
ESPLUSPLAYER_ADAPT_INFO_TYPE_DROPPED_FRAMES,
ESPLUSPLAYER_ADAPT_INFO_TYPE_DROPPED_VIDEO_FRAMES_FOR_CATCHUP,
ESPLUSPLAYER_ADAPT_INFO_TYPE_DROPPED_AUDIO_FRAMES_FOR_CATCHUP,
-};
+} esplusplayer_adaptive_info_type;
/**
* @brief Enumerations for low latency mode
* @version 3.2
*/
-enum esplusplayer_low_latency_mode {
+typedef enum {
ESPLUSPLAYER_LOW_LATENCY_MODE_NONE = 0x0000,
/**
* @description to support audio fast decoding/rendering
*/
ESPLUSPLAYER_LOW_LATENCY_MODE_ENABLE_GAME_MODE_WITH_FIXED_RESOLUTION =
ESPLUSPLAYER_LOW_LATENCY_MODE_ENABLE_GAME_MODE | 0x4000,
-};
+} esplusplayer_low_latency_mode;
/**
* @brief Enumerations for esplusplayer audio codec type
*/
-enum esplusplayer_audio_codec_type {
+typedef enum {
/**
* @description hardware codec can only be selected, default type
*/
* @description sorfware codec can only be selected
*/
ESPLUSPLAYER_AUDIO_CODEC_TYPE_SW
-};
+} esplusplayer_audio_codec_type;
/**
* @brief Enumerations for esplusplayer video codec type
*/
-enum esplusplayer_video_codec_type {
+typedef enum {
/**
* @description hardware codec can only be selected, default type
*/
*/
ESPLUSPLAYER_VIDEO_CODEC_TYPE_HW_N_DECODING
-};
+} esplusplayer_video_codec_type;
/**
* @brief Enumerations for esplusplayer audio easing type
* @version 3.0
*/
-enum esplusplayer_audio_easing_type {
+typedef enum {
/**
* @description audio easing function type is linear
*/
* @description audio easing function type is none
*/
ESPLUSPLAYER_AUDIO_EASING_NONE
-};
+} esplusplayer_audio_easing_type;
/**
* @brief Enumerations for esplusplayer resource type
* @version 3.0
*/
-enum esplusplayer_rsc_type {
+typedef enum {
/**
* @description video renderer type
*/
ESPLUSPLAYER_RSC_TYPE_VIDEO_RENDERER
-};
+} esplusplayer_rsc_type;
/**
* @brief Enumerations for advanced video quality type
* @version 4.0
*/
-enum esplusplayer_advanced_picture_quality_type {
+typedef enum {
/**
* @description advanced picture quality for video call
* @version 3.1
* @version 4.0
*/
ESPLUSPLAYER_ADVANCED_PICTURE_QUALITY_AIRPLAY_MIRRORING
-};
+} esplusplayer_advanced_picture_quality_type;
/**
* @brief Enumerations for audio resource type
* @version 3.8
*/
-enum esplusplayer_audio_resource_type {
+typedef enum {
/**
* @description all audio resources(decoder/audio out) to main resources
*/
* @description only audio out to simple mix out resource
*/
ESPLUSPLAYER_AUDIO_RESOURCE_SIMPLE_MIX_OUT
-};
+} esplusplayer_audio_resource_type;
/**
* @brief Enumerations for buffer level of simple mix out
* @version 3.8
*/
-enum esplusplayer_simple_mix_out_buffer_level {
+typedef enum {
/**
* @description buffer level is low
*/
* @description buffer level is high
*/
ESPLUSPLAYER_SIMPLE_MIX_OUT_BUFFER_HIGH
-};
+} esplusplayer_simple_mix_out_buffer_level;
/**
* @brief ESPlusplayer easing target volume, duration, type information
* @brief resource allocate policy
* @version 3.3
*/
-enum esplusplayer_rsc_alloc_policy {
+typedef enum {
/**
* @description exclusive policy, RM will return the requested resources,
* default policy
* @version 6.0
*/
ESPLUSPLAYER_RSC_ALLOC_EXCLUSIVE_NO_EXPLICIT
-};
+} esplusplayer_rsc_alloc_policy;
/**
* @brief Enumerations for the status of getting decoded video frame
* @version 4.0
*/
-enum esplusplayer_get_decoded_video_frame_status_type {
+typedef enum {
/** @brief successfully decoded video frame acquired. */
ESPLUSPLAYER_GET_DECVIDEOFRAME_STATUS_SUCCESS,
/** @brief it means app has to return the video before getting decoded
* @brief internal error
*/
ESPLUSPLAYER_GET_DECVIDEOFRAME_STATUS_UNKNOWN
-};
+} esplusplayer_get_decoded_video_frame_status_type;
/**
* @brief Enumerations for the video scan type
* @version 4.0
*/
-enum esplusplayer_video_scan_type {
+typedef enum {
/**
* @description progressive, mfd or dvde will be allocated for H.264 2K in
* normal mode.
* mode.
*/
ESPLUSPLAYER_VIDEO_SCAN_TYPE_INTERLACED,
-};
+} esplusplayer_video_scan_type;
/**
* @brief Enumerations for the time unit type
* @version 5.0
*/
-enum esplusplayer_time_unit_type {
+typedef enum {
/**
* @description the timeunit will be ms. It is default value.
*/
* @description the timeunit will be us.
*/
ESPLUSPLAYER_TIME_UNIT_US,
-};
+} esplusplayer_time_unit_type;
/**
* @brief Enumerations for the video stream rotation type
* @version 5.2
*/
-enum esplusplayer_video_stream_rotation_type {
+typedef enum {
ESPLUSPLAYER_VIDEO_ROTATION_NONE,
ESPLUSPLAYER_VIDEO_ROTATION_90,
ESPLUSPLAYER_VIDEO_ROTATION_180,
ESPLUSPLAYER_VIDEO_ROTATION_270
-};
+} esplusplayer_video_stream_rotation_type;
/**
* @brief Create a esplusplayer handle.
/**
* @brief Enumerations for event message types
*/
-enum esplusplayer_event_type {
+typedef enum {
ESPLUSPLAYER_EVENT_NONE,
ESPLUSPLAYER_EVENT_RESOLUTION_CHANGED,
/**
* or ESPLUSPLAYER_LOW_LATENCY_MODE_DISABLE_PREROLL mode.
*/
ESPLUSPLAYER_EVENT_REQUESTED_FIRST_RENDER_FRAME,
-};
+} esplusplayer_event_type;
#ifdef __cplusplus
} // extern "C"
/**
* @brief Enumerations for esplusplayer catch up speed
*/
-enum esplusplayer_catch_up_speed {
+typedef enum {
ESPLUSPLAYER_CATCH_UP_SPEED_NONE, /**< do not use catch up mode */
ESPLUSPLAYER_CATCH_UP_SPEED_SLOW, /**< catch up speed is slow */
ESPLUSPLAYER_CATCH_UP_SPEED_MID, /**< catch up speed is normal */
ESPLUSPLAYER_CATCH_UP_SPEED_FAST /**< catch up speed is fast */
-};
+} esplusplayer_catch_up_speed;
/**
* @brief Enumerations for esplusplayer latency status
*/
-enum esplusplayer_latency_status {
+typedef enum {
ESPLUSPLAYER_LATENCY_LOW, /**< latency status is low */
ESPLUSPLAYER_LATENCY_MID, /**< latency status is middle */
ESPLUSPLAYER_LATENCY_HIGH /**< latency status is high */
-};
+} esplusplayer_latency_status;
#ifdef __cplusplus
} // extern "C"
/**
* @brief Enumerations for es player state.
*/
-enum esplusplayer_state {
+typedef enum {
ESPLUSPLAYER_STATE_NONE, /**<Player is created, but not opened*/
ESPLUSPLAYER_STATE_IDLE, /**<Player is opened, but not prepared or player is
stopped*/
ESPLUSPLAYER_STATE_PLAYING, /**<Player is playing media*/
ESPLUSPLAYER_STATE_PAUSED, /**<Player is playing media*/
ESPLUSPLAYER_STATE_MAX
-};
+} esplusplayer_state;
#ifdef __cplusplus
} // extern "C"
/**
* @brief Enumerations for the stream type
*/
-enum esplusplayer_stream_type {
+typedef enum {
ESPLUSPLAYER_STREAM_TYPE_AUDIO,
ESPLUSPLAYER_STREAM_TYPE_VIDEO,
ESPLUSPLAYER_STREAM_TYPE_MAX
-};
+} esplusplayer_stream_type;
/**
* @brief Enumerations for audio mime type
* @version 6.0
*/
-enum esplusplayer_audio_mime_type {
+typedef enum {
ESPLUSPLAYER_AUDIO_MIME_TYPE_UNKNOWN,
ESPLUSPLAYER_AUDIO_MIME_TYPE_AAC,
ESPLUSPLAYER_AUDIO_MIME_TYPE_MP2,
ESPLUSPLAYER_AUDIO_MIME_TYPE_AC4,
ESPLUSPLAYER_AUDIO_MIME_TYPE_MPEGH,
ESPLUSPLAYER_AUDIO_MIME_TYPE_FLAC
-};
+} esplusplayer_audio_mime_type;
/**
* @brief Enumerations for video mime type
* @description ESPLUSPLAYER_VIDEO_MIME_TYPE_WMV3 only can be supported before
* TIZEN8.0
*/
-enum esplusplayer_video_mime_type {
+typedef enum {
ESPLUSPLAYER_VIDEO_MIME_TYPE_UNKNOWN,
ESPLUSPLAYER_VIDEO_MIME_TYPE_H263,
ESPLUSPLAYER_VIDEO_MIME_TYPE_H264,
ESPLUSPLAYER_VIDEO_MIME_TYPE_WMV3,
ESPLUSPLAYER_VIDEO_MIME_TYPE_AV1,
ESPLUSPLAYER_VIDEO_MIME_TYPE_MJPEG
-};
+} esplusplayer_video_mime_type;
/**
* @brief Audio stream information structure
/**
* @brief Enumerations for the type of buffers submitted
*/
-enum esplusplayer_submit_data_type {
+typedef enum {
ESPLUSPLAYER_SUBMIT_DATA_TYPE_CLEAN_DATA,
ESPLUSPLAYER_SUBMIT_DATA_TYPE_ENCRYPTED_DATA,
ESPLUSPLAYER_SUBMIT_DATA_TYPE_TRUSTZONE_DATA,
-};
+} esplusplayer_submit_data_type;
#ifdef __cplusplus
} // extern "C"
/**
* @brief Enumerations for the buffer status
*/
-enum esplusplayer_submit_status {
+typedef enum {
ESPLUSPLAYER_SUBMIT_STATUS_NOT_PREPARED,
ESPLUSPLAYER_SUBMIT_STATUS_INVALID_PACKET,
ESPLUSPLAYER_SUBMIT_STATUS_OUT_OF_MEMORY,
ESPLUSPLAYER_SUBMIT_STATUS_FULL,
ESPLUSPLAYER_SUBMIT_STATUS_SUCCESS
-};
+} esplusplayer_submit_status;
#ifdef __cplusplus
} // extern "C"
/**
* @brief Enumerations for the display mode
*/
-enum mixer_display_mode {
+typedef enum {
MIXER_DISPLAY_MODE_LETTER_BOX,
MIXER_DISPLAY_MODE_ORIGIN_SIZE,
MIXER_DISPLAY_MODE_FULL_SCREEN,
MIXER_DISPLAY_MODE_CROPPED_FULL,
MIXER_DISPLAY_MODE_ORIGIN_OR_LETTER,
MIXER_DISPLAY_MODE_DST_ROI
-};
+} mixer_display_mode;
/**
* @brief Enumerations for the display type
*/
-enum mixer_display_type {
+typedef enum {
MIXER_DISPLAY_TYPE_NONE,
MIXER_DISPLAY_TYPE_OVERLAY,
-};
+} mixer_display_type;
#ifdef __cplusplus
} // extern "C"
/**
* @brief Enumerations for the error type
*/
-enum mixer_error_type {
+typedef enum {
MIXER_ERROR_TYPE_NONE = TIZEN_ERROR_NONE, /**< Successful */
MIXER_ERROR_TYPE_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */
MIXER_ERROR_TYPE_INVALID_OPERATION = TIZEN_ERROR_INVALID_OPERATION, /**< Invalid operation */
-};
+} mixer_error_type;
#ifdef __cplusplus
} // extern "C"
/**
* @brief Enumerations for the resource allocation mode
*/
-enum mixer_rsc_alloc_mode {
+typedef enum {
MIXER_RSC_ALLOC_MODE_DEFAULT, /**< Main -> Sub -> S/W */
MIXER_RSC_ALLOC_MODE_NDECODER, /**< Only N decoder */
MIXER_RSC_ALLOC_MODE_DISABLE /**< Mixer is NOT involved in resource allocation */
-};
+} mixer_rsc_alloc_mode;
/**
* @brief Create a mixer handle
Name: esplusplayer
Summary: new multimedia streaming player
Version: 1.2.1
-Release: 0
+Release: 1
Group: Multimedia/Libraries
License: Apache-2.0
Source0: %{name}-%{version}.tar.gz