diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2021-09-05 23:00:06 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2021-10-03 20:50:50 +0200 |
commit | eadb1cd6f85178231259878f01890be9dbb0f222 (patch) | |
tree | 7e2d15d6b67b17e4c10c0e39f895194232a0945e /libavformat/asfenc.c | |
parent | 87a4138d4b753c1ab41d0f8cb6891586adec471f (diff) | |
download | ffmpeg-eadb1cd6f85178231259878f01890be9dbb0f222.tar.gz |
avformat/asfenc: Return proper error codes
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavformat/asfenc.c')
-rw-r--r-- | libavformat/asfenc.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/libavformat/asfenc.c b/libavformat/asfenc.c index c9fc3a7b22..041019b186 100644 --- a/libavformat/asfenc.c +++ b/libavformat/asfenc.c @@ -622,8 +622,10 @@ static int asf_write_header1(AVFormatContext *s, int64_t file_size, /* WAVEFORMATEX header */ int wavsize = ff_put_wav_header(s, pb, par, FF_PUT_WAV_HEADER_FORCE_WAVEFORMATEX); - if (wavsize < 0) + if (wavsize < 0) { + ret = wavsize; goto fail; + } if (wavsize != extra_size) { cur_pos = avio_tell(pb); avio_seek(pb, es_pos, SEEK_SET); @@ -698,8 +700,10 @@ static int asf_write_header1(AVFormatContext *s, int64_t file_size, avio_wl16(pb, 4); avio_wl32(pb, par->codec_tag); } - if (!par->codec_tag) + if (!par->codec_tag) { + ret = AVERROR(EINVAL); goto fail; + } } end_header(pb, hpos); @@ -730,16 +734,16 @@ static int asf_write_header1(AVFormatContext *s, int64_t file_size, avio_wl64(pb, asf->nb_packets); /* nb packets */ avio_w8(pb, 1); /* ??? */ avio_w8(pb, 1); /* ??? */ - ffio_free_dyn_buf(&dyn_buf); - return 0; + ret = 0; fail: ffio_free_dyn_buf(&dyn_buf); - return -1; + return ret; } static int asf_write_header(AVFormatContext *s) { ASFContext *asf = s->priv_data; + int ret; s->packet_size = asf->packet_size; s->max_interleave_delta = 0; @@ -759,9 +763,8 @@ static int asf_write_header(AVFormatContext *s) /* the data-chunk-size has to be 50 (DATA_HEADER_SIZE), which is * data_size - asf->data_offset at the moment this function is done. * It is needed to use asf as a streamable format. */ - if (asf_write_header1(s, 0, DATA_HEADER_SIZE) < 0) { - return -1; - } + if ((ret = asf_write_header1(s, 0, DATA_HEADER_SIZE)) < 0) + return ret; asf->packet_nb_payloads = 0; asf->packet_timestamp_start = -1; |