[FFmpeg-devel] [PATCH] Add support for Display Definition Segment to DVB Subtitle encoder
Marton Balint
cus at passwd.hu
Fri Jul 12 21:17:29 EEST 2019
On Fri, 12 Jul 2019, Jernej wrote:
> Here's the fixed patch. I'm not familiar with providing patches via a
> mailing list. If replying doesn't work, I'll just use a new git send-mail.
Yes, please, preferably with --in-reply-to=<messageId>
Thanks,
Marton
>
> Signed-off-by: Jernej Fijacko <mikrohard at gmail.com>
> ---
> libavcodec/dvbsub.c | 19 ++++++++++++++++---
> 1 file changed, 16 insertions(+), 3 deletions(-)
>
> diff --git a/libavcodec/dvbsub.c b/libavcodec/dvbsub.c
> index 8cce702a9e..a8d43d81d6 100644
> --- a/libavcodec/dvbsub.c
> +++ b/libavcodec/dvbsub.c
> @@ -247,9 +247,10 @@ static void dvb_encode_rle8(uint8_t **pq,
> *pq = q;
> }
>
> -static int encode_dvb_subtitles(DVBSubtitleContext *s,
> +static int encode_dvb_subtitles(AVCodecContext *avctx,
> uint8_t *outbuf, const AVSubtitle *h)
> {
> + DVBSubtitleContext *s = avctx->priv_data;
> uint8_t *q, *pseg_len;
> int page_id, region_id, clut_id, object_id, i, bpp_index, page_state;
>
> @@ -261,6 +262,19 @@ static int encode_dvb_subtitles(DVBSubtitleContext *s,
> if (h->num_rects && !h->rects)
> return -1;
>
> + if (avctx->width > 0 && avctx->height > 0) {
> + /* display definition segment */
> + *q++ = 0x0f; /* sync_byte */
> + *q++ = 0x14; /* segment_type */
> + bytestream_put_be16(&q, page_id);
> + pseg_len = q;
> + q += 2; /* segment length */
> + *q++ = 0x00; /* dds version number & display window flag */
> + bytestream_put_be16(&q, avctx->width - 1); /* display width */
> + bytestream_put_be16(&q, avctx->height - 1); /* display height */
> + bytestream_put_be16(&pseg_len, q - pseg_len - 2);
> + }
> +
> /* page composition segment */
>
> *q++ = 0x0f; /* sync_byte */
> @@ -446,10 +460,9 @@ static int dvbsub_encode(AVCodecContext *avctx,
> unsigned char *buf, int buf_size,
> const AVSubtitle *sub)
> {
> - DVBSubtitleContext *s = avctx->priv_data;
> int ret;
>
> - ret = encode_dvb_subtitles(s, buf, sub);
> + ret = encode_dvb_subtitles(avctx, buf, sub);
> return ret;
> }
>
> --
> 2.21.0
>
>>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
More information about the ffmpeg-devel
mailing list