frame->pts = 1; frame->quality = avOutctx->global_quality; frame->data[0] = (uint8_t*) bufferin; // needed to not segfault - why? we have ARGB interleaved data frame->data[1] = (uint8_t*) bufferin; frame->data[2] = (uint8_t*) bufferin; frame->height = height; frame->width = width; frame->linesize[0] = pitch; // same as above frame->linesize[1] = pitch; frame->linesize[2] = pitch; frame->format = AV_PIX_FMT_ARGB; int got_package = 0; AVPacket avpkt; av_init_packet(&avpkt); avpkt.data = m_outputBuffer; avpkt.size = internalBufOutSize; avcodec_encode_video2(avOutctx, &avpkt, frame, &got_package) < 0) || (got_package == 0)