Как снизить загрузку процессора при декодировании потока h264?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как снизить загрузку процессора при декодировании потока h264?

Сообщение Anonymous »

Я разрабатываю приложение Qt для декодирования потоков H.264, но загрузка ЦП функцией декодирования очень высока.

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

QImage H264Decoder::Decode(const unsigned char *data, quint32 len, quint32 *consumed)
{
pkt->data = (uint8_t*)data;
pkt->size = len;

AVFrame* decoded_frame = av_frame_alloc();
if(consumed != NULL)
*consumed = pkt->size;
int ret1 = avcodec_send_packet(codec_ctx, pkt);
ret1 = avcodec_receive_frame(codec_ctx, decoded_frame);
int height = decoded_frame->height;
int width = decoded_frame->width;

if(height ==0 || width ==0 )
{
return QImage();
}
SwsContext* sws_ctx = sws_getContext(width, height, static_cast(decoded_frame->format), width, height, AV_PIX_FMT_RGB32, SWS_BILINEAR, 0, 0, 0);
QImage img(width, height, QImage::Format_RGB32);
uint8_t* data1[1] = { reinterpret_cast(img.bits()) };
int linesize[1] = { static_cast(img.bytesPerLine()) };
ret1 = sws_scale(sws_ctx, decoded_frame->data, decoded_frame->linesize, 0, height, data1, linesize);
sws_freeContext(sws_ctx);
av_frame_free(&decoded_frame);
return img;
}
Есть ли способ снизить загрузку процессора?

Подробнее здесь: https://stackoverflow.com/questions/786 ... 264-stream
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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