Browse Source

Move release_buffer() up so it is prior to a future call to it.

Originally committed as revision 18398 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.6
Michael Niedermayer 16 years ago
parent
commit
38fd076c21
1 changed files with 12 additions and 12 deletions
  1. +12
    -12
      libavcodec/snow.c

+ 12
- 12
libavcodec/snow.c View File

@@ -4123,6 +4123,18 @@ static void halfpel_interpol(SnowContext *s, uint8_t *halfpel[4][4], AVFrame *fr
} }
} }


static void release_buffer(AVCodecContext *avctx){
SnowContext *s = avctx->priv_data;
int i;

if(s->last_picture[s->max_ref_frames-1].data[0]){
avctx->release_buffer(avctx, &s->last_picture[s->max_ref_frames-1]);
for(i=0; i<9; i++)
if(s->halfpel_plane[s->max_ref_frames-1][1+i/3][i%3])
av_free(s->halfpel_plane[s->max_ref_frames-1][1+i/3][i%3] - EDGE_WIDTH*(1+s->current_picture.linesize[i%3]));
}
}

static int frame_start(SnowContext *s){ static int frame_start(SnowContext *s){
AVFrame tmp; AVFrame tmp;
int w= s->avctx->width; //FIXME round up to x16 ? int w= s->avctx->width; //FIXME round up to x16 ?
@@ -4167,18 +4179,6 @@ static int frame_start(SnowContext *s){
return 0; return 0;
} }


static void release_buffer(AVCodecContext *avctx){
SnowContext *s = avctx->priv_data;
int i;

if(s->last_picture[s->max_ref_frames-1].data[0]){
avctx->release_buffer(avctx, &s->last_picture[s->max_ref_frames-1]);
for(i=0; i<9; i++)
if(s->halfpel_plane[s->max_ref_frames-1][1+i/3][i%3])
av_free(s->halfpel_plane[s->max_ref_frames-1][1+i/3][i%3] - EDGE_WIDTH*(1+s->current_picture.linesize[i%3]));
}
}

static int encode_frame(AVCodecContext *avctx, unsigned char *buf, int buf_size, void *data){ static int encode_frame(AVCodecContext *avctx, unsigned char *buf, int buf_size, void *data){
SnowContext *s = avctx->priv_data; SnowContext *s = avctx->priv_data;
RangeCoder * const c= &s->c; RangeCoder * const c= &s->c;


Loading…
Cancel
Save