changeset 925:7fccaa0d699d libavcodec

AVVideoFrame -> AVFrame
author michaelni
date Mon, 09 Dec 2002 12:03:43 +0000
parents 3814e9115672
children 9a78dac52f4a
files ac3enc.c adpcm.c apiexample.c avcodec.h dv.c h263dec.c huffyuv.c mpeg12.c mpegaudio.c mpegvideo.c mpegvideo.h oggvorbis.c pcm.c rv10.c svq1.c utils.c
diffstat 16 files changed, 103 insertions(+), 81 deletions(-) [+]
line wrap: on
line diff
--- a/ac3enc.c	Mon Dec 09 00:29:17 2002 +0000
+++ b/ac3enc.c	Mon Dec 09 12:03:43 2002 +0000
@@ -826,7 +826,6 @@
     };
 
     avctx->frame_size = AC3_FRAME_SIZE;
-    avctx->key_frame = 1; /* always key frame */
     
     /* number of channels */
     if (channels < 1 || channels > 6)
@@ -890,6 +889,9 @@
     }
 
     ac3_crc_init();
+    
+    avctx->coded_frame= avcodec_alloc_frame();
+    avctx->coded_frame->key_frame= 1;
 
     return 0;
 }
@@ -1447,6 +1449,11 @@
     return output_frame_end(s);
 }
 
+static int AC3_encode_close(AVCodecContext *avctx)
+{
+    av_freep(&avctx->coded_frame);
+}
+
 #if 0
 /*************************************************************************/
 /* TEST */
@@ -1546,5 +1553,6 @@
     sizeof(AC3EncodeContext),
     AC3_encode_init,
     AC3_encode_frame,
+    AC3_encode_close,
     NULL,
 };
--- a/adpcm.c	Mon Dec 09 00:29:17 2002 +0000
+++ b/adpcm.c	Mon Dec 09 12:03:43 2002 +0000
@@ -126,12 +126,17 @@
         return -1;
         break;
     }
+
+    avctx->coded_frame= avcodec_alloc_frame();
+    avctx->coded_frame->key_frame= 1;
+
     return 0;
 }
 
 static int adpcm_encode_close(AVCodecContext *avctx)
 {
-    /* nothing to free */
+    av_freep(&avctx->coded_frame);
+
     return 0;
 }
 
@@ -253,7 +258,6 @@
     default:
         return -1;
     }
-    avctx->key_frame = 1;
     return dst - frame;
 }
 
--- a/apiexample.c	Mon Dec 09 00:29:17 2002 +0000
+++ b/apiexample.c	Mon Dec 09 12:03:43 2002 +0000
@@ -164,7 +164,7 @@
     AVCodecContext *c= NULL;
     int i, out_size, size, x, y, outbuf_size;
     FILE *f;
-    AVVideoFrame *picture;
+    AVFrame *picture;
     UINT8 *outbuf, *picture_buf;
 
     printf("Video encoding\n");
@@ -177,7 +177,7 @@
     }
 
     c= avcodec_alloc_context();
-    picture= avcodec_alloc_picture();
+    picture= avcodec_alloc_frame();
     
     /* put sample parameters */
     c->bit_rate = 400000;
@@ -278,7 +278,7 @@
     AVCodecContext *c= NULL;
     int frame, size, got_picture, len;
     FILE *f;
-    AVVideoFrame *picture;
+    AVFrame *picture;
     UINT8 inbuf[INBUF_SIZE], *inbuf_ptr;
     char buf[1024];
 
@@ -292,7 +292,7 @@
     }
 
     c= avcodec_alloc_context();
-    picture= avcodec_alloc_picture();
+    picture= avcodec_alloc_frame();
 
     if(codec->capabilities&CODEC_CAP_TRUNCATED)
         c->flags|= CODEC_FLAG_TRUNCATED; /* we dont send complete frames */
--- a/avcodec.h	Mon Dec 09 00:29:17 2002 +0000
+++ b/avcodec.h	Mon Dec 09 12:03:43 2002 +0000
@@ -5,8 +5,8 @@
 
 #define LIBAVCODEC_VERSION_INT 0x000406
 #define LIBAVCODEC_VERSION     "0.4.6"
