|
|
|
@ -2026,29 +2026,6 @@ static int copy_chapters(int infile, int outfile) |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void parse_forced_key_frames(char *kf, OutputStream *ost, |
|
|
|
|
AVCodecContext *avctx) |
|
|
|
|
{ |
|
|
|
|
char *p; |
|
|
|
|
int n = 1, i; |
|
|
|
|
int64_t t; |
|
|
|
|
|
|
|
|
|
for (p = kf; *p; p++) |
|
|
|
|
if (*p == ',') |
|
|
|
|
n++; |
|
|
|
|
ost->forced_kf_count = n; |
|
|
|
|
ost->forced_kf_pts = av_malloc(sizeof(*ost->forced_kf_pts) * n); |
|
|
|
|
if (!ost->forced_kf_pts) { |
|
|
|
|
av_log(NULL, AV_LOG_FATAL, "Could not allocate forced key frames array.\n"); |
|
|
|
|
exit_program(1); |
|
|
|
|
} |
|
|
|
|
for (i = 0; i < n; i++) { |
|
|
|
|
p = i ? strchr(p, ',') + 1 : kf; |
|
|
|
|
t = parse_time_or_die("force_key_frames", p, 1); |
|
|
|
|
ost->forced_kf_pts[i] = av_rescale_q(t, AV_TIME_BASE_Q, avctx->time_base); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* The following code is the main loop of the file converter |
|
|
|
|
*/ |
|
|
|
@ -3401,6 +3378,29 @@ static int opt_input_file(const char *opt, const char *filename) |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void parse_forced_key_frames(char *kf, OutputStream *ost, |
|
|
|
|
AVCodecContext *avctx) |
|
|
|
|
{ |
|
|
|
|
char *p; |
|
|
|
|
int n = 1, i; |
|
|
|
|
int64_t t; |
|
|
|
|
|
|
|
|
|
for (p = kf; *p; p++) |
|
|
|
|
if (*p == ',') |
|
|
|
|
n++; |
|
|
|
|
ost->forced_kf_count = n; |
|
|
|
|
ost->forced_kf_pts = av_malloc(sizeof(*ost->forced_kf_pts) * n); |
|
|
|
|
if (!ost->forced_kf_pts) { |
|
|
|
|
av_log(NULL, AV_LOG_FATAL, "Could not allocate forced key frames array.\n"); |
|
|
|
|
exit_program(1); |
|
|
|
|
} |
|
|
|
|
for (i = 0; i < n; i++) { |
|
|
|
|
p = i ? strchr(p, ',') + 1 : kf; |
|
|
|
|
t = parse_time_or_die("force_key_frames", p, 1); |
|
|
|
|
ost->forced_kf_pts[i] = av_rescale_q(t, AV_TIME_BASE_Q, avctx->time_base); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static OutputStream *new_video_stream(AVFormatContext *oc, int file_idx) |
|
|
|
|
{ |
|
|
|
|
AVStream *st; |
|
|
|
|