The fix is a little bit more complicated than '.' to '->'.
I have attached a patch to correct this.

And yes I guess upgrading to version 0.15 should be better but
apparently it does not compile under current debian testing (dont have
tried unstable).

--
   Henry PrĂȘcheur
diff -ru ffmpeg2theora-0.13+svn20050704/ffmpeg2theora.c 
ffmpeg2theora-0.13+svn20050704.fixed/ffmpeg2theora.c
--- ffmpeg2theora-0.13+svn20050704/ffmpeg2theora.c      2005-07-04 
23:15:49.000000000 +0200
+++ ffmpeg2theora-0.13+svn20050704.fixed/ffmpeg2theora.c        2006-01-24 
23:42:00.000000000 +0100
@@ -128,7 +128,7 @@
     
     
     if(this->audiostream >= 0 && this->context->nb_streams > 
this->audiostream) {
-        AVCodecContext *enc = 
&this->context->streams[this->audiostream]->codec;
+        AVCodecContext *enc = this->context->streams[this->audiostream]->codec;
         if (enc->codec_type == CODEC_TYPE_AUDIO) {
             this->audio_index = this->audiostream;
             fprintf(stderr,"  Using stream #0.%d as audio 
input\n",this->audio_index);
@@ -139,7 +139,7 @@
     }
     
     for (i = 0; i < this->context->nb_streams; i++){
-        AVCodecContext *enc = &this->context->streams[i]->codec;
+        AVCodecContext *enc = this->context->streams[i]->codec;
         switch (enc->codec_type){
         case CODEC_TYPE_VIDEO:
             if (this->video_index < 0)
@@ -156,7 +156,7 @@
 
     if (this->video_index >= 0){
         vstream = this->context->streams[this->video_index];
-        venc = &this->context->streams[this->video_index]->codec;
+        venc = this->context->streams[this->video_index]->codec;
         vcodec = avcodec_find_decoder (venc->codec_id);
 
 #if LIBAVFORMAT_BUILD <= 4623
@@ -234,8 +234,8 @@
                 int 
width=venc->width-this->frame_leftBand-this->frame_rightBand;
                 int 
height=venc->height-this->frame_topBand-this->frame_bottomBand;
                 av_reduce(&this->aspect_numerator,&this->aspect_denominator,
-                venc->sample_aspect_ratio.num*width*this->picture_height,
-                
venc->sample_aspect_ratio.den*height*this->picture_width,10000);
+                                                 
venc->sample_aspect_ratio.num*width*this->picture_height,
+                                                 
venc->sample_aspect_ratio.den*height*this->picture_width,10000);
                 
frame_aspect=(float)(this->aspect_numerator*this->picture_width)/
                                 
(this->aspect_denominator*this->picture_height);
             }
@@ -298,7 +298,7 @@
 
     if (this->audio_index >= 0){
         astream = this->context->streams[this->audio_index];
-        aenc = &this->context->streams[this->audio_index]->codec;
+        aenc = this->context->streams[this->audio_index]->codec;
         acodec = avcodec_find_decoder (aenc->codec_id);
         if (this->channels != aenc->channels && aenc->codec_id == CODEC_ID_AC3)
             aenc->channels = this->channels;
@@ -350,14 +350,14 @@
             info.video_only=1;
         
         if(!info.audio_only){
-            frame = alloc_picture(vstream->codec.pix_fmt,
-                            vstream->codec.width,vstream->codec.height);
-            frame_tmp = alloc_picture(vstream->codec.pix_fmt,
-                            vstream->codec.width,vstream->codec.height);
+            frame = alloc_picture(vstream->codec->pix_fmt,
+                            vstream->codec->width,vstream->codec->height);
+            frame_tmp = alloc_picture(vstream->codec->pix_fmt,
+                            vstream->codec->width,vstream->codec->height);
             output_tmp =alloc_picture(PIX_FMT_YUV420P, 
-                            vstream->codec.width,vstream->codec.height);
+                            vstream->codec->width,vstream->codec->height);
             output =alloc_picture(PIX_FMT_YUV420P, 
-                            vstream->codec.width,vstream->codec.height);
+                            vstream->codec->width,vstream->codec->height);
             output_resized =alloc_picture(PIX_FMT_YUV420P, 
                             this->frame_width, this->frame_height);
             output_buffered =alloc_picture(PIX_FMT_YUV420P,
@@ -461,7 +461,7 @@
                 while(e_o_s || len > 0){
                     int dups = 0;
                     if(len >0 &&
-                        (len1 = avcodec_decode_video(&vstream->codec,
+                        (len1 = avcodec_decode_video(vstream->codec,
                                         frame,&got_picture, ptr, len))>0) {
                                         
                         if(got_picture){
@@ -480,7 +480,7 @@
                                     break;
                                 }
                                 if (delta > 0.7) {
-                                    dups = lrintf(delta);
+                                    dups = (int)(delta);
                                     fprintf(stderr,
                                       "%d duplicate %s added to maintain 
sync\n",
                                       dups, (dups == 1) ? "frame" : "frames");
@@ -546,7 +546,7 @@
                     int samples_out=0;
                     int data_size;
                     if(len > 0){
-                        len1 = avcodec_decode_audio(&astream->codec, 
audio_buf,&data_size, ptr, len);
+                        len1 = avcodec_decode_audio(astream->codec, 
audio_buf,&data_size, ptr, len);
                         if (len1 < 0){
                             /* if error, we skip the frame */
                             break;

Reply via email to