-#define LIBAVCODEC_BUILD       4644
-#define LIBAVCODEC_BUILD_STR   "4644"
+#define LIBAVCODEC_BUILD       4645
+#define LIBAVCODEC_BUILD_STR   "4645"
 
 enum CodecID {
     CODEC_ID_NONE, 
@@ -159,7 +159,7 @@
 
 #define FRAME_RATE_BASE 10000
 
-#define FF_COMMON_PICTURE \
+#define FF_COMMON_FRAME \
     uint8_t *data[4];\
     int linesize[4];\
     /**\
@@ -279,9 +279,9 @@
 #define FF_B_TYPE 3 // Bi-dir predicted
 #define FF_S_TYPE 4 // S(GMC)-VOP MPEG4
 
-typedef struct AVVideoFrame {
-    FF_COMMON_PICTURE
-} AVVideoFrame;
+typedef struct AVFrame {
+    FF_COMMON_FRAME
+} AVFrame;
 
 typedef struct AVCodecContext {
     /**
@@ -396,13 +396,6 @@
                            previous encoded frame */
     
     /**
-     * 1 -> keyframe, 0-> not (this if for audio only, for video, AVVideoFrame.key_frame should be used)
-     * encoding: set by lavc (for the outputed bitstream, not the input frame)
-     * decoding: set by lavc (for the decoded  bitstream, not the displayed frame)
-     */
-    int key_frame;
-
-    /**
      * number of frames the decoded output will be delayed relative to 
      * the encoded input
      * encoding: set by lavc.
@@ -574,7 +567,7 @@
      * encoding: unused
      * decoding: set by lavc, user can override
      */
-    int (*get_buffer)(struct AVCodecContext *c, AVVideoFrame *pic);
+    int (*get_buffer)(struct AVCodecContext *c, AVFrame *pic);
     
     /**
      * called to release buffers which where allocated with get_buffer.
@@ -583,7 +576,7 @@
      * encoding: unused
      * decoding: set by lavc, user can override
      */
-    void (*release_buffer)(struct AVCodecContext *c, AVVideoFrame *pic);
+    void (*release_buffer)(struct AVCodecContext *c, AVFrame *pic);
 
     /**
      * is 1 if the decoded stream contains b frames, 0 otherwise
@@ -820,7 +813,7 @@
      * encoding: set by lavc
      * decoding: set by lavc
      */
-    AVVideoFrame *coded_picture;
+    AVFrame *coded_frame;
 
     /**
      * debug 
@@ -1001,16 +994,16 @@
 
 void avcodec_get_context_defaults(AVCodecContext *s);
 AVCodecContext *avcodec_alloc_context(void);
-AVVideoFrame *avcodec_alloc_picture(void);
+AVFrame *avcodec_alloc_frame(void);
 
-int avcodec_default_get_buffer(AVCodecContext *s, AVVideoFrame *pic);
-void avcodec_default_release_buffer(AVCodecContext *s, AVVideoFrame *pic);
+int avcodec_default_get_buffer(AVCodecContext *s, AVFrame *pic);
+void avcodec_default_release_buffer(AVCodecContext *s, AVFrame *pic);
 
 int avcodec_open(AVCodecContext *avctx, AVCodec *codec);
 int avcodec_decode_audio(AVCodecContext *avctx, INT16 *samples, 
                          int *frame_size_ptr,
                          UINT8 *buf, int buf_size);
-int avcodec_decode_video(AVCodecContext *avctx, AVVideoFrame *picture, 
+int avcodec_decode_video(AVCodecContext *avctx, AVFrame *picture, 
                          int *got_picture_ptr,
                          UINT8 *buf, int buf_size);
 int avcodec_parse_frame(AVCodecContext *avctx, UINT8 **pdata, 
@@ -1019,7 +1012,7 @@
 int avcodec_encode_audio(AVCodecContext *avctx, UINT8 *buf, int buf_size, 
                          const short *samples);
 int avcodec_encode_video(AVCodecContext *avctx, UINT8 *buf, int buf_size, 
-                         const AVVideoFrame *pict);
+                         const AVFrame *pict);
 
 int avcodec_close(AVCodecContext *avctx);
 
--- a/dv.c	Mon Dec 09 00:29:17 2002 +0000
+++ b/dv.c	Mon Dec 09 12:03:43 2002 +0000
@@ -33,7 +33,7 @@
     int sampling_411; /* 0 = 420, 1 = 411 */
     int width, height;
     UINT8 *current_picture[3]; /* picture structure */
-    AVVideoFrame picture;
+    AVFrame picture;
     int linesize[3];
     DCTELEM block[5*6][64] __align8;
     UINT8 dv_zigzag[2][64];
@@ -595,8 +595,8 @@
     emms_c();
 
     /* return image */
-    *data_size = sizeof(AVVideoFrame);
-    *(AVVideoFrame*)data= s->picture;
+    *data_size = sizeof(AVFrame);
+    *(AVFrame*)data= s->picture;
     
     avctx->release_buffer(avctx, &s->picture);
     
--- a/h263dec.c	Mon Dec 09 00:29:17 2002 +0000
+++ b/h263dec.c	Mon Dec 09 12:03:43 2002 +0000
@@ -349,7 +349,7 @@
 {
     MpegEncContext *s = avctx->priv_data;
     int ret,i;
-    AVVideoFrame *pict = data; 
+    AVFrame *pict = data; 
     float new_aspect;
     
 #ifdef PRINT_FRAME_TIME
@@ -676,9 +676,9 @@
 }
 #endif
     if(s->pict_type==B_TYPE || s->low_delay){
-        *pict= *(AVVideoFrame*)&s->current_picture;
+        *pict= *(AVFrame*)&s->current_picture;
     } else {
-        *pict= *(AVVideoFrame*)&s->last_picture;
+        *pict= *(AVFrame*)&s->last_picture;
     }
 
     /* Return the Picture timestamp as the frame number */
@@ -687,7 +687,7 @@
 
     /* dont output the last pic after seeking */
     if(s->last_picture.data[0] || s->low_delay)
-        *data_size = sizeof(AVVideoFrame);
+        *data_size = sizeof(AVFrame);
 #ifdef PRINT_FRAME_TIME
 printf("%Ld\n", rdtsc()-time);
 #endif
--- a/huffyuv.c	Mon Dec 09 00:29:17 2002 +0000
+++ b/huffyuv.c	Mon Dec 09 12:03:43 2002 +0000
@@ -57,7 +57,7 @@
     uint8_t len[3][256];
     uint32_t bits[3][256];
     VLC vlc[3];
-    AVVideoFrame picture;
+    AVFrame picture;
     uint8_t __align8 bitstream_buffer[1024*1024*3]; //FIXME dynamic alloc or some other solution
     DSPContext dsp; 
 }HYuvContext;
