Removing pass number check from ivf_write_file_header().
Putting appropriate check to open_output_file() and close_output_file(). Before that the output file has been opened twice during two-pass encoding. Change-Id: I290cecf00513d6a31ca3f45bc20fef7efcb10190
This commit is contained in:
3
ivfenc.c
3
ivfenc.c
@@ -20,9 +20,6 @@ void ivf_write_file_header(FILE *outfile,
|
|||||||
int frame_cnt) {
|
int frame_cnt) {
|
||||||
char header[32];
|
char header[32];
|
||||||
|
|
||||||
if (cfg->g_pass != VPX_RC_ONE_PASS && cfg->g_pass != VPX_RC_LAST_PASS)
|
|
||||||
return;
|
|
||||||
|
|
||||||
header[0] = 'D';
|
header[0] = 'D';
|
||||||
header[1] = 'K';
|
header[1] = 'K';
|
||||||
header[2] = 'I';
|
header[2] = 'I';
|
||||||
|
17
vpxenc.c
17
vpxenc.c
@@ -1393,6 +1393,10 @@ static void show_stream_config(struct stream_state *stream,
|
|||||||
static void open_output_file(struct stream_state *stream,
|
static void open_output_file(struct stream_state *stream,
|
||||||
struct VpxEncoderConfig *global) {
|
struct VpxEncoderConfig *global) {
|
||||||
const char *fn = stream->config.out_fn;
|
const char *fn = stream->config.out_fn;
|
||||||
|
const struct vpx_codec_enc_cfg *const cfg = &stream->config.cfg;
|
||||||
|
|
||||||
|
if (cfg->g_pass == VPX_RC_FIRST_PASS)
|
||||||
|
return;
|
||||||
|
|
||||||
stream->file = strcmp(fn, "-") ? fopen(fn, "wb") : set_binary_mode(stdout);
|
stream->file = strcmp(fn, "-") ? fopen(fn, "wb") : set_binary_mode(stdout);
|
||||||
|
|
||||||
@@ -1404,18 +1408,23 @@ static void open_output_file(struct stream_state *stream,
|
|||||||
|
|
||||||
if (stream->config.write_webm) {
|
if (stream->config.write_webm) {
|
||||||
stream->ebml.stream = stream->file;
|
stream->ebml.stream = stream->file;
|
||||||
write_webm_file_header(&stream->ebml, &stream->config.cfg,
|
write_webm_file_header(&stream->ebml, cfg,
|
||||||
&global->framerate,
|
&global->framerate,
|
||||||
stream->config.stereo_fmt,
|
stream->config.stereo_fmt,
|
||||||
global->codec->fourcc);
|
global->codec->fourcc);
|
||||||
} else
|
} else {
|
||||||
ivf_write_file_header(stream->file, &stream->config.cfg,
|
ivf_write_file_header(stream->file, cfg, global->codec->fourcc, 0);
|
||||||
global->codec->fourcc, 0);
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void close_output_file(struct stream_state *stream,
|
static void close_output_file(struct stream_state *stream,
|
||||||
unsigned int fourcc) {
|
unsigned int fourcc) {
|
||||||
|
const struct vpx_codec_enc_cfg *const cfg = &stream->config.cfg;
|
||||||
|
|
||||||
|
if (cfg->g_pass == VPX_RC_FIRST_PASS)
|
||||||
|
return;
|
||||||
|
|
||||||
if (stream->config.write_webm) {
|
if (stream->config.write_webm) {
|
||||||
write_webm_file_footer(&stream->ebml, stream->hash);
|
write_webm_file_footer(&stream->ebml, stream->hash);
|
||||||
free(stream->ebml.cue_list);
|
free(stream->ebml.cue_list);
|
||||||
|
Reference in New Issue
Block a user