BltMediaPacket.h

Go to the documentation of this file.
00001 /*****************************************************************
00002 |
00003 |   BlueTune - Media Packet Interface
00004 |
00005 |   (c) 2002-2006 Gilles Boccon-Gibod
00006 |   Author: Gilles Boccon-Gibod (bok@bok.net)
00007 |
00008  ****************************************************************/
00013 #ifndef _BLT_MEDIA_PACKET_H_
00014 #define _BLT_MEDIA_PACKET_H_
00015 
00020 /*----------------------------------------------------------------------
00021 |   includes
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 |   types
00032 +---------------------------------------------------------------------*/
00039 typedef struct BLT_MediaPacket BLT_MediaPacket;
00040 
00043 /*----------------------------------------------------------------------
00044 |   constants
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 |   prototypes
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 /* _BLT_MEDIA_PACKET_H_ */