@@ -332,7 +332,7 @@
     
     width= s->width= avctx->width;
     height= s->height= avctx->height;
-    avctx->coded_picture= &s->picture;
+    avctx->coded_frame= &s->picture;
 
 s->bgr32=1;
     assert(width && height);
@@ -460,7 +460,7 @@
     avctx->stats_out= av_mallocz(1024*10);
     s->version=2;
     
-    avctx->coded_picture= &s->picture;
+    avctx->coded_frame= &s->picture;
     s->picture.pict_type= FF_I_TYPE;
     s->picture.key_frame= 1;
     
@@ -670,9 +670,9 @@
     const int width2= s->width>>1;
     const int height= s->height;
     int fake_ystride, fake_ustride, fake_vstride;
-    AVVideoFrame * const p= &s->picture;
+    AVFrame * const p= &s->picture;
 
-    AVVideoFrame *picture = data;
+    AVFrame *picture = data;
 
     *data_size = 0;
 
@@ -893,7 +893,7 @@
     
     avctx->release_buffer(avctx, p);
 
-    *data_size = sizeof(AVVideoFrame);
+    *data_size = sizeof(AVFrame);
     
     return (get_bits_count(&s->gb)+7)>>3;
 }
@@ -920,14 +920,14 @@
 
 static int encode_frame(AVCodecContext *avctx, unsigned char *buf, int buf_size, void *data){
     HYuvContext *s = avctx->priv_data;
-    AVVideoFrame *pict = data;
+    AVFrame *pict = data;
     const int width= s->width;
     const int width2= s->width>>1;
     const int height= s->height;
     const int fake_ystride= s->interlaced ? pict->linesize[0]*2  : pict->linesize[0];
     const int fake_ustride= s->interlaced ? pict->linesize[1]*2  : pict->linesize[1];
     const int fake_vstride= s->interlaced ? pict->linesize[2]*2  : pict->linesize[2];
-    AVVideoFrame * const p= &s->picture;
+    AVFrame * const p= &s->picture;
     int i, size;
 
     init_put_bits(&s->pb, buf, buf_size, NULL, NULL);
--- a/mpeg12.c	Mon Dec 09 00:29:17 2002 +0000
+++ b/mpeg12.c	Mon Dec 09 12:03:43 2002 +0000
@@ -1595,7 +1595,7 @@
  *         DECODE_SLICE_EOP if the end of the picture is reached
  */
 static int mpeg_decode_slice(AVCodecContext *avctx, 
-                              AVVideoFrame *pict,
+                              AVFrame *pict,
                               int start_code,
                               UINT8 *buf, int buf_size)
 {
@@ -1703,7 +1703,7 @@
         MPV_frame_end(s);
 
         if (s->pict_type == B_TYPE || s->low_delay) {
-            *pict= *(AVVideoFrame*)&s->current_picture;
+            *pict= *(AVFrame*)&s->current_picture;
         } else {
             s->picture_number++;
             /* latency of 1 frame for I and P frames */
@@ -1711,7 +1711,7 @@
             if (s->picture_number == 1) {
                 return DECODE_SLICE_OK;
             } else {
-                *pict= *(AVVideoFrame*)&s->last_picture;
+                *pict= *(AVFrame*)&s->last_picture;
             }
         }
         return DECODE_SLICE_EOP;
@@ -1839,7 +1839,7 @@
     Mpeg1Context *s = avctx->priv_data;
     UINT8 *buf_end, *buf_ptr, *buf_start;
     int len, start_code_found, ret, code, start_code, input_size;
-    AVVideoFrame *picture = data;
+    AVFrame *picture = data;
     MpegEncContext *s2 = &s->mpeg_enc_ctx;
             
     dprintf("fill_buffer\n");
@@ -1849,9 +1849,9 @@
     /* special case for last picture */
     if (buf_size == 0) {
         if (s2->picture_number > 0) {
-            *picture= *(AVVideoFrame*)&s2->next_picture;
+            *picture= *(AVFrame*)&s2->next_picture;
 
-            *data_size = sizeof(AVVideoFrame);
+            *data_size = sizeof(AVFrame);
         }
         return 0;
     }
--- a/mpegaudio.c	Mon Dec 09 00:29:17 2002 +0000
+++ b/mpegaudio.c	Mon Dec 09 12:03:43 2002 +0000
@@ -70,7 +70,6 @@
     s->freq = freq;
     s->bit_rate = bitrate * 1000;
     avctx->frame_size = MPA_FRAME_SIZE;
-    avctx->key_frame = 1; /* always key frame */
 
     /* encoding freq */
     s->lsf = 0;
@@ -169,6 +168,9 @@
         total_quant_bits[i] = 12 * v;
     }
 
+    avctx->coded_frame= avcodec_alloc_frame();
+    avctx->coded_frame->key_frame= 1;
+
     return 0;
 }
 
