avconv: move copy_initial_nonkeyframes to the options context.
Also document it.
This commit is contained in:
parent
9a414d8962
commit
a2aeeb2263
11
avconv.c
11
avconv.c
@ -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*)©_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" },
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user