From: Andreas Rheinhardt Date: Thu, 1 Apr 2021 20:31:13 +0000 (+0200) Subject: avformat/dss: Set values known during read_header in read_header X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=ef8c8b4163e5ff156b6511eda9cdfdb0828ee8dc;p=ffmpeg avformat/dss: Set values known during read_header in read_header Signed-off-by: Andreas Rheinhardt --- diff --git a/libavformat/dss.c b/libavformat/dss.c index 468de3fe84e..0b6d68af999 100644 --- a/libavformat/dss.c +++ b/libavformat/dss.c @@ -144,6 +144,8 @@ static int dss_read_header(AVFormatContext *s) if (ctx->audio_codec == DSS_ACODEC_DSS_SP) { st->codecpar->codec_id = AV_CODEC_ID_DSS_SP; st->codecpar->sample_rate = 11025; + s->bit_rate = 8 * (DSS_FRAME_SIZE - 1) * st->codecpar->sample_rate + * 512 / (506 * 264); } else if (ctx->audio_codec == DSS_ACODEC_G723_1) { st->codecpar->codec_id = AV_CODEC_ID_G723_1; st->codecpar->sample_rate = 8000; @@ -206,7 +208,6 @@ static void dss_sp_byte_swap(DSSDemuxContext *ctx, static int dss_sp_read_packet(AVFormatContext *s, AVPacket *pkt) { DSSDemuxContext *ctx = s->priv_data; - AVStream *st = s->streams[0]; int read_size, ret, offset = 0, buff_offset = 0; int64_t pos = avio_tell(s->pb); @@ -219,8 +220,6 @@ static int dss_sp_read_packet(AVFormatContext *s, AVPacket *pkt) } else read_size = DSS_FRAME_SIZE; - ctx->packet_size = DSS_FRAME_SIZE - 1; - ret = av_new_packet(pkt, DSS_FRAME_SIZE); if (ret < 0) return ret; @@ -228,7 +227,6 @@ static int dss_sp_read_packet(AVFormatContext *s, AVPacket *pkt) pkt->duration = 264; pkt->pos = pos; pkt->stream_index = 0; - s->bit_rate = 8LL * ctx->packet_size * st->codecpar->sample_rate * 512 / (506 * pkt->duration); if (ctx->counter < read_size) { ret = avio_read(s->pb, ctx->dss_sp_buf + buff_offset,