@@ -765,6 +767,10 @@
     return pbBufPtr(&s->pb) - s->pb.buf;
 }
 
+static int MPA_encode_close(AVCodecContext *avctx)
+{
+    av_freep(&avctx->coded_frame);
+}
 
 AVCodec mp2_encoder = {
     "mp2",
@@ -773,6 +779,7 @@
     sizeof(MpegAudioContext),
     MPA_encode_init,
     MPA_encode_frame,
+    MPA_encode_close,
     NULL,
 };
 
--- a/mpegvideo.c	Mon Dec 09 00:29:17 2002 +0000
+++ b/mpegvideo.c	Mon Dec 09 12:03:43 2002 +0000
@@ -282,7 +282,7 @@
         
         assert(!pic->data[0]);
         
-        r= s->avctx->get_buffer(s->avctx, (AVVideoFrame*)pic);
+        r= s->avctx->get_buffer(s->avctx, (AVFrame*)pic);
         
         if(r<0 || !pic->age || !pic->type || !pic->data[0]){
             fprintf(stderr, "get_buffer() failed (%d %d %d %X)\n", r, pic->age, pic->type, (int)pic->data[0]);
@@ -327,7 +327,7 @@
     int i;
 
     if(pic->data[0] && pic->type!=FF_BUFFER_TYPE_SHARED){
-        s->avctx->release_buffer(s->avctx, (AVVideoFrame*)pic);
+        s->avctx->release_buffer(s->avctx, (AVFrame*)pic);
     }
 
     av_freep(&pic->mb_var);
@@ -383,7 +383,7 @@
 
     CHECKED_ALLOCZ(s->edge_emu_buffer, (s->width+64)*2*17*2); //(width + edge + align)*interlaced*MBsize*tolerance
 
-    s->avctx->coded_picture= (AVVideoFrame*)&s->current_picture;
+    s->avctx->coded_frame= (AVFrame*)&s->current_picture;
 
     if (s->encoding) {
         int mv_table_size= (s->mb_width+2)*(s->mb_height+2);
@@ -843,7 +843,7 @@
 int MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx)
 {
     int i;
-    AVVideoFrame *pic;
+    AVFrame *pic;
 
     s->mb_skiped = 0;
     
@@ -853,7 +853,7 @@
 //printf("%8X %d %d %X %X\n", s->picture[i].data[0], s->picture[i].type, i, s->next_picture.data[0], s->last_picture.data[0]);
             if(s->picture[i].data[0] == s->last_picture.data[0]){
 //                s->picture[i].reference=0;
-                avctx->release_buffer(avctx, (AVVideoFrame*)&s->picture[i]);
+                avctx->release_buffer(avctx, (AVFrame*)&s->picture[i]);
                 break;
             }    
         }
@@ -865,7 +865,7 @@
             for(i=0; i<MAX_PICTURE_COUNT; i++){
                 if(s->picture[i].data[0] && s->picture[i].data[0] != s->next_picture.data[0] && s->picture[i].reference){
                     fprintf(stderr, "releasing zombie picture\n");
-                    avctx->release_buffer(avctx, (AVVideoFrame*)&s->picture[i]);                
+                    avctx->release_buffer(avctx, (AVFrame*)&s->picture[i]);                
                 }
             }
         }
