Message ID | CALNweXPiRxjsQnCd8JCDLrofrWjM=u_YW4EvAedT7kV5o6FvVQ@mail.gmail.com |
---|---|
State | New |
Headers | show |
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@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@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
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; }
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. Signed-off-by: Jernej Fijacko <mikrohard@gmail.com> --- libavcodec/dvbsub.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-)