Imftransform может декодировать файл H264 только на 0,3-1 секунды?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Imftransform может декодировать файл H264 только на 0,3-1 секунды?

Сообщение Anonymous »

Я использую imftransform для декодирования файла H264, который кодируется Android. Я проверил, что формат файла является Приложением B, поэтому я использую MFVideOformat_H264_ES , но он будет успешно выполнять только в течение примерно 20 раз. Тогда это сломается без какой -либо ошибки. Когда я отлаживаю программу, она переходит через эту строку и никогда больше не работает. < /P>

Код: Выделить всё

IMFMediaBuffer* buffer = NULL;
hr = MFCreateMemoryBuffer(l, &buffer);
DWORD pcbMaxLength, pcbCurrentLength = 0;
BYTE* ppbBuffer = NULL;
buffer->Lock(&ppbBuffer, &pcbMaxLength, &pcbCurrentLength);
memcpy_s(ppbBuffer, l, buff, l);
buffer->SetCurrentLength(l);
buffer->Unlock();

IMFSample* sample = NULL;
hr = MFCreateSample(&sample);
if (SUCCEEDED(hr)) {
sample->AddBuffer(buffer);
hr = transform->ProcessInput(0, sample, 0);
while (FAILED(hr)) {
hr = transform->ProcessInput(0, sample, 0);

std::this_thread::sleep_for(std::chrono::milliseconds(30));
}
sample->Release();
}
buffer->Release();
< /code>
Этот код запускается на некоторое время. Сначала я буду Recv 
Buff через розетку, а затем FeedInput . Тогда мне интересно, является ли это ошибкой. Итак, я не использую цикл Whole и попробую еще раз. Я сохраняю H264 в файл примерно на 10 секунд (убедитесь, что он может сыграть игрок). Затем подайте в IMFTransform , но я могу запустить только процесс -аут. () примерно в 20 раз. Так что либо данные плохие, либо мой код не прав?

Подробнее здесь: https://stackoverflow.com/questions/796 ... -1-seconds
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»