[FFmpeg-cvslog] r24939 - trunk/libavcodec/a64multienc.c

bindhammer subversion
Thu Aug 26 12:02:59 CEST 2010


Author: bindhammer
Date: Thu Aug 26 12:02:59 2010
New Revision: 24939

Log:
Setting proper values in extradata for future use in muxer

Modified:
   trunk/libavcodec/a64multienc.c

Modified: trunk/libavcodec/a64multienc.c
==============================================================================
--- trunk/libavcodec/a64multienc.c	Thu Aug 26 09:39:34 2010	(r24938)
+++ trunk/libavcodec/a64multienc.c	Thu Aug 26 12:02:59 2010	(r24939)
@@ -199,6 +199,12 @@ static av_cold int a64multi_init_encoder
     c->mc_colram        = av_mallocz(CHARSET_CHARS * sizeof(uint8_t));
     c->mc_charset       = av_malloc (0x800 * (INTERLACED+1) * sizeof(uint8_t));
 
+    /* set up extradata */
+    avctx->extradata      = av_mallocz(8 * 4 + FF_INPUT_BUFFER_PADDING_SIZE);
+    avctx->extradata_size = 8 * 4;
+    AV_WB32(avctx->extradata, c->mc_lifetime);
+    AV_WB32(avctx->extradata+16, INTERLACED);
+
     avcodec_get_frame_defaults(&c->picture);
     avctx->coded_frame            = &c->picture;
     avctx->coded_frame->pict_type = FF_I_TYPE;
@@ -243,6 +249,10 @@ static int a64multi_encode_frame(AVCodec
     int *meta            = c->mc_meta_charset;
     int *best_cb         = c->mc_best_cb;
 
+    int charset_size = 0x800 * (INTERLACED + 1);
+    int screen_size  = 0x400;
+    int colram_size  = 0x100 * c->mc_use_5col;
+
     /* no data, means end encoding asap */
     if (!data) {
         /* all done, end encoding */
@@ -314,6 +324,10 @@ static int a64multi_encode_frame(AVCodec
             charmap += 1000;
         }
 
+        AV_WB32(avctx->extradata+4,  c->mc_frame_counter);
+        AV_WB32(avctx->extradata+8,  charset_size);
+        AV_WB32(avctx->extradata+12, screen_size + colram_size);
+
         /* reset counter */
         c->mc_frame_counter = 0;
 



More information about the ffmpeg-cvslog mailing list