@@ -874,7 +874,7 @@
     if(!s->encoding){
         i= find_unused_picture(s, 0);
     
-        pic= (AVVideoFrame*)&s->picture[i];
+        pic= (AVFrame*)&s->picture[i];
         pic->reference= s->pict_type != B_TYPE;
         pic->coded_picture_number= s->current_picture.coded_picture_number+1;
         
@@ -946,7 +946,7 @@
     /* release non refernce frames */
     for(i=0; i<MAX_PICTURE_COUNT; i++){
         if(s->picture[i].data[0] && !s->picture[i].reference /*&& s->picture[i].type!=FF_BUFFER_TYPE_SHARED*/)
-            s->avctx->release_buffer(s->avctx, (AVVideoFrame*)&s->picture[i]);
+            s->avctx->release_buffer(s->avctx, (AVFrame*)&s->picture[i]);
     }
 }
 
@@ -984,8 +984,8 @@
 }
 
 
-static int load_input_picture(MpegEncContext *s, AVVideoFrame *pic_arg){
-    AVVideoFrame *pic;
+static int load_input_picture(MpegEncContext *s, AVFrame *pic_arg){
+    AVFrame *pic;
     int i;
     const int encoding_delay= s->max_b_frames;
     int direct=1;
@@ -1000,7 +1000,7 @@
     if(direct){
         i= find_unused_picture(s, 1);
 
-        pic= (AVVideoFrame*)&s->picture[i];
+        pic= (AVFrame*)&s->picture[i];
         pic->reference= 1;
     
         for(i=0; i<4; i++){
@@ -1011,7 +1011,7 @@
     }else{
         i= find_unused_picture(s, 0);
 
-        pic= (AVVideoFrame*)&s->picture[i];
+        pic= (AVFrame*)&s->picture[i];
         pic->reference= 1;
 
         alloc_picture(s, (Picture*)pic, 0);
@@ -1194,7 +1194,7 @@
                        unsigned char *buf, int buf_size, void *data)
 {
     MpegEncContext *s = avctx->priv_data;
-    AVVideoFrame *pic_arg = data;
+    AVFrame *pic_arg = data;
     int i;
 
     init_put_bits(&s->pb, buf, buf_size, NULL, NULL);
--- a/mpegvideo.h	Mon Dec 09 00:29:17 2002 +0000
+++ b/mpegvideo.h	Mon Dec 09 12:03:43 2002 +0000
@@ -110,7 +110,7 @@
 } ScanTable;
 
 typedef struct Picture{
-    FF_COMMON_PICTURE    
+    FF_COMMON_FRAME
 
     int mb_var_sum;             /* sum of MB variance for current frame */
     int mc_mb_var_sum;          /* motion compensated MB variance for current frame */
--- a/oggvorbis.c	Mon Dec 09 00:29:17 2002 +0000
+++ b/oggvorbis.c	Mon Dec 09 12:03:43 2002 +0000
@@ -24,9 +24,9 @@
 
 
 int oggvorbis_init_encoder(vorbis_info *vi, AVCodecContext *avccontext) {
-    if(avccontext->quality) /* VBR requested */
+    if(avccontext->coded_frame->quality) /* VBR requested */
 	return vorbis_encode_init_vbr(vi, avccontext->channels,
-		  avccontext->sample_rate, (float)avccontext->quality / 1000) ;
+		  avccontext->sample_rate, (float)avccontext->coded_frame->quality / 1000) ;
 
     return vorbis_encode_init(vi, avccontext->channels,
 	          avccontext->sample_rate, -1, avccontext->bit_rate, -1) ;
@@ -45,6 +45,9 @@
     vorbis_block_init(&context->vd, &context->vb) ;
 
     avccontext->frame_size = OGGVORBIS_FRAME_SIZE ;
+ 
+    avccontext->coded_frame= avcodec_alloc_frame();
+    avccontext->coded_frame->key_frame= 1;
     
     return 0 ;
 }
@@ -113,6 +116,8 @@
     vorbis_block_clear(&context->vb);
     vorbis_dsp_clear(&context->vd);
     vorbis_info_clear(&context->vi);
+
+    av_freep(&avccontext->coded_frame);
   
     return 0 ;
 }
--- a/pcm.c	Mon Dec 09 00:29:17 2002 +0000
+++ b/pcm.c	Mon Dec 09 12:03:43 2002 +0000
@@ -128,11 +128,17 @@
     default:
         break;
     }
+    
+    avctx->coded_frame= avcodec_alloc_frame();
+    avctx->coded_frame->key_frame= 1;
+    
     return 0;
 }
 
 static int pcm_encode_close(AVCodecContext *avctx)
 {
+    av_freep(&avctx->coded_frame);
+
     switch(avctx->codec->id) {
     case CODEC_ID_PCM_ALAW:
         if (--linear_to_alaw_ref == 0)
@@ -237,7 +243,6 @@
     default:
         return -1;
     }
-    avctx->key_frame = 1;
     //avctx->frame_size = (dst - frame) / (sample_size * avctx->channels);
 
     return dst - frame;
--- a/rv10.c	Mon Dec 09 00:29:17 2002 +0000
+++ b/rv10.c	Mon Dec 09 12:03:43 2002 +0000
@@ -472,7 +472,7 @@
 {
     MpegEncContext *s = avctx->priv_data;
     int i;
-    AVVideoFrame *pict = data; 
+    AVFrame *pict = data; 
 
 #ifdef DEBUG
     printf("*****frame %d size=%d\n", avctx->frame_number, buf_size);
@@ -505,9 +505,9 @@
     if(s->mb_y>=s->mb_height){
         MPV_frame_end(s);
         
-        *pict= *(AVVideoFrame*)&s->current_picture;
+        *pict= *(AVFrame*)&s->current_picture;
     
-        *data_size = sizeof(AVVideoFrame);
+        *data_size = sizeof(AVFrame);
     }else{
         *data_size = 0;
     }
--- a/svq1.c	Mon Dec 09 00:29:17 2002 +0000
+++ b/svq1.c	Mon Dec 09 12:03:43 2002 +0000
@@ -1063,7 +1063,7 @@
   MpegEncContext *s=avctx->priv_data;
   uint8_t      *current, *previous;
   int		result, i, x, y, width, height;
-  AVVideoFrame *pict = data; 
+  AVFrame *pict = data; 
 
   /* initialize bit buffer */
   init_get_bits(&s->gb,buf,buf_size);
@@ -1161,12 +1161,12 @@
     }
   }
   
