]> git.sesse.net Git - ffmpeg/commitdiff
avformat/smacker: Cosmetics
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Sun, 29 Mar 2020 08:28:29 +0000 (10:28 +0200)
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Wed, 8 Apr 2020 14:23:07 +0000 (16:23 +0200)
This is mainly about improving legibility of the code and getting rid of
overlong lines by using variables for st->codecpar instead of accessing
the codecparameters via st->codecpar->.

Also, some code has been moved to better fitting places.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
libavformat/smacker.c

index c934615c54ebfd7502ecc2b3e092653f28cc0ac5..8b1e185817edf4dba93d598680bd2fa7cdc2c270 100644 (file)
@@ -91,6 +91,7 @@ static int smacker_read_header(AVFormatContext *s)
     AVIOContext *pb = s->pb;
     SmackerContext *smk = s->priv_data;
     AVStream *st;
+    AVCodecParameters *par;
     uint32_t magic, width, height, flags, treesize;
     int i, ret, pts_inc;
     int tbase;
@@ -129,6 +130,7 @@ static int smacker_read_header(AVFormatContext *s)
     if (!st)
         return AVERROR(ENOMEM);
 
+    smk->videoindex = st->index;
     /* Smacker uses 100000 as internal timebase */
     if (pts_inc < 0)
         pts_inc = -pts_inc;
@@ -137,23 +139,28 @@ static int smacker_read_header(AVFormatContext *s)
     tbase = 100000;
     av_reduce(&tbase, &pts_inc, tbase, pts_inc, (1UL << 31) - 1);
     avpriv_set_pts_info(st, 33, pts_inc, tbase);
+    st->duration = smk->frames;
 
     /* init video codec */
