3 * @brief the buffer for playback
4 * @interfacetype Module
5 * @privlevel None-privilege
11 * Copyright (c) 2018 Samsung Electronics Co., Ltd All Rights Reserved
12 * PROPRIETARY/CONFIDENTIAL
13 * This software is the confidential and proprietary
14 * information of SAMSUNG ELECTRONICS ("Confidential Information"). You shall
15 * not disclose such Confidential Information and shall use it only in
16 * accordance with the terms of the license agreement you entered into with
17 * SAMSUNG ELECTRONICS. SAMSUNG make no representations or warranties about the
18 * suitability of the software, either express or implied, including but not
19 * limited to the implied warranties of merchantability, fitness for a
20 * particular purpose, or non-infringement. SAMSUNG shall not be liable for any
21 * damages suffered by licensee as a result of using, modifying or distributing
22 * this software or its derivatives.
24 #ifndef __PLUSPLAYER_TYPES_BUFFER_H__
25 #define __PLUSPLAYER_TYPES_BUFFER_H__
31 namespace plusplayer {
34 * @brief Enumerations for the buffer status
36 enum class BufferStatus { kUnderrun, kOverrun };
38 enum class DecodedVideoFrameBufferType { kNone, kCopy, kReference, kScale };
40 enum class BufferOption {
41 kBufferAudioMaxTimeSize,
42 kBufferVideoMaxTimeSize,
43 kBufferAudioMinTimeThreshold,
44 kBufferVideoMinTimeThreshold,
45 kBufferAudioMaxByteSize,
46 kBufferVideoMaxByteSize,
47 kBufferAudioMinByteThreshold,
48 kBufferVideoMinByteThreshold,
52 struct DecodedVideoPacket {
54 uint64_t duration = 0;
55 tbm_surface_h surface_data = nullptr; // tbm_surface
56 void* buffer_addr = nullptr;
59 struct DecoderBufferTime {
61 uint64_t system_time = 0;
65 * @brief Enumerations for the state of getting decoded packet
67 enum class GetDecodedVideoFrameStatus {
74 } // namespace plusplayer
76 #endif // __PLUSPLAYER_TYPES_BUFFER_H__