Как конфертировать из AV_PIX_FMT_VAAPI в AV_PIX_FMT_YUV420 с помощью FFMPEG sws_scaler api? - PullRequest
0 голосов
/ 25 апреля 2018

Я использую приведенный ниже код для преобразования из VAAPI в формат YUV420.

     AVFrame* src, * dst;
     SwsContext* conversion_context_ = sws_getContext(videoDecoder_->width(),     videoDecoder_->height(), AV_PIX_FMT_VAAPI,scaler_->getWidth(), scaler_->getHeight(), AV_PIX_FMT_YUV420P,(int)SWS_BICUBIC,
 nullptr, nullptr, nullptr); <------------- This function is returning NULL value.
     sws_scale(conversion_context_,
                (uint8_t const * const *)src->data, src->linesize, 0, (int)height,
                dst->data, dst->linesize);

Может кто-нибудь сказать мне, почему я получаю NULL-значение указателя SwsContext?

1 Ответ

0 голосов
/ 26 апреля 2018

Исправлена ​​эта проблема с использованием приведенного ниже кода,

SwsContext* conversion_context_ = sws_getContext(videoDecoder_->width(),     videoDecoder_->height(), AV_PIX_FMT_NV12 ,scaler_->getWidth(), scaler_->getHeight(), AV_PIX_FMT_YUV420P,(int)SWS_BICUBIC,
 nullptr, nullptr, nullptr);

Поэтому вместо опции AV_PIX_FMT_VAAPI я использовал AV_PIX_FMT_NV12.

...