]> git.sesse.net Git - ffmpeg/commitdiff
avcodec/hevc: Move skipped_bytes_pos_size_nal into HAVCNAL
authorMichael Niedermayer <michael@niedermayer.cc>
Sun, 12 Jul 2015 22:35:11 +0000 (00:35 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Sun, 12 Jul 2015 22:38:15 +0000 (00:38 +0200)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/hevc.c
libavcodec/hevc.h
libavcodec/hevc_parse.c

index 1efd0787a8085eb07f77af74cbf7c00fd5fc7ca1..a77672c02e87d3a1116162d41022ebac939746fc 100644 (file)
@@ -2974,7 +2974,6 @@ static av_cold int hevc_decode_free(AVCodecContext *avctx)
     for(i=0; i < s->pkt.nals_allocated; i++) {
         av_freep(&s->skipped_bytes_pos_nal[i]);
     }
-    av_freep(&s->skipped_bytes_pos_size_nal);
     av_freep(&s->skipped_bytes_pos_nal);
 
     av_freep(&s->cabac_state);
index b043e95782584c652495bf9689ba678e5a4a3a56..1699a2491f53bd22fb81e8e4a36e50e825ed21c8 100644 (file)
@@ -761,6 +761,7 @@ typedef struct HEVCNAL {
     int temporal_id;
 
     int skipped_bytes;
+    int skipped_bytes_pos_size_nal;
 } HEVCNAL;
 
 /* an input packet split into unescaped NAL units */
@@ -903,7 +904,6 @@ typedef struct HEVCContext {
     int skipped_bytes_pos_size;
 
     int **skipped_bytes_pos_nal;
-    int *skipped_bytes_pos_size_nal;
 
     const uint8_t *data;
 
index 4741e67ce060d70523e4084d79421af524e0ec0b..01c28d8ea12632631f2fb40bece5077ec8256684 100644 (file)
@@ -218,32 +218,28 @@ int ff_hevc_split_packet(HEVCContext *s, HEVCPacket *pkt, const uint8_t *buf, in
             memset(pkt->nals + pkt->nals_allocated, 0,
                    (new_size - pkt->nals_allocated) * sizeof(*pkt->nals));
 
-            tmp = av_realloc_array(s->skipped_bytes_pos_size_nal, new_size, sizeof(*s->skipped_bytes_pos_size_nal));
-            if (!tmp)
-                return AVERROR(ENOMEM);
-            s->skipped_bytes_pos_size_nal = tmp;
-
             tmp = av_realloc_array(s->skipped_bytes_pos_nal, new_size, sizeof(*s->skipped_bytes_pos_nal));
             if (!tmp)
                 return AVERROR(ENOMEM);
             s->skipped_bytes_pos_nal = tmp;
 
-            s->skipped_bytes_pos_size_nal[pkt->nals_allocated] = 1024; // initial buffer size
-            s->skipped_bytes_pos_nal[pkt->nals_allocated] = av_malloc_array(s->skipped_bytes_pos_size_nal[pkt->nals_allocated], sizeof(*s->skipped_bytes_pos));
+            nal = &pkt->nals[pkt->nb_nals];
+            nal->skipped_bytes_pos_size_nal = 1024; // initial buffer size
+            s->skipped_bytes_pos_nal[pkt->nals_allocated] = av_malloc_array(nal->skipped_bytes_pos_size_nal, sizeof(*s->skipped_bytes_pos));
             if (!s->skipped_bytes_pos_nal[pkt->nals_allocated])
                 return AVERROR(ENOMEM);
 
             pkt->nals_allocated = new_size;
         }
-        s->skipped_bytes_pos_size = s->skipped_bytes_pos_size_nal[pkt->nb_nals];
-        s->skipped_bytes_pos = s->skipped_bytes_pos_nal[pkt->nb_nals];
         nal = &pkt->nals[pkt->nb_nals];
+        s->skipped_bytes_pos_size = nal->skipped_bytes_pos_size_nal;
+        s->skipped_bytes_pos = s->skipped_bytes_pos_nal[pkt->nb_nals];
 
         consumed = ff_hevc_extract_rbsp(s, buf, extract_length, nal);
         if (consumed < 0)
             return consumed;
 
-        s->skipped_bytes_pos_size_nal[pkt->nb_nals] = s->skipped_bytes_pos_size;
+        nal->skipped_bytes_pos_size_nal = s->skipped_bytes_pos_size;
         s->skipped_bytes_pos_nal[pkt->nb_nals++] = s->skipped_bytes_pos;
 
         ret = init_get_bits8(&nal->gb, nal->data, nal->size);