Der AVIF-Encoder schlägt bei Wiederverwendung fehlC++

Programme in C++. Entwicklerforum
Guest
 Der AVIF-Encoder schlägt bei Wiederverwendung fehl

Post by Guest »

Wenn ich versuche, dasselbe Bild, aber mit neuen Pixeln und unter Verwendung des im Header zwischengespeicherten Encoders zu kodieren, schlägt dies bei result = avifEncoderWrite(encoder, image, &avifOutput);
< fehl p>mit Fehler: AVIF_RESULT_ENCODE_COLOR_FAILED
Ist es nicht möglich, den Encoder/das Bild wiederzuverwenden?

Code: Select all

avifEncoder* encoder      = nullptr;
avifImage*   image        = nullptr;
avifRGBImage avifRgb      = {};
avifRWData   avifOutput   = AVIF_DATA_EMPTY;

void initializeAVIF()
{
encoder = avifEncoderCreate();
if (!encoder)
{
std::cerr speed        = 10; // Fastest encoding (0 = slowest/best, 10 = fastest)
encoder->minQuantizer = 30; // Higher = more compression/lower quality
encoder->maxQuantizer = 30; // Keep both quantizers equal for consistent quality

image = avifImageCreate(width, height, 8, AVIF_PIXEL_FORMAT_YUV444);
if (!image)
{
std::cerr transferCharacteristics = AVIF_TRANSFER_CHARACTERISTICS_SRGB;
image->matrixCoefficients      = AVIF_MATRIX_COEFFICIENTS_BT601;

// Set up RGB image
avifRGBImageSetDefaults(&avifRgb, image);
avifRgb.format   = AVIF_RGB_FORMAT_RGB;
avifRgb.depth    = 8;
avifRgb.pixels   = Scan0;
avifRgb.rowBytes = stride;

// Update RGB to YUV conversion
auto result = avifImageRGBToYUV(image, &avifRgb);
if (result != AVIF_RESULT_OK)
{
std::cerr

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post