Я пытаюсь прочитать несжатый файл AVI - основной несжатый файл AVI - это растровые изображения BGR.
if(frame.format == AV_PIX_FMT_BGR24)
{
int data_size = frame.linesize[0]*frame.height;
my_data_ptr = new uint8_t [data_size];
memcpy(my_data_ptr, frame.data[0], data_size);
}
Я бы ожидал, что frame.linesize[0]
будет шириной * 3, но я обнаружил, что это -width * 3.
Если вручную установить data_size
так, чтобы оно не было отрицательным, memcpy приводит к ошибке seg.
Форматы упакованных пикселей хранятся особым образом?