]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/bintext.c
Set Delphine Software International CIN palette opaque.
[ffmpeg] / libavcodec / bintext.c
index 0726d4689d1376a8a060b289f654a1a4730548c7..947be396b84c4b874ef421e4d904486325708c65 100644 (file)
@@ -22,7 +22,7 @@
  */
 
 /**
- * @file libavcodec/xbin.c
+ * @file
  * Binary text decoder
  * eXtended BINary text (XBIN) decoder
  * iCEDraw File decoder
@@ -49,12 +49,6 @@ static av_cold int decode_init(AVCodecContext *avctx)
     int i;
 
     avctx->pix_fmt = PIX_FMT_PAL8;
-    s->frame.reference = 1;
-    if (avctx->get_buffer(avctx, &s->frame)) {
-        av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
-        return -1;
-    }
-
     p = avctx->extradata;
     if (p) {
         s->font_height = p[0];
@@ -80,7 +74,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
     } else {
         switch(s->font_height) {
         default:
-            av_log(avctx, AV_LOG_WARNING, "font height %i not support\n", s->font_height);
+            av_log(avctx, AV_LOG_WARNING, "font height %i not supported\n", s->font_height);
             s->font_height = 8;
         case 8:
             s->font = ff_cga_font;
@@ -122,7 +116,7 @@ static void draw_char(AVCodecContext *avctx, int c, int a)
                     s->frame.linesize[0], s->font, s->font_height, c,
                     a & 0x0F, a >> 4);
     s->x += FONT_WIDTH;
-    if (s->x >= avctx->width) {
+    if (s->x > avctx->width - FONT_WIDTH) {
         s->x = 0;
         s->y += s->font_height;
     }
@@ -137,6 +131,10 @@ static int decode_frame(AVCodecContext *avctx,
     int buf_size = avpkt->size;
     const uint8_t *buf_end = buf+buf_size;
 
+    s->x = s->y = 0;
+    s->frame.buffer_hints = FF_BUFFER_HINTS_VALID |
+                            FF_BUFFER_HINTS_PRESERVE |
+                            FF_BUFFER_HINTS_REUSABLE;
     if (avctx->reget_buffer(avctx, &s->frame)) {
         av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
         return -1;
@@ -213,7 +211,7 @@ static av_cold int decode_end(AVCodecContext *avctx)
 }
 
 AVCodec ff_bintext_decoder = {
-    "xbin",
+    "bintext",
     AVMEDIA_TYPE_VIDEO,
     CODEC_ID_BINTEXT,
     sizeof(XbinContext),