[FFmpeg-devel] [PATCH 086/281] kvag: convert to new channel layout API

James Almer jamrial at gmail.com
Thu Jan 13 03:50:48 EET 2022


Signed-off-by: James Almer <jamrial at gmail.com>
---
 libavformat/kvag.c | 19 ++++++-------------
 1 file changed, 6 insertions(+), 13 deletions(-)

diff --git a/libavformat/kvag.c b/libavformat/kvag.c
index a277c28128..5cb856cf07 100644
--- a/libavformat/kvag.c
+++ b/libavformat/kvag.c
@@ -71,18 +71,11 @@ static int kvag_read_header(AVFormatContext *s)
     par->codec_id               = AV_CODEC_ID_ADPCM_IMA_SSI;
     par->format                 = AV_SAMPLE_FMT_S16;
 
-    if (hdr.stereo) {
-        par->channel_layout     = AV_CH_LAYOUT_STEREO;
-        par->channels           = 2;
-    } else {
-        par->channel_layout     = AV_CH_LAYOUT_MONO;
-        par->channels           = 1;
-    }
-
+    av_channel_layout_default(&par->ch_layout, !!hdr.stereo + 1);
     par->sample_rate            = hdr.sample_rate;
     par->bits_per_coded_sample  = 4;
     par->block_align            = 1;
-    par->bit_rate               = par->channels *
+    par->bit_rate               = par->ch_layout.nb_channels *
                                   (uint64_t)par->sample_rate *
                                   par->bits_per_coded_sample;
 
@@ -90,7 +83,7 @@ static int kvag_read_header(AVFormatContext *s)
     st->start_time              = 0;
     st->duration                = hdr.data_size *
                                   (8 / par->bits_per_coded_sample) /
-                                  par->channels;
+                                  par->ch_layout.nb_channels;
 
     return 0;
 }
@@ -105,7 +98,7 @@ static int kvag_read_packet(AVFormatContext *s, AVPacket *pkt)
 
     pkt->flags          &= ~AV_PKT_FLAG_CORRUPT;
     pkt->stream_index   = 0;
-    pkt->duration       = ret * (8 / par->bits_per_coded_sample) / par->channels;
+    pkt->duration       = ret * (8 / par->bits_per_coded_sample) / par->ch_layout.nb_channels;
 
     return 0;
 }
@@ -147,7 +140,7 @@ static int kvag_write_init(AVFormatContext *s)
         return AVERROR(EINVAL);
     }
 
-    if (par->channels > 2) {
+    if (par->ch_layout.nb_channels > 2) {
         av_log(s, AV_LOG_ERROR, "KVAG files only support up to 2 channels\n");
         return AVERROR(EINVAL);
     }
@@ -168,7 +161,7 @@ static int kvag_write_header(AVFormatContext *s)
     AV_WL32(buf +  0, KVAG_TAG);
     AV_WL32(buf +  4, 0); /* Data size, we fix this up later. */
     AV_WL32(buf +  8, par->sample_rate);
-    AV_WL16(buf + 12, par->channels == 2);
+    AV_WL16(buf + 12, par->ch_layout.nb_channels == 2);
 
     avio_write(s->pb, buf, sizeof(buf));
     return 0;
-- 
2.34.1



More information about the ffmpeg-devel mailing list