00001
00002
00003
00004
00005
00006
00007
00008
00013 #ifndef _BLT_MEDIA_PACKET_H_
00014 #define _BLT_MEDIA_PACKET_H_
00015
00020
00021
00022
00023 #include "Atomix.h"
00024 #include "BltDefs.h"
00025 #include "BltTypes.h"
00026 #include "BltErrors.h"
00027 #include "BltMedia.h"
00028 #include "BltTime.h"
00029
00030
00031
00032
00039 typedef struct BLT_MediaPacket BLT_MediaPacket;
00040
00043
00044
00045
00057 #define BLT_MEDIA_PACKET_FLAG_START_OF_STREAM 0x01
00058
00064 #define BLT_MEDIA_PACKET_FLAG_END_OF_STREAM 0x02
00065
00070 #define BLT_MEDIA_PACKET_FLAG_STREAM_DISCONTINUITY 0x04
00071
00077 #define BLT_MEDIA_PACKET_FLAG_STREAM_METADATA 0x08
00078
00085
00086
00087
00088 #if defined(__cplusplus)
00089 extern "C" {
00090 #endif
00091
00095 BLT_Result BLT_MediaPacket_AddReference(BLT_MediaPacket* packet);
00096
00100 BLT_Result BLT_MediaPacket_Release(BLT_MediaPacket* packet);
00101
00105 BLT_Any BLT_MediaPacket_GetPayloadBuffer(BLT_MediaPacket* packet);
00106
00114 BLT_Result BLT_MediaPacket_SetPayloadWindow(BLT_MediaPacket* packet,
00115 BLT_Offset offset,
00116 BLT_Size size);
00120 BLT_Size BLT_MediaPacket_GetPayloadSize(BLT_MediaPacket* packet);
00121
00128 BLT_Result BLT_MediaPacket_SetPayloadSize(BLT_MediaPacket* packet,
00129 BLT_Size size);
00130
00134 BLT_Size BLT_MediaPacket_GetAllocatedSize(BLT_MediaPacket* packet);
00135
00140 BLT_Result BLT_MediaPacket_SetAllocatedSize(BLT_MediaPacket* packet,
00141 BLT_Size size);
00142
00147 BLT_Offset BLT_MediaPacket_GetPayloadOffset(BLT_MediaPacket* packet);
00148
00154 BLT_Result BLT_MediaPacket_SetPayloadOffset(BLT_MediaPacket* packet,
00155 BLT_Offset offset);
00156
00162 BLT_Result BLT_MediaPacket_GetMediaType(BLT_MediaPacket* packet,
00163 const BLT_MediaType** type);
00164
00171 BLT_Result BLT_MediaPacket_SetMediaType(BLT_MediaPacket* packet,
00172 const BLT_MediaType* type);
00173
00178 BLT_Result BLT_MediaPacket_SetTimeStamp(BLT_MediaPacket* packet,
00179 BLT_TimeStamp time_stamp);
00180
00184 BLT_TimeStamp BLT_MediaPacket_GetTimeStamp(BLT_MediaPacket* packet);
00185
00191 BLT_Time BLT_MediaPacket_GetDuration(BLT_MediaPacket* packet);
00192
00197 BLT_Result BLT_MediaPacket_SetDuration(BLT_MediaPacket* packet,
00198 BLT_Time duration);
00199
00207 BLT_Result BLT_MediaPacket_SetFlags(BLT_MediaPacket* packet, BLT_Flags flags);
00208
00216 BLT_Result BLT_MediaPacket_ClearFlags(BLT_MediaPacket* packet,
00217 BLT_Flags flags);
00218
00224 BLT_Result BLT_MediaPacket_ResetFlags(BLT_MediaPacket* packet);
00225
00230 BLT_Flags BLT_MediaPacket_GetFlags(BLT_MediaPacket* packet);
00231
00232 #if defined(__cplusplus)
00233 }
00234 #endif
00235
00238 #endif