avconv: move copy_initial_nonkeyframes to the options context.

Also document it.
This commit is contained in:
Anton Khirnov 2011-11-06 10:26:56 +01:00
parent 9a414d8962
commit a2aeeb2263
2 changed files with 12 additions and 3 deletions

View File

@ -117,7 +117,6 @@ static int copy_tb;
static int opt_shortest = 0; static int opt_shortest = 0;
static char *vstats_filename; static char *vstats_filename;
static FILE *vstats_file; static FILE *vstats_file;
static int copy_initial_nonkeyframes = 0;
static int audio_volume = 256; static int audio_volume = 256;
@ -229,6 +228,7 @@ typedef struct OutputStream {
int is_past_recording_time; int is_past_recording_time;
int stream_copy; int stream_copy;
const char *attachment_filename; const char *attachment_filename;
int copy_initial_nonkeyframes;
} OutputStream; } OutputStream;
@ -334,6 +334,8 @@ typedef struct OptionsContext {
int nb_top_field_first; int nb_top_field_first;
SpecifierOpt *presets; SpecifierOpt *presets;
int nb_presets; int nb_presets;
SpecifierOpt *copy_initial_nonkeyframes;
int nb_copy_initial_nonkeyframes;
#if CONFIG_AVFILTER #if CONFIG_AVFILTER
SpecifierOpt *filters; SpecifierOpt *filters;
int nb_filters; int nb_filters;
@ -1817,7 +1819,8 @@ static int output_packet(InputStream *ist, int ist_index,
av_init_packet(&opkt); av_init_packet(&opkt);
if ((!ost->frame_number && !(pkt->flags & AV_PKT_FLAG_KEY)) && !copy_initial_nonkeyframes) if ((!ost->frame_number && !(pkt->flags & AV_PKT_FLAG_KEY)) &&
!ost->copy_initial_nonkeyframes)
#if !CONFIG_AVFILTER #if !CONFIG_AVFILTER
continue; continue;
#else #else
@ -3327,6 +3330,8 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc)
MATCH_PER_STREAM_OPT(top_field_first, i, top_field_first, oc, st); MATCH_PER_STREAM_OPT(top_field_first, i, top_field_first, oc, st);
ost->top_field_first = top_field_first; ost->top_field_first = top_field_first;
MATCH_PER_STREAM_OPT(copy_initial_nonkeyframes, i, ost->copy_initial_nonkeyframes, oc ,st);
#if CONFIG_AVFILTER #if CONFIG_AVFILTER
MATCH_PER_STREAM_OPT(filters, str, filters, oc, st); MATCH_PER_STREAM_OPT(filters, str, filters, oc, st);
if (filters) if (filters)
@ -4126,7 +4131,7 @@ static const OptionDef options[] = {
{ "shortest", OPT_BOOL | OPT_EXPERT, {(void*)&opt_shortest}, "finish encoding within shortest input" }, // { "shortest", OPT_BOOL | OPT_EXPERT, {(void*)&opt_shortest}, "finish encoding within shortest input" }, //
{ "dts_delta_threshold", HAS_ARG | OPT_FLOAT | OPT_EXPERT, {(void*)&dts_delta_threshold}, "timestamp discontinuity delta threshold", "threshold" }, { "dts_delta_threshold", HAS_ARG | OPT_FLOAT | OPT_EXPERT, {(void*)&dts_delta_threshold}, "timestamp discontinuity delta threshold", "threshold" },
{ "xerror", OPT_BOOL, {(void*)&exit_on_error}, "exit on error", "error" }, { "xerror", OPT_BOOL, {(void*)&exit_on_error}, "exit on error", "error" },
{ "copyinkf", OPT_BOOL | OPT_EXPERT, {(void*)&copy_initial_nonkeyframes}, "copy initial non-keyframes" }, { "copyinkf", OPT_BOOL | OPT_EXPERT | OPT_SPEC, {.off = OFFSET(copy_initial_nonkeyframes)}, "copy initial non-keyframes" },
{ "frames", OPT_INT64 | HAS_ARG | OPT_SPEC, {.off = OFFSET(max_frames)}, "set the number of frames to record", "number" }, { "frames", OPT_INT64 | HAS_ARG | OPT_SPEC, {.off = OFFSET(max_frames)}, "set the number of frames to record", "number" },
{ "tag", OPT_STRING | HAS_ARG | OPT_SPEC, {.off = OFFSET(codec_tags)}, "force codec tag/fourcc", "fourcc/tag" }, { "tag", OPT_STRING | HAS_ARG | OPT_SPEC, {.off = OFFSET(codec_tags)}, "force codec tag/fourcc", "fourcc/tag" },
{ "q", HAS_ARG | OPT_EXPERT | OPT_DOUBLE | OPT_SPEC, {.off = OFFSET(qscale)}, "use fixed quality scale (VBR)", "q" }, { "q", HAS_ARG | OPT_EXPERT | OPT_DOUBLE | OPT_SPEC, {.off = OFFSET(qscale)}, "use fixed quality scale (VBR)", "q" },

View File

@ -546,6 +546,10 @@ frames after each specified time.
This option can be useful to ensure that a seek point is present at a This option can be useful to ensure that a seek point is present at a
chapter mark or any other designated place in the output file. chapter mark or any other designated place in the output file.
The timestamps must be specified in ascending order. The timestamps must be specified in ascending order.
@item -copyinkf[:@var{stream_specifier}] (@emph{output,per-stream})
When doing stream copy, copy also non-key frames found at the
beginning.
@end table @end table
@section Audio Options @section Audio Options