avconv: automatically insert asyncts when -async is used.
authorAnton Khirnov <anton@khirnov.net>
Wed, 9 May 2012 04:39:37 +0000 (06:39 +0200)
committerAnton Khirnov <anton@khirnov.net>
Mon, 14 May 2012 19:36:11 +0000 (21:36 +0200)
Deprecate -async.

avconv.c
doc/avconv.texi

index 25958ea..85ee6f7 100644 (file)
--- a/avconv.c
+++ b/avconv.c
@@ -703,6 +703,33 @@ static int configure_audio_filters(FilterGraph *fg, AVFilterContext **in_filter,
         *out_filter = format;
     }
 
+    if (audio_sync_method > 0) {
+        AVFilterContext *async;
+        char args[256];
+        int  len = 0;
+
+        av_log(NULL, AV_LOG_WARNING, "-async has been deprecated. Used the "
+               "asyncts audio filter instead.\n");
+
+        if (audio_sync_method > 1)
+            len += snprintf(args + len, sizeof(args) - len, "compensate=1:"
+                            "max_comp=%d:", audio_sync_method);
+        snprintf(args + len, sizeof(args) - len, "min_delta=%f",
+                 audio_drift_threshold);
+
+        ret = avfilter_graph_create_filter(&async,
+                                           avfilter_get_by_name("asyncts"),
+                                           "async", args, NULL, fg->graph);
+        if (ret < 0)
+            return ret;
+
+        ret = avfilter_link(*in_filter, 0, async, 0);
+        if (ret < 0)
+            return ret;
+
+        *in_filter = async;
+    }
+
     return 0;
 }
 
index 511642a..d6e4096 100644 (file)
@@ -610,6 +610,7 @@ Audio sync method. "Stretches/squeezes" the audio stream to match the timestamps
 the parameter is the maximum samples per second by which the audio is changed.
 -async 1 is a special case where only the start of the audio stream is corrected
 without any later correction.
+This option has been deprecated. Use the @code{asyncts} audio filter instead.
 @item -copyts
 Copy timestamps from input to output.
 @item -copytb