Merge commit 'b35e5d985dd12acf9a0aaa52334134edcf35d68e'
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 14 Dec 2012 12:58:12 +0000 (13:58 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 14 Dec 2012 12:58:12 +0000 (13:58 +0100)
* commit 'b35e5d985dd12acf9a0aaa52334134edcf35d68e':
  doc: improve documentation for the asyncts filter first_pts option
  asyncts: fix the asyncts behavior when using the first_pts option

Conflicts:
libavfilter/af_asyncts.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
doc/filters.texi
libavfilter/af_asyncts.c

Simple merge
@@@ -45,13 -47,12 +47,13 @@@ typedef struct ASyncContext 
  
  #define OFFSET(x) offsetof(ASyncContext, x)
  #define A AV_OPT_FLAG_AUDIO_PARAM
 -static const AVOption options[] = {
 -    { "compensate", "Stretch/squeeze the data to make it match the timestamps", OFFSET(resample),      AV_OPT_TYPE_INT,   { .i64 = 0 },   0, 1,       A },
 +#define F AV_OPT_FLAG_FILTERING_PARAM
 +static const AVOption asyncts_options[] = {
 +    { "compensate", "Stretch/squeeze the data to make it match the timestamps", OFFSET(resample),      AV_OPT_TYPE_INT,   { .i64 = 0 },   0, 1,       A|F },
      { "min_delta",  "Minimum difference between timestamps and audio data "
 -                    "(in seconds) to trigger padding/trimmin the data.",        OFFSET(min_delta_sec), AV_OPT_TYPE_FLOAT, { .dbl = 0.1 }, 0, INT_MAX, A },
 -    { "max_comp",   "Maximum compensation in samples per second.",              OFFSET(max_comp),      AV_OPT_TYPE_INT,   { .i64 = 500 }, 0, INT_MAX, A },
 -    { "first_pts",  "Assume the first pts should be this value.",               OFFSET(first_pts),     AV_OPT_TYPE_INT64, { .i64 = AV_NOPTS_VALUE }, INT64_MIN, INT64_MAX, A },
 +                    "(in seconds) to trigger padding/trimmin the data.",        OFFSET(min_delta_sec), AV_OPT_TYPE_FLOAT, { .dbl = 0.1 }, 0, INT_MAX, A|F },
 +    { "max_comp",   "Maximum compensation in samples per second.",              OFFSET(max_comp),      AV_OPT_TYPE_INT,   { .i64 = 500 }, 0, INT_MAX, A|F },
-     { "first_pts",  "Assume the first pts should be this value.",               OFFSET(pts),           AV_OPT_TYPE_INT64, { .i64 = AV_NOPTS_VALUE }, INT64_MIN, INT64_MAX, A|F },
++    { "first_pts",  "Assume the first pts should be this value.",               OFFSET(first_pts),     AV_OPT_TYPE_INT64, { .i64 = AV_NOPTS_VALUE }, INT64_MIN, INT64_MAX, A|F },
      { NULL },
  };
  
@@@ -62,13 -68,18 +64,16 @@@ static int init(AVFilterContext *ctx, c
      ASyncContext *s = ctx->priv;
      int ret;
  
 -    s->class = &async_class;
 +    s->class = &asyncts_class;
      av_opt_set_defaults(s);
  
 -    if ((ret = av_set_options_string(s, args, "=", ":")) < 0) {
 -        av_log(ctx, AV_LOG_ERROR, "Error parsing options string '%s'.\n", args);
 +    if ((ret = av_set_options_string(s, args, "=", ":")) < 0)
          return ret;
 -    }
      av_opt_free(s);
  
+     s->pts         = AV_NOPTS_VALUE;
+     s->first_frame = 1;
      return 0;
  }