RU:Interfaces
(37 intermediate revisions by one user not shown) | |||
Line 3: | Line 3: | ||
==IAVObject interface== | ==IAVObject interface== | ||
====Init==== | ====Init==== | ||
+ | <source lang="cpp"> | ||
+ | HRESULT Init() | ||
+ | </source> | ||
Производит инициализацию данных объекта, для объектов - сплитеров или ридеров производит открытие файлов и начальный парсинг. | Производит инициализацию данных объекта, для объектов - сплитеров или ридеров производит открытие файлов и начальный парсинг. | ||
− | ==== | + | ====Close==== |
+ | <syntaxhighlight lang=cpp> | ||
+ | HRESULT Close() | ||
+ | </syntaxhighlight> | ||
Освобождает ресурсы используемые объектом, закрывает файлы, освобождает блоки памяти. | Освобождает ресурсы используемые объектом, закрывает файлы, освобождает блоки памяти. | ||
+ | |||
+ | ====BeginFlush==== | ||
+ | <syntaxhighlight lang=cpp> | ||
+ | HRESULT BeginFlush() | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ====EndFlush==== | ||
+ | <syntaxhighlight lang=cpp> | ||
+ | HRESULT EndFlush() | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ====Convert==== | ||
+ | <syntaxhighlight lang="cpp"> | ||
+ | HRESULT Convert( | ||
+ | [in] BYTE* pbSrc, | ||
+ | [in] int cbSrc, | ||
+ | [in] BYTE* pbDst, | ||
+ | [in] int cbDst, | ||
+ | [out] int* pcbActual, | ||
+ | [in] int nReserved, | ||
+ | [in] BYTE* pbReserved | ||
+ | ); | ||
+ | </syntaxhighlight> | ||
+ | Method for synchronous conversions. | ||
+ | If this method is implemented then methods for asynchronous conversions | ||
+ | (CanPutFrame(), PutFrame(), CanGetFrame(), GetFrame()) can be not implemented. | ||
+ | |||
+ | =====Parameters:===== | ||
+ | {| | ||
+ | |- | ||
+ | |pbSrc | ||
+ | |Source buffer for conversion. | ||
+ | |- | ||
+ | |cbSrc | ||
+ | |Size of data in source buffer in bytes. | ||
+ | |- | ||
+ | |pbDst | ||
+ | |Destination buffer for result of conversion. | ||
+ | |- | ||
+ | |cbDst | ||
+ | |Size of destination buffer in bytes | ||
+ | |- | ||
+ | |pcbActual | ||
+ | |Size of returned data in destination buffer in bytes | ||
+ | |- | ||
+ | |nReserved | ||
+ | |Library specific variable (see library description) | ||
+ | |- | ||
+ | |pbReserved | ||
+ | |Library specific variable (see library description) | ||
+ | |} | ||
+ | |||
+ | =====Returns:===== | ||
+ | {| | ||
+ | |S_OK | ||
+ | |Converted data in pbDst returned | ||
+ | |- | ||
+ | |S_FALSE | ||
+ | |Required data is not found | ||
+ | |- | ||
+ | |HRESULT_FROM_WIN32(ERROR_MORE_DATA) | ||
+ | |Destination buffer is too small to receive the data | ||
+ | |- | ||
+ | |E_POINTER | ||
+ | |One or more NULL pointer argument | ||
+ | |- | ||
+ | |E_INVALIDARG | ||
+ | |One or more arguments are invalid | ||
+ | |- | ||
+ | |E_FAIL | ||
+ | |Object not initialized yet or other failure. | ||
+ | |} | ||
+ | |||
+ | ====CanPutFrame==== | ||
+ | <syntaxhighlight lang=cpp> | ||
+ | HRESULT CanPutFrame( | ||
+ | [in] int nStream, | ||
+ | [in] DWORD nWait | ||
+ | ); | ||
+ | </syntaxhighlight> | ||
+ | Метод проверяет возможность отправки данных объекту | ||
+ | =====Parameters===== | ||
+ | {| | ||
+ | |- | ||
+ | |nStream | ||
+ | |Number of stream | ||
+ | |- | ||
+ | |nWait | ||
+ | |Время ожидания ответа в мкс. | ||
+ | |} | ||
+ | |||
+ | =====Returns:===== | ||
+ | {| | ||
+ | |S_OK | ||
+ | |Object ready for PutFrame | ||
+ | |- | ||
+ | |S_FALSE | ||
+ | |Object busy | ||
+ | |- | ||
+ | |HRESULT_FROM_WIN32(ERROR_HANDLE_EOF) | ||
+ | |End of stream | ||
+ | |- | ||
+ | |E_INVALIDARG | ||
+ | |One or more arguments are invalid | ||
+ | |- | ||
+ | |E_FAIL | ||
+ | |Object not initialized yet or other failure. | ||
+ | |} | ||
+ | |||
+ | ====PutFrame==== | ||
+ | <syntaxhighlight lang=cpp> | ||
+ | HRESULT PutFrame( | ||
+ | [in] int nStream, | ||
+ | [in] BYTE* pbBuffer, | ||
+ | [in] DWORD cbActual, | ||
+ | [in] DWORD dwFlags, | ||
+ | [in] REFERENCE_TIME tS, | ||
+ | [in] REFERENCE_TIME tE, | ||
+ | [in] BYTE* pbReserved | ||
+ | ); | ||
+ | </syntaxhighlight> | ||
+ | Метод для отправки данных объекту | ||
+ | |||
+ | =====Parameters:===== | ||
+ | {| | ||
+ | |- | ||
+ | |nStream | ||
+ | |Number of stream | ||
+ | |- | ||
+ | |pbBuffer | ||
+ | |Buffer with data. | ||
+ | |- | ||
+ | |cbActual | ||
+ | |Size of data in buffer in bytes. | ||
+ | |- | ||
+ | |dwFlags | ||
+ | |Library specific bitmap (see library description) | ||
+ | |- | ||
+ | |tS | ||
+ | |Start time | ||
+ | |- | ||
+ | |tE | ||
+ | |End time | ||
+ | |- | ||
+ | |pbReserved | ||
+ | |Library specific variable (see library description) | ||
+ | |} | ||
+ | |||
+ | =====Returns:===== | ||
+ | {| | ||
+ | |S_OK | ||
+ | |Data in pbBuffer sended | ||
+ | |- | ||
+ | |HRESULT_FROM_WIN32(ERROR_HANDLE_EOF) | ||
+ | |End of stream | ||
+ | |- | ||
+ | |E_INVALIDARG | ||
+ | |One or more arguments are invalid | ||
+ | |- | ||
+ | |E_FAIL | ||
+ | |Object not initialized yet or other failure. | ||
+ | |} | ||
+ | |||
+ | ====CanGetFrame==== | ||
+ | <syntaxhighlight lang=cpp> | ||
+ | HRESULT CanGetFrame( | ||
+ | [in] int nStream, | ||
+ | [in] DWORD nWait | ||
+ | ); | ||
+ | </syntaxhighlight> | ||
+ | Метод проверяет возможность получения данных от объекта | ||
+ | =====Parameters:===== | ||
+ | {| | ||
+ | |- | ||
+ | |nStream | ||
+ | |Number of stream | ||
+ | |- | ||
+ | |nWait | ||
+ | |Время ожидания ответа в мкс. | ||
+ | |} | ||
+ | =====Returns:===== | ||
+ | {| | ||
+ | |S_OK | ||
+ | |Object ready for GetFrame | ||
+ | |- | ||
+ | |S_FALSE | ||
+ | |Object busy | ||
+ | |- | ||
+ | |HRESULT_FROM_WIN32(ERROR_HANDLE_EOF) | ||
+ | |End of stream | ||
+ | |- | ||
+ | |E_INVALIDARG | ||
+ | |One or more arguments are invalid | ||
+ | |- | ||
+ | |E_FAIL | ||
+ | |Object not initialized yet or other failure. | ||
+ | |} | ||
+ | |||
+ | ====GetFrame==== | ||
+ | <syntaxhighlight lang=cpp> | ||
+ | HRESULT GettFrame( | ||
+ | [in] int nStream, | ||
+ | [in] BYTE* pbBuffer, | ||
+ | [in] DWORD cbBuffer, | ||
+ | [out] DWORD* pcbActual, | ||
+ | [out] DWORD* pdwFlags, | ||
+ | [out] REFERENCE_TIME* ptS, | ||
+ | [out] REFERENCE_TIME* ptE, | ||
+ | [out] BYTE** pbReserved | ||
+ | ); | ||
+ | </syntaxhighlight> | ||
+ | Метод для отправки данных объекту | ||
+ | |||
+ | =====Parameters:===== | ||
+ | {| | ||
+ | |- | ||
+ | |nStream | ||
+ | |Number of stream | ||
+ | |- | ||
+ | |pbBuffer | ||
+ | |Buffer for data. | ||
+ | |- | ||
+ | |cbBuffer | ||
+ | |Size of data in buffer in bytes. | ||
+ | |- | ||
+ | |cbActual | ||
+ | |Size of received data buffer in bytes. | ||
+ | |- | ||
+ | |pdwFlags | ||
+ | |Library specific bitmap (see library description) | ||
+ | |- | ||
+ | |ptS | ||
+ | |Start time | ||
+ | |- | ||
+ | |ptE | ||
+ | |End time | ||
+ | |- | ||
+ | |ppbReserved | ||
+ | |Library specific variable (see library description) | ||
+ | |} | ||
+ | =====Returns:===== | ||
+ | {| | ||
+ | |S_OK | ||
+ | |Data in pbBuffer returned | ||
+ | |- | ||
+ | |E_INVALIDARG | ||
+ | |One or more arguments are invalid | ||
+ | |- | ||
+ | |E_FAIL | ||
+ | |Object not initialized yet or other failure. | ||
+ | |} | ||
+ | |||
+ | |||
+ | ==IAVProperties interface== | ||
+ | Интерфейс для установки и получения свойств объекта | ||
+ | |||
+ | ====PropsSet==== | ||
+ | <syntaxhighlight lang=cpp> | ||
+ | HRESULT PropsSet( | ||
+ | [in] BSTR bsName, | ||
+ | [in] BSTR bsValue | ||
+ | ); | ||
+ | </syntaxhighlight> | ||
+ | Установить значение bsValue для свойства bsName | ||
+ | =====Parameters:===== | ||
+ | {| | ||
+ | |- | ||
+ | |bsName | ||
+ | |Name of Property | ||
+ | |- | ||
+ | |bsValue | ||
+ | |Value for property. | ||
+ | |} | ||
+ | |||
+ | =====Returns:===== | ||
+ | {| | ||
+ | |S_OK | ||
+ | |Property values is set | ||
+ | |- | ||
+ | |E_INVALIDARG | ||
+ | |Property with name bsName not found | ||
+ | |- | ||
+ | |E_FAIL | ||
+ | |Error in property value. | ||
+ | |} | ||
+ | |||
+ | ====PropsGet==== | ||
+ | <syntaxhighlight lang=cpp> | ||
+ | HRESULT PropsSet( | ||
+ | [in] BSTR bsName, | ||
+ | [out] BSTR* pbsValue | ||
+ | ); | ||
+ | </syntaxhighlight> | ||
+ | Получить значение для свойства bsName | ||
+ | =====Parameters:===== | ||
+ | {| | ||
+ | |- | ||
+ | |bsName | ||
+ | |Name of Property | ||
+ | |- | ||
+ | |pbsValue | ||
+ | |Pointer to variable for return property value. | ||
+ | |} | ||
+ | |||
+ | =====Returns:===== | ||
+ | {| | ||
+ | |S_OK | ||
+ | |Property values is returned | ||
+ | |- | ||
+ | |E_INVALIDARG | ||
+ | |Property with name bsName not found | ||
+ | |- | ||
+ | |E_FAIL | ||
+ | |Some error. | ||
+ | |} | ||
+ | |||
+ | ===Related Topic=== | ||
+ | [[RU:AVObjects Media Library Reference]] |
Latest revision as of 10:55, 26 June 2014
Этот раздел содержит ссылочную информацию об интерфейсах и методах AVObjects Media Library.
Contents |
IAVObject interface
Init
HRESULT Init()
Производит инициализацию данных объекта, для объектов - сплитеров или ридеров производит открытие файлов и начальный парсинг.
Close
HRESULT Close()
Освобождает ресурсы используемые объектом, закрывает файлы, освобождает блоки памяти.
BeginFlush
HRESULT BeginFlush()
EndFlush
HRESULT EndFlush()
Convert
HRESULT Convert( [in] BYTE* pbSrc, [in] int cbSrc, [in] BYTE* pbDst, [in] int cbDst, [out] int* pcbActual, [in] int nReserved, [in] BYTE* pbReserved );
Method for synchronous conversions. If this method is implemented then methods for asynchronous conversions (CanPutFrame(), PutFrame(), CanGetFrame(), GetFrame()) can be not implemented.
Parameters:
pbSrc | Source buffer for conversion. |
cbSrc | Size of data in source buffer in bytes. |
pbDst | Destination buffer for result of conversion. |
cbDst | Size of destination buffer in bytes |
pcbActual | Size of returned data in destination buffer in bytes |
nReserved | Library specific variable (see library description) |
pbReserved | Library specific variable (see library description) |
Returns:
S_OK | Converted data in pbDst returned |
S_FALSE | Required data is not found |
HRESULT_FROM_WIN32(ERROR_MORE_DATA) | Destination buffer is too small to receive the data |
E_POINTER | One or more NULL pointer argument |
E_INVALIDARG | One or more arguments are invalid |
E_FAIL | Object not initialized yet or other failure. |
CanPutFrame
HRESULT CanPutFrame( [in] int nStream, [in] DWORD nWait );
Метод проверяет возможность отправки данных объекту
Parameters
nStream | Number of stream |
nWait | Время ожидания ответа в мкс. |
Returns:
S_OK | Object ready for PutFrame |
S_FALSE | Object busy |
HRESULT_FROM_WIN32(ERROR_HANDLE_EOF) | End of stream |
E_INVALIDARG | One or more arguments are invalid |
E_FAIL | Object not initialized yet or other failure. |
PutFrame
HRESULT PutFrame( [in] int nStream, [in] BYTE* pbBuffer, [in] DWORD cbActual, [in] DWORD dwFlags, [in] REFERENCE_TIME tS, [in] REFERENCE_TIME tE, [in] BYTE* pbReserved );
Метод для отправки данных объекту
Parameters:
nStream | Number of stream |
pbBuffer | Buffer with data. |
cbActual | Size of data in buffer in bytes. |
dwFlags | Library specific bitmap (see library description) |
tS | Start time |
tE | End time |
pbReserved | Library specific variable (see library description) |
Returns:
S_OK | Data in pbBuffer sended |
HRESULT_FROM_WIN32(ERROR_HANDLE_EOF) | End of stream |
E_INVALIDARG | One or more arguments are invalid |
E_FAIL | Object not initialized yet or other failure. |
CanGetFrame
HRESULT CanGetFrame( [in] int nStream, [in] DWORD nWait );
Метод проверяет возможность получения данных от объекта
Parameters:
nStream | Number of stream |
nWait | Время ожидания ответа в мкс. |
Returns:
S_OK | Object ready for GetFrame |
S_FALSE | Object busy |
HRESULT_FROM_WIN32(ERROR_HANDLE_EOF) | End of stream |
E_INVALIDARG | One or more arguments are invalid |
E_FAIL | Object not initialized yet or other failure. |
GetFrame
HRESULT GettFrame( [in] int nStream, [in] BYTE* pbBuffer, [in] DWORD cbBuffer, [out] DWORD* pcbActual, [out] DWORD* pdwFlags, [out] REFERENCE_TIME* ptS, [out] REFERENCE_TIME* ptE, [out] BYTE** pbReserved );
Метод для отправки данных объекту
Parameters:
nStream | Number of stream |
pbBuffer | Buffer for data. |
cbBuffer | Size of data in buffer in bytes. |
cbActual | Size of received data buffer in bytes. |
pdwFlags | Library specific bitmap (see library description) |
ptS | Start time |
ptE | End time |
ppbReserved | Library specific variable (see library description) |
Returns:
S_OK | Data in pbBuffer returned |
E_INVALIDARG | One or more arguments are invalid |
E_FAIL | Object not initialized yet or other failure. |
IAVProperties interface
Интерфейс для установки и получения свойств объекта
PropsSet
HRESULT PropsSet( [in] BSTR bsName, [in] BSTR bsValue );
Установить значение bsValue для свойства bsName
Parameters:
bsName | Name of Property |
bsValue | Value for property. |
Returns:
S_OK | Property values is set |
E_INVALIDARG | Property with name bsName not found |
E_FAIL | Error in property value. |
PropsGet
HRESULT PropsSet( [in] BSTR bsName, [out] BSTR* pbsValue );
Получить значение для свойства bsName
Parameters:
bsName | Name of Property |
pbsValue | Pointer to variable for return property value. |
Returns:
S_OK | Property values is returned |
E_INVALIDARG | Property with name bsName not found |
E_FAIL | Some error. |