diff -pruN 0.27-1.1/src/avinfo.c 0.27-1.1ubuntu1/src/avinfo.c
--- 0.27-1.1/src/avinfo.c	2010-06-23 01:07:49.000000000 +0100
+++ 0.27-1.1ubuntu1/src/avinfo.c	2011-07-14 09:06:37.000000000 +0100
@@ -196,7 +196,7 @@ void json_codec_info(FILE *output, AVCod
     }
 
     switch(enc->codec_type) {
-    case CODEC_TYPE_VIDEO:
+    case AVMEDIA_TYPE_VIDEO:
         codec_name = fix_codec_name(codec_name);
         json_add_key_value(output, "codec", (void *)codec_name, JSON_STRING, 0, indent);
         if (enc->pix_fmt != PIX_FMT_NONE) {
@@ -224,7 +224,7 @@ void json_codec_info(FILE *output, AVCod
             json_add_key_value(output, "bitrate", &t, JSON_FLOAT, 0, indent);
         }
         break;
-    case CODEC_TYPE_AUDIO:
+    case AVMEDIA_TYPE_AUDIO:
         codec_name = fix_codec_name(codec_name);
         json_add_key_value(output, "codec", (void *)codec_name, JSON_STRING, 0, indent);
         if (enc->sample_rate) {
@@ -277,15 +277,15 @@ void json_codec_info(FILE *output, AVCod
         }
         break;
     /*
-    case CODEC_TYPE_DATA:
+    case AVMEDIA_TYPE_DATA:
         fprintf(output, "datacodec: %s\n", codec_name);
         bitrate = enc->bit_rate;
         break;
-    case CODEC_TYPE_SUBTITLE:
+    case AVMEDIA_TYPE_SUBTITLE:
         fprintf(output, "subtitle: %s\n", codec_name);
         bitrate = enc->bit_rate;
         break;
-    case CODEC_TYPE_ATTACHMENT:
+    case AVMEDIA_TYPE_ATTACHMENT:
         fprintf(output, "attachment: : %s\n", codec_name);
         bitrate = enc->bit_rate;
         break;
@@ -330,7 +330,7 @@ static void json_stream_format(FILE *out
                      display_aspect_ratio.num, display_aspect_ratio.den);
             json_add_key_value(output, "display_aspect_ratio", buf1, JSON_STRING, 0, indent + 1);
         }
-        if(st->codec->codec_type == CODEC_TYPE_VIDEO){
+        if(st->codec->codec_type == AVMEDIA_TYPE_VIDEO){
             if (st->time_base.den && st->time_base.num && av_q2d(st->time_base) > 0.001) {
                 snprintf(buf1, sizeof(buf1), "%d:%d",
                          st->time_base.den, st->time_base.num);
@@ -340,6 +340,20 @@ static void json_stream_format(FILE *out
                          st->r_frame_rate.num, st->r_frame_rate.den);
                 json_add_key_value(output, "framerate", buf1, JSON_STRING, 0, indent + 1);
             }
+            if (st->sample_aspect_ratio.num && // default
+                av_cmp_q(st->sample_aspect_ratio, st->codec->sample_aspect_ratio)) {
+                AVRational display_aspect_ratio;
+                av_reduce(&display_aspect_ratio.num, &display_aspect_ratio.den,
+                          st->codec->width*st->sample_aspect_ratio.num,
+                          st->codec->height*st->sample_aspect_ratio.den,
+                          1024*1024);
+                snprintf(buf1, sizeof(buf1), "%d:%d",
+                         st->sample_aspect_ratio.num, st->sample_aspect_ratio.den);
+                json_add_key_value(output, "pixel_aspect_ratio", buf1, JSON_STRING, 0, indent+1);
+                snprintf(buf1, sizeof(buf1), "%d:%d",
+                         display_aspect_ratio.num, display_aspect_ratio.den);
+                json_add_key_value(output, "display_aspect_ratio", buf1, JSON_STRING, 0, indent+1);
+            }
         }
         json_add_key_value(output, "id", &i, JSON_INT, 1, indent + 1);
         do_indent(output, indent-1);
@@ -484,11 +498,11 @@ void json_format_info(FILE* output, AVFo
             int j, k;
             for(j=0; j<ic->nb_programs; j++) {
                 for(k=0; k<ic->programs[j]->nb_stream_indexes; k++)
-                    json_stream_format(output, ic, ic->programs[j]->stream_index[k], 2, !k && !j, CODEC_TYPE_VIDEO);
+                    json_stream_format(output, ic, ic->programs[j]->stream_index[k], 2, !k && !j, AVMEDIA_TYPE_VIDEO);
              }
         } else {
             for(i=0;i<ic->nb_streams;i++) {
-                json_stream_format(output, ic, i, 2, !i, CODEC_TYPE_VIDEO);
+                json_stream_format(output, ic, i, 2, !i, AVMEDIA_TYPE_VIDEO);
             }
         }
         fprintf(output, "],\n");
@@ -499,11 +513,11 @@ void json_format_info(FILE* output, AVFo
             int j, k;
             for(j=0; j<ic->nb_programs; j++) {
                 for(k=0; k<ic->programs[j]->nb_stream_indexes; k++)
-                    json_stream_format(output, ic, ic->programs[j]->stream_index[k], 2, !k && !j, CODEC_TYPE_AUDIO);
+                    json_stream_format(output, ic, ic->programs[j]->stream_index[k], 2, !k && !j, AVMEDIA_TYPE_AUDIO);
              }
         } else {
             for(i=0;i<ic->nb_streams;i++) {
-                json_stream_format(output, ic, i, 2, !i, CODEC_TYPE_AUDIO);
+                json_stream_format(output, ic, i, 2, !i, AVMEDIA_TYPE_AUDIO);
             }
         }
         fprintf(output, "],\n");
diff -pruN 0.27-1.1/src/ffmpeg2theora.c 0.27-1.1ubuntu1/src/ffmpeg2theora.c
--- 0.27-1.1/src/ffmpeg2theora.c	2010-06-23 01:07:49.000000000 +0100
+++ 0.27-1.1ubuntu1/src/ffmpeg2theora.c	2011-07-14 09:06:37.000000000 +0100
@@ -341,7 +341,7 @@ static void prepare_ycbcr_buffer(ff2theo
 static const char *find_category_for_subtitle_stream (ff2theora this, int idx, int included_subtitles)
 {
   AVCodecContext *enc = this->context->streams[idx]->codec;
-  if (enc->codec_type != CODEC_TYPE_SUBTITLE) return 0;
+  if (enc->codec_type != AVMEDIA_TYPE_SUBTITLE) return 0;
   switch (enc->codec_id) {
     case CODEC_ID_TEXT:
     case CODEC_ID_SSA:
@@ -500,9 +500,11 @@ static void extra_info_from_ssa(AVPacket
 
 static const char *find_language_for_subtitle_stream(const AVStream *s)
 {
-  const char *lang=find_iso639_1(s->language);
+  AVMetadataTag *language = av_metadata_get(s->metadata, "language", NULL, 0);
+  const char *lang=find_iso639_1(language->value);
   if (!lang) {
-    fprintf(stderr,"WARNING - unrecognized ISO 639-2 language code: %s\n",s->language);
+    fprintf(stderr, "WARNING - unrecognized ISO 639-2 language code: %s\n",
+                    language->value);
   }
   return lang;
 }
@@ -516,8 +518,8 @@ void ff2theora_output(ff2theora this) {
     AVStream *vstream = NULL;
     AVCodec *acodec = NULL;
     AVCodec *vcodec = NULL;
-    pp_mode_t *ppMode = NULL;
-    pp_context_t *ppContext = NULL;
+    pp_mode *ppMode = NULL;
+    pp_context *ppContext = NULL;
     int sws_flags;
     float frame_aspect = 0;
     double fps = 0.0;
@@ -530,7 +532,7 @@ void ff2theora_output(ff2theora this) {
 
     if (this->audiostream >= 0 && this->context->nb_streams > this->audiostream) {
         AVCodecContext *enc = this->context->streams[this->audiostream]->codec;
-        if (enc->codec_type == CODEC_TYPE_AUDIO) {
+        if (enc->codec_type == AVMEDIA_TYPE_AUDIO) {
             this->audio_index = this->audiostream;
             fprintf(stderr, "  Using stream #0.%d as audio input\n",this->audio_index);
         }
@@ -540,7 +542,7 @@ void ff2theora_output(ff2theora this) {
     }
     if (this->videostream >= 0 && this->context->nb_streams > this->videostream) {
         AVCodecContext *enc = this->context->streams[this->videostream]->codec;
-        if (enc->codec_type == CODEC_TYPE_VIDEO) {
+        if (enc->codec_type == AVMEDIA_TYPE_VIDEO) {
             this->video_index = this->videostream;
             fprintf(stderr, "  Using stream #0.%d as video input\n",this->video_index);
         }
@@ -552,11 +554,11 @@ void ff2theora_output(ff2theora this) {
     for (i = 0; i < this->context->nb_streams; i++) {
         AVCodecContext *enc = this->context->streams[i]->codec;
         switch (enc->codec_type) {
-            case CODEC_TYPE_VIDEO:
+            case AVMEDIA_TYPE_VIDEO:
                 if (this->video_index < 0 && !this->disable_video)
                     this->video_index = i;
                 break;
-            case CODEC_TYPE_AUDIO:
+            case AVMEDIA_TYPE_AUDIO:
                 if (this->audio_index < 0 && !this->disable_audio)
                     this->audio_index = i;
                 break;
@@ -980,7 +982,7 @@ void ff2theora_output(ff2theora this) {
           AVStream *stream = this->context->streams[i];
           AVCodecContext *enc = stream->codec;
           const char *category;
-          if (enc->codec_type == CODEC_TYPE_SUBTITLE) {
+          if (enc->codec_type == AVMEDIA_TYPE_SUBTITLE) {
             AVCodec *codec = avcodec_find_decoder (enc->codec_id);
             if (codec && avcodec_open (enc, codec) >= 0) {
               subtitles_opened[i] = 1;
@@ -1451,9 +1453,11 @@ void ff2theora_output(ff2theora this) {
                             }
                             if (this->sws_scale_ctx) {
                                 sws_scale(this->sws_scale_ctx,
-                                output_cropped->data, output_cropped->linesize, 0,
-                                display_height - (this->frame_topBand + this->frame_bottomBand),
-                                output_resized->data, output_resized->linesize);
+                                    output_cropped->data,
+                                    output_cropped->linesize, 0,
+                                    display_height - (this->frame_topBand + this->frame_bottomBand),
+                                    output_resized->data,
+                                    output_resized->linesize);
                             }
                             else{
                                 output_resized = output_cropped;
@@ -1512,7 +1516,7 @@ void ff2theora_output(ff2theora this) {
                     int samples=0;
                     int samples_out=0;
                     int data_size = 4*AVCODEC_MAX_AUDIO_FRAME_SIZE;
-                    int bytes_per_sample = av_get_bits_per_sample_format(aenc->sample_fmt)/8;
+                    int bytes_per_sample = av_get_bits_per_sample_fmt(aenc->sample_fmt)/8;
 
                     if (avpkt.size > 0) {
                         len1 = avcodec_decode_audio3(astream->codec, audio_buf, &data_size, &avpkt);
@@ -2726,8 +2730,7 @@ int main(int argc, char **argv) {
 
     for(info.passno=(info.twopass==3?1:info.twopass);info.passno<=(info.twopass==3?2:info.twopass);info.passno++){
     //detect image sequences and set framerate if provided
-    if (av_guess_image2_codec(inputfile_name) != CODEC_ID_NONE || \
-        (input_fmt != NULL && strcmp(input_fmt->name, "video4linux") >= 0)) {
+    if (input_fmt != NULL && strcmp(input_fmt->name, "video4linux") >= 0) {
         formatParams = &params;
         memset(formatParams, 0, sizeof(*formatParams));
         if (input_fmt != NULL && strcmp(input_fmt->name, "video4linux") >= 0) {
@@ -2748,7 +2751,6 @@ int main(int argc, char **argv) {
             formatParams->time_base.den = convert->framerate_new.num;
             formatParams->time_base.num = convert->framerate_new.den;
         }
-        formatParams->video_codec_id = av_guess_image2_codec(inputfile_name);
     }
     if (av_open_input_file(&convert->context, inputfile_name, input_fmt, 0, formatParams) >= 0) {
         if (av_find_stream_info(convert->context) >= 0) {
@@ -2760,9 +2762,9 @@ int main(int argc, char **argv) {
                     for (i = 0; i < convert->context->nb_streams; i++) {
                         AVCodecContext *enc = convert->context->streams[i]->codec;
                         switch (enc->codec_type) {
-                            case CODEC_TYPE_VIDEO: has_video = 1; break;
-                            case CODEC_TYPE_AUDIO: has_audio = 1; break;
-                            case CODEC_TYPE_SUBTITLE: if (is_supported_subtitle_stream(convert, i, convert->included_subtitles)) has_kate = 1; break;
+                            case AVMEDIA_TYPE_VIDEO: has_video = 1; break;
+                            case AVMEDIA_TYPE_AUDIO: has_audio = 1; break;
+                            case AVMEDIA_TYPE_SUBTITLE: if (is_supported_subtitle_stream(convert, i, convert->included_subtitles)) has_kate = 1; break;
                             default: break;
                         }
                     }
@@ -2828,7 +2830,7 @@ int main(int argc, char **argv) {
 
                 if (!info.frontend) {
                     if (info.twopass!=3 || info.passno==1) {
-                        dump_format(convert->context, 0,inputfile_name, 0);
+                        av_dump_format(convert->context, 0,inputfile_name, 0);
                     }
                 }
                 if (convert->disable_audio) {
