HRESULT MFTDecoder::Input(const uint8_t* aData, uint32_t aDataSize, int64_t aTimestamp) { NS_ENSURE_TRUE(mDecoder != nullptr, E_POINTER); RefPtr<IMFSample> input; HRESULT hr = CreateInputSample(aData, aDataSize, aTimestamp, &input); NS_ENSURE_TRUE(SUCCEEDED(hr) && input != nullptr, hr); return Input(input); }
HRESULT WMFAACDecoder::Input(const uint8_t* aData, uint32_t aDataSize, Microseconds aTimestamp) { CComPtr<IMFSample> input = nullptr; HRESULT hr = CreateInputSample(aData, aDataSize, aTimestamp, &input); ENSURE(SUCCEEDED(hr) && input!=nullptr, hr); hr = mDecoder->ProcessInput(0, input, 0); if (hr == MF_E_NOTACCEPTING) { // MFT *already* has enough data to produce a sample. Retrieve it. LOG("ProcessInput returned MF_E_NOTACCEPTING\n"); return MF_E_NOTACCEPTING; } ENSURE(SUCCEEDED(hr), hr); return S_OK; }
HRESULT MFTDecoder::Input(const uint8_t* aData, uint32_t aDataSize, int64_t aTimestamp) { NS_ENSURE_TRUE(mDecoder != nullptr, E_POINTER); RefPtr<IMFSample> input; HRESULT hr = CreateInputSample(aData, aDataSize, aTimestamp, &input); NS_ENSURE_TRUE(SUCCEEDED(hr) && input!=nullptr, hr); hr = mDecoder->ProcessInput(0, input, 0); if (hr == MF_E_NOTACCEPTING) { // MFT *already* has enough data to produce a sample. Retrieve it. return MF_E_NOTACCEPTING; } NS_ENSURE_TRUE(SUCCEEDED(hr), hr); return S_OK; }