if (color != PADDING_COLOR && (PADDING + (w&1)))
put_xsub_rle(pb, PADDING + (w&1), PADDING_COLOR);
- align_put_bits(pb);
+ avpriv_align_put_bits(pb);
bitmap += linesize;
}
}
static int xsub_encode(AVCodecContext *avctx, unsigned char *buf,
- int bufsize, void *data)
+ int bufsize, const AVSubtitle *h)
{
- AVSubtitle *h = data;
uint64_t startTime = h->pts / 1000; // FIXME: need better solution...
uint64_t endTime = startTime + h->end_display_time - h->start_display_time;
int start_tc[4], end_tc[4];
// Enforce total height to be be multiple of 2
if (h->rects[0]->h & 1) {
put_xsub_rle(&pb, h->rects[0]->w, PADDING_COLOR);
- align_put_bits(&pb);
+ avpriv_align_put_bits(&pb);
}
flush_put_bits(&pb);
}
AVCodec ff_xsub_encoder = {
- "xsub",
- AVMEDIA_TYPE_SUBTITLE,
- CODEC_ID_XSUB,
- 0,
- xsub_encoder_init,
- xsub_encode,
- NULL,
- .long_name = NULL_IF_CONFIG_SMALL("DivX subtitles (XSUB)"),
+ .name = "xsub",
+ .type = AVMEDIA_TYPE_SUBTITLE,
+ .id = AV_CODEC_ID_XSUB,
+ .init = xsub_encoder_init,
+ .encode_sub = xsub_encode,
+ .long_name = NULL_IF_CONFIG_SMALL("DivX subtitles (XSUB)"),
};