Allocate and initialise the SwsContext for pixel format conversion.
297{
299 return false;
300
302 m_last_error =
"setup_scaler: source pix_fmt is AV_PIX_FMT_NONE — "
303 "codec has not resolved its output format yet";
304 return false;
305 }
306
311 : static_cast<int>(AV_PIX_FMT_RGBA);
312
314 static_cast<int>(
width),
320 SWS_BILINEAR,
321 nullptr, nullptr, nullptr);
322
325 return false;
326 }
327
328 const AVPixFmtDescriptor* desc = av_pix_fmt_desc_get(
330 if (!desc) {
331 m_last_error =
"setup_scaler: no descriptor for target pixel format";
332 return false;
333 }
334
335 if (av_pix_fmt_count_planes(
static_cast<AVPixelFormat
>(
out_pixel_format)) != 1) {
336 m_last_error = std::string(
"setup_scaler: target format ")
337 + (desc->name ? desc->name : "?")
338 + " is multi-planar; the read path writes a single packed plane";
339 return false;
340 }
341
343
346 if (align_remainder != 0)
348
349 return true;
350}
uint32_t target_width
Requested output width (0 = source).
uint32_t target_height
Requested output height (0 = source).
uint32_t out_height
Output height after scaling.
uint32_t height
Source height in pixels.
uint32_t width
Source width in pixels.
int out_pixel_format
Output AVPixelFormat.
int out_linesize
Output row stride in bytes.
SwsContext * sws_context
Owned; freed in destructor.
AVCodecContext * codec_context
Owned; freed in destructor.
int target_format
Requested AVPixelFormat (negative = RGBA).
uint32_t out_bytes_per_pixel
Bytes per pixel in output format.
uint32_t out_width
Output width after scaling.