[FFmpeg-soc] [soc]: r5827 - seek2010/seek2010.patch

mchinen subversion at mplayerhq.hu
Wed Jun 9 23:44:01 CEST 2010


Author: mchinen
Date: Wed Jun  9 23:44:01 2010
New Revision: 5827

Log:
only copy index if it contains more than half of the frames.  also more debug printfs

Modified:
   seek2010/seek2010.patch

Modified: seek2010/seek2010.patch
==============================================================================
--- seek2010/seek2010.patch	Wed Jun  9 15:42:08 2010	(r5826)
+++ seek2010/seek2010.patch	Wed Jun  9 23:44:01 2010	(r5827)
@@ -262,7 +262,7 @@ Index: libavformat/utils.c
      /* first, we try the format specific seek */
      if (s->iformat->read_seek)
          ret = s->iformat->read_seek(s, stream_index, timestamp, flags);
-@@ -1712,9 +1749,367 @@
+@@ -1712,9 +1749,368 @@
      // try some generic seek like av_seek_frame_generic() but with new ts semantics
  }
  
@@ -346,7 +346,8 @@ Index: libavformat/utils.c
 +    {
 +	float request_time = (((float)timestamp/st->time_base.den)*st->time_base.num);
 +	float actual_time = (((float)ie->timestamp/st->time_base.den)*st->time_base.num);
-+	printf("SEEK_TABLE_DEBUG: table seeked to %.2fs (actual request was %.2fs)\n",actual_time, request_time );
++	float time_base_inv = ((float)st->time_base.den/st->time_base.num);
++	printf("SEEK_TABLE_DEBUG: table seeked to %.2fs (actual request was %.2fs), timebaseinv %f, samplerate of %d\n",actual_time, request_time, time_base_inv, st->codec->sample_rate );
 +    }
 +    return 0;
 +}
@@ -558,7 +559,7 @@ Index: libavformat/utils.c
 +    } else if(0) {
 +	/* TODO: for this case see if we have a special method for generating the table */
 +	/*       specific to a given format. */
-+    } else if(0 && st->nb_index_entries) {
++    } else if(st->nb_frames!=0 && st->nb_index_entries > st->nb_frames/2) {
 +	/* some demuxers load an index upon file open. */
 +	/* copy the data.  maybe we should borrow it instead?*/
 +	int sz;
@@ -630,7 +631,7 @@ Index: libavformat/utils.c
   * Returns TRUE if the stream has accurate duration in any stream.
   *
   * @return TRUE if the stream has accurate duration for at least one component.
-@@ -2422,6 +2817,7 @@
+@@ -2422,6 +2818,7 @@
          }
          av_metadata_free(&st->metadata);
          av_free(st->index_entries);
@@ -638,7 +639,7 @@ Index: libavformat/utils.c
          av_free(st->codec->extradata);
          av_free(st->codec);
  #if LIBAVFORMAT_VERSION_INT < (53<<16)
-@@ -2971,6 +3367,7 @@
+@@ -2971,6 +3368,7 @@
      for(i=0;i<s->nb_streams;i++) {
          av_freep(&s->streams[i]->priv_data);
          av_freep(&s->streams[i]->index_entries);


More information about the FFmpeg-soc mailing list