summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-09-05 23:00:06 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-10-03 20:50:50 +0200
commiteadb1cd6f85178231259878f01890be9dbb0f222 (patch)
tree7e2d15d6b67b17e4c10c0e39f895194232a0945e
parent87a4138d4b753c1ab41d0f8cb6891586adec471f (diff)
avformat/asfenc: Return proper error codes
Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r--libavformat/asfenc.c19
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;