[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