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

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Imftransform может декодировать файл H264 только на 0,3-1 секунды?

Сообщение Anonymous »

Я использую imftransform < /code> для декодирования файла H264, который кодирует Android.
Я искал, что файл находится в формате Приложение b, поэтому я использую mfvideoformat_h264_es < /code>
, но он будет только успешно обрабатывать < /code> для Debnout 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
, затем мне интересно, является ли это ошибкой. Поэтому я не использую время и повторяю еще раз.
Я сохраняю H264 в файл в течение примерно 10 секунд (убедитесь, что он может сыграть игрок). а затем подайте в IMFTransform , но я могу только переработать форма снова примерно в 20 раз.
Так что я думаю, что данные плохие или мой код не прав?

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

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

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

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

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

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