00001
00002
00003
00004
00005
00006
00007
00008
00013 #ifndef _BLT_DECODER_H_
00014 #define _BLT_DECODER_H_
00015
00016
00017
00018
00019 #include "BltDefs.h"
00020 #include "BltTypes.h"
00021 #include "BltStream.h"
00022 #include "BltTime.h"
00023 #include "BltEventListener.h"
00024
00029
00030
00031
00032 #define BLT_DECODER_DEFAULT_OUTPUT_NAME "!default"
00033
00034
00035
00036
00046 typedef struct BLT_Decoder BLT_Decoder;
00047
00051 typedef struct {
00052 BLT_StreamInfo stream_info;
00053 BLT_StreamPosition position;
00054 BLT_TimeStamp time_stamp;
00055 } BLT_DecoderStatus;
00056
00061 typedef enum {
00062 BLT_PROPERTY_SCOPE_CORE,
00063 BLT_PROPERTY_SCOPE_STREAM,
00064 BLT_PROPERTY_SCOPE_MODULE
00065 } BLT_PropertyScope;
00066
00067
00068
00069
00070 #ifdef __cplusplus
00071 extern "C" {
00072 #endif
00073
00077 BLT_Result BLT_Decoder_Create(BLT_Decoder** decoder);
00078
00082 BLT_Result BLT_Decoder_Destroy(BLT_Decoder* decoder);
00083
00087 BLT_Result BLT_Decoder_RegisterBuiltins(BLT_Decoder* decoder);
00088
00093 BLT_Result BLT_Decoder_RegisterModule(BLT_Decoder* decoder,
00094 BLT_Module* module);
00095
00101 BLT_Result BLT_Decoder_SetInput(BLT_Decoder* decoder,
00102 BLT_CString name,
00103 BLT_CString type);
00104
00110 BLT_Result BLT_Decoder_SetOutput(BLT_Decoder* decoder,
00111 BLT_CString name,
00112 BLT_CString type);
00113
00121 BLT_Result BLT_Decoder_AddNodeByName(BLT_Decoder* decoder,
00122 BLT_MediaNode* where,
00123 BLT_CString name);
00124
00129 BLT_Result BLT_Decoder_GetProperties(BLT_Decoder* decoder,
00130 ATX_Properties** properties);
00131
00137 BLT_Result BLT_Decoder_GetStatus(BLT_Decoder* decoder,
00138 BLT_DecoderStatus* status);
00139
00147 BLT_Result BLT_Decoder_GetStreamProperties(BLT_Decoder* decoder,
00148 ATX_Properties** properties);
00149
00153 BLT_Result BLT_Decoder_PumpPacket(BLT_Decoder* decoder);
00154
00162 BLT_Result BLT_Decoder_Stop(BLT_Decoder* decoder);
00163
00175 BLT_Result BLT_Decoder_Pause(BLT_Decoder* decoder);
00176
00181 BLT_Result BLT_Decoder_SeekToTime(BLT_Decoder* decoder, BLT_UInt32 time);
00182
00191 BLT_Result BLT_Decoder_SeekToPosition(BLT_Decoder* decoder,
00192 BLT_Size offset,
00193 BLT_Size range);
00194
00201 BLT_Result BLT_Decoder_SetEventListener(BLT_Decoder* decoder,
00202 BLT_EventListener* listener);
00203
00204 #ifdef __cplusplus
00205 }
00206 #endif
00207
00210 #endif