Выгрузка субтитров из AVPicture в файл формата ppm - PullRequest
0 голосов
/ 19 января 2019

В программном обеспечении FFMPEG AVPicture используется для хранения данных изображения с использованием указателя данных и размеров линий.Это означает, что все субтитры хранятся в виде картинки внутри ffmpeg. Теперь я хочу вывести субтитры из AVPicture в файл формата .ppm .

Я записал этот код в дамп субтитров с помощью данных в AVPicture.Возможно, мои красные, зеленые, синие данные о пикселях могут быть неправильными в цикле .

w = ctx->sub->rects[0]->w;
h = ctx->sub->rects[0]->h;
line_size = ctx->sub->rects[0]->linesize[0];
int m,n;
FILE *fp = fopen("first.ppm", "wb");
(void) fprintf(fp, "P3\n%d %d\n255\n", w, h);
for (m = 0; m < h; ++m)
{
    for (n = 0; n < line_size; ++n)
    {
            static int r,g,b,a,z;
            uint32_t *pallet = ctx->sub->rects[0]->data[1];
            z = ctx->sub->rects[0]->data[0][n];
            b = pallet[z]&0xFF;
            g = (pallet[z]>>8) & 0xFF;
            r = (pallet[z]>>16)& 0xFF;
            a = (pallet[z]>>24)& 0xFF; 
            fprintf(fp,"%d %d %d %d",b,g,r,a);
    }
    fprintf(fp,"\n");
    fflush(fp); 
}
(void) fclose(fp);

Программа не выводит субтитры.Только 0 идет в r, g, b, a, по которому субтитры не выгружаются

...