выход декодера — YUV файл в RGB

Я сделал фильтр DirectShow для декодера, используя libde265. Там есть встроенная функция с именем write_image. Он записывает декодированные данные в файл yuv.

Мне нужно визуализировать данные декодера.
Для этого мне нужно сделать два шага:
Вывод данных на выходной вывод
Преобразование данных в формат RGB

Используемый тип media_subtype — IMC3. В IMC3 формат данных таков: y компонентов, следующих за u и v в памяти.

Я попытался следующий код для вывода данных на контакт.

    static FILE* fh = NULL;
if (fh == NULL) { fh = fopen(output_filename, "wb"); }

for (int y = 0; y<de265_get_image_height(img, 0); y++)
fread(out, de265_get_image_width(img, 0), 1, fh);

for (int y = 0; y<de265_get_image_height(img, 1); y++)
fread(out, de265_get_image_width(img, 1), 1, fh);

for (int y = 0; y<de265_get_image_height(img, 2); y++)
fread(out, de265_get_image_width(img, 2), 1, fh);

Но экран рендера пуст. Во-вторых, мне нужно также преобразовать его в rgb. В приведенном выше коде IMG является структурой изображения, хранящей декодированные данные

Пожалуйста, помогите мне в этом отношении, потому что рендер ничего не показывает. А также предложите мне преобразовать данные в формат rgb. Может быть, я могу ошибаться при упаковке данных в выходной буфер. Хотя я следую точному формату IMC3

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]