-    st->codecpar->width     = width;
-    st->codecpar->height    = height;
-    st->codecpar->codec_tag = magic;
-
-    if ((ret = ff_alloc_extradata(st->codecpar, treesize + 16)) < 0) {
+    par = st->codecpar;
+    par->width      = width;
+    par->height     = height;
+    par->format     = AV_PIX_FMT_PAL8;
+    par->codec_type = AVMEDIA_TYPE_VIDEO;
+    par->codec_id   = AV_CODEC_ID_SMACKVIDEO;
+    par->codec_tag  = magic;
+
+    if ((ret = ff_alloc_extradata(par, treesize + 16)) < 0) {
         av_log(s, AV_LOG_ERROR,
                "Cannot allocate %"PRIu32" bytes of extradata\n",
                treesize + 16);
         return ret;
     }
-    if ((ret = ffio_read_size(pb, st->codecpar->extradata, 16)) < 0)
+    if ((ret = ffio_read_size(pb, par->extradata, 16)) < 0)
         return ret;
 
     /* handle possible audio streams */
-    for(i = 0; i < 7; i++) {
+    for (i = 0; i < 7; i++) {
         uint32_t rate = avio_rl24(pb);
         uint8_t aflag = avio_r8(pb);
 
@@ -161,40 +168,44 @@ static int smacker_read_header(AVFormatContext *s)
 
         if (rate) {
             AVStream *ast = avformat_new_stream(s, NULL);
+            AVCodecParameters *par;
             if (!ast)
                 return AVERROR(ENOMEM);
 
             smk->indexes[i] = ast->index;
-            ast->codecpar->codec_type = AVMEDIA_TYPE_AUDIO;
+            par = ast->codecpar;
+            par->codec_type = AVMEDIA_TYPE_AUDIO;
             if (aflag & SMK_AUD_BINKAUD) {
-                ast->codecpar->codec_id  = AV_CODEC_ID_BINKAUDIO_RDFT;
+                par->codec_id  = AV_CODEC_ID_BINKAUDIO_RDFT;
             } else if (aflag & SMK_AUD_USEDCT) {
-                ast->codecpar->codec_id  = AV_CODEC_ID_BINKAUDIO_DCT;
+                par->codec_id  = AV_CODEC_ID_BINKAUDIO_DCT;
             } else if (aflag & SMK_AUD_PACKED) {
-                ast->codecpar->codec_id  = AV_CODEC_ID_SMACKAUDIO;
-                ast->codecpar->codec_tag = MKTAG('S', 'M', 'K', 'A');
+                par->codec_id  = AV_CODEC_ID_SMACKAUDIO;
+                par->codec_tag = MKTAG('S', 'M', 'K', 'A');
             } else {
-                ast->codecpar->codec_id  = AV_CODEC_ID_PCM_U8;
+                par->codec_id  = AV_CODEC_ID_PCM_U8;
             }
             if (aflag & SMK_AUD_STEREO) {
-                ast->codecpar->channels       = 2;
-                ast->codecpar->channel_layout = AV_CH_LAYOUT_STEREO;
+                par->channels       = 2;
+                par->channel_layout = AV_CH_LAYOUT_STEREO;
             } else {
-                ast->codecpar->channels       = 1;
-                ast->codecpar->channel_layout = AV_CH_LAYOUT_MONO;
+                par->channels       = 1;
+                par->channel_layout = AV_CH_LAYOUT_MONO;
             }
-            ast->codecpar->sample_rate = rate;
-            ast->codecpar->bits_per_coded_sample = (aflag & SMK_AUD_16BITS) ? 16 : 8;
-            if (ast->codecpar->bits_per_coded_sample == 16 &&
-                ast->codecpar->codec_id == AV_CODEC_ID_PCM_U8)
-                ast->codecpar->codec_id = AV_CODEC_ID_PCM_S16LE;
-            avpriv_set_pts_info(ast, 64, 1, ast->codecpar->sample_rate
-                    * ast->codecpar->channels * ast->codecpar->bits_per_coded_sample / 8);
+            par->sample_rate = rate;
+            par->bits_per_coded_sample = (aflag & SMK_AUD_16BITS) ? 16 : 8;
+            if (par->bits_per_coded_sample == 16 &&
+                par->codec_id == AV_CODEC_ID_PCM_U8)
+                par->codec_id = AV_CODEC_ID_PCM_S16LE;
+            avpriv_set_pts_info(ast, 64, 1, par->sample_rate * par->channels
+                                            * par->bits_per_coded_sample / 8);
         }
     }
+
     avio_rl32(pb); /* padding */
+
     /* setup data */
-    smk->frm_size = av_malloc_array(smk->frames, sizeof(*smk->frm_size));
+    smk->frm_size  = av_malloc_array(smk->frames, sizeof(*smk->frm_size));
     smk->frm_flags = av_malloc(smk->frames);
     if (!smk->frm_size || !smk->frm_flags) {
         av_freep(&smk->frm_size);
@@ -203,22 +214,16 @@ static int smacker_read_header(AVFormatContext *s)
     }
 
     /* read frame info */
-    for(i = 0; i < smk->frames; i++) {
+    for (i = 0; i < smk->frames; i++) {
         smk->frm_size[i] = avio_rl32(pb);
     }
-    for(i = 0; i < smk->frames; i++) {
+    for (i = 0; i < smk->frames; i++) {
         smk->frm_flags[i] = avio_r8(pb);
     }
 
-    smk->videoindex = st->index;
-    st->codecpar->format = AV_PIX_FMT_PAL8;
-    st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO;
-    st->codecpar->codec_id = AV_CODEC_ID_SMACKVIDEO;
-    st->duration = smk->frames;
-
     /* load trees to extradata, they will be unpacked by decoder */
-    ret = avio_read(pb, st->codecpar->extradata + 16, st->codecpar->extradata_size - 16);
-    if(ret != st->codecpar->extradata_size - 16){
+    ret = avio_read(pb, par->extradata + 16, par->extradata_size - 16);
+    if (ret != par->extradata_size - 16) {
         av_freep(&smk->frm_size);
         av_freep(&smk->frm_flags);
         return AVERROR(EIO);