--- mpeg2fix.old.c	2005-11-05 17:44:56.000000000 -0800
+++ mpeg2fix.c	2005-11-06 07:40:38.000000000 -0800
@@ -386,11 +386,13 @@
             audCC[mp2_count]=inputFC->streams[i]->codec;
             mp2_count++;
           } else {
+            stream_map[i]=0;
             fprintf(stderr, "Unsupported audio stream: %d\n", 
                            inputFC->streams[i]->codec->codec_id);
          }
          break;
        default:
+         stream_map[i]=0;
          fprintf(stderr, "Skipping unsupported codec %d\n",
                         inputFC->streams[i]->codec->codec_type);
       }
@@ -592,12 +594,17 @@
      FM_pkt_list_t *curPkt;
      int ret;
      uint8_t *ptr;
+     int done = 0;
 
-     pkt->pts = AV_NOPTS_VALUE;
-     pkt->dts = AV_NOPTS_VALUE;
-     ret = av_read_frame(inputFC, pkt);
-     if (ret < 0)
-        return(NULL);
+     while(! done) {
+       pkt->pts = AV_NOPTS_VALUE;
+       pkt->dts = AV_NOPTS_VALUE;
+       ret = av_read_frame(inputFC, pkt);
+       if (ret < 0)
+          return(NULL);
+       if(stream_map[pkt->stream_index])
+         done = 1;
+     }
 
      if(pkt->stream_index==VID_STREAM) {
        curPkt = *vid;