-  *pict = *(AVVideoFrame*)&s->current_picture;
+  *pict = *(AVFrame*)&s->current_picture;
 
 
   MPV_frame_end(s);
   
-  *data_size=sizeof(AVVideoFrame);
+  *data_size=sizeof(AVFrame);
   return buf_size;
 }
 
--- a/utils.c	Mon Dec 09 00:29:17 2002 +0000
+++ b/utils.c	Mon Dec 09 12:03:43 2002 +0000
@@ -120,7 +120,7 @@
     uint8_t *data[4];
 }DefaultPicOpaque;
 
-int avcodec_default_get_buffer(AVCodecContext *s, AVVideoFrame *pic){
+int avcodec_default_get_buffer(AVCodecContext *s, AVFrame *pic){
     int i;
     const int width = s->width;
     const int height= s->height;
@@ -202,7 +202,7 @@
     return 0;
 }
 
-void avcodec_default_release_buffer(AVCodecContext *s, AVVideoFrame *pic){
+void avcodec_default_release_buffer(AVCodecContext *s, AVFrame *pic){
     int i;
     
     assert(pic->type==FF_BUFFER_TYPE_INTERNAL);
@@ -249,11 +249,11 @@
 }
 
 /**
- * allocates a AVPicture and set it to defaults.
+ * allocates a AVPFrame and set it to defaults.
  * this can be deallocated by simply calling free() 
  */
-AVVideoFrame *avcodec_alloc_picture(void){
-    AVVideoFrame *pic= av_mallocz(sizeof(AVVideoFrame));
+AVFrame *avcodec_alloc_frame(void){
+    AVFrame *pic= av_mallocz(sizeof(AVFrame));
     
     return pic;
 }
@@ -290,7 +290,7 @@
 }
 
 int avcodec_encode_video(AVCodecContext *avctx, UINT8 *buf, int buf_size, 
-                         const AVVideoFrame *pict)
+                         const AVFrame *pict)
 {
     int ret;
 
@@ -305,7 +305,7 @@
 /* decode a frame. return -1 if error, otherwise return the number of
    bytes used. If no frame could be decompressed, *got_picture_ptr is
    zero. Otherwise, it is non zero */
-int avcodec_decode_video(AVCodecContext *avctx, AVVideoFrame *picture, 
+int avcodec_decode_video(AVCodecContext *avctx, AVFrame *picture, 
                          int *got_picture_ptr,
                          UINT8 *buf, int buf_size)
 {
@@ -672,7 +672,7 @@
         for(i=0; i<MAX_PICTURE_COUNT; i++){
            if(s->picture[i].data[0] && (   s->picture[i].type == FF_BUFFER_TYPE_INTERNAL
                                         || s->picture[i].type == FF_BUFFER_TYPE_USER))
-            avctx->release_buffer(avctx, (AVVideoFrame*)&s->picture[i]);
+            avctx->release_buffer(avctx, (AVFrame*)&s->picture[i]);
         }
         break;
     default: