diff options
author | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2016-04-26 14:01:45 +0100 |
---|---|---|
committer | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2016-04-26 14:01:45 +0100 |
commit | 8e73574d4f176d166f08959f6c84e6bc3ffef79c (patch) | |
tree | 710197681d52960fd9cc2a093314d10f4e24c91c /libavcodec | |
parent | 3c4ca4c5d7992e545a6cbad440287f9e27f1a696 (diff) | |
parent | 8229eff4b7a98ae5d85bb75f3bb072781b4a8ebe (diff) | |
download | ffmpeg-8e73574d4f176d166f08959f6c84e6bc3ffef79c.tar.gz |
Merge commit '8229eff4b7a98ae5d85bb75f3bb072781b4a8ebe'
* commit '8229eff4b7a98ae5d85bb75f3bb072781b4a8ebe':
h2645_parse: add a function for uninitializing the packet
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/h2645_parse.c | 10 | ||||
-rw-r--r-- | libavcodec/h2645_parse.h | 5 | ||||
-rw-r--r-- | libavcodec/hevc.c | 7 | ||||
-rw-r--r-- | libavcodec/hevc_parser.c | 7 |
4 files changed, 17 insertions, 12 deletions
diff --git a/libavcodec/h2645_parse.c b/libavcodec/h2645_parse.c index 373f1d3066..58c9118019 100644 --- a/libavcodec/h2645_parse.c +++ b/libavcodec/h2645_parse.c @@ -295,3 +295,13 @@ int ff_h2645_packet_split(H2645Packet *pkt, const uint8_t *buf, int length, return 0; } +void ff_h2645_packet_uninit(H2645Packet *pkt) +{ + int i; + for (i = 0; i < pkt->nals_allocated; i++) { + av_freep(&pkt->nals[i].rbsp_buffer); + av_freep(&pkt->nals[i].skipped_bytes_pos); + } + av_freep(&pkt->nals); + pkt->nals_allocated = 0; +} diff --git a/libavcodec/h2645_parse.h b/libavcodec/h2645_parse.h index 1724756872..05c21b03dc 100644 --- a/libavcodec/h2645_parse.h +++ b/libavcodec/h2645_parse.h @@ -65,4 +65,9 @@ int ff_h2645_extract_rbsp(const uint8_t *src, int length, int ff_h2645_packet_split(H2645Packet *pkt, const uint8_t *buf, int length, AVCodecContext *avctx, int is_nalff, int nal_length_size); +/** + * Free all the allocated memory in the packet. + */ +void ff_h2645_packet_uninit(H2645Packet *pkt); + #endif /* AVCODEC_H2645_PARSE_H */ diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c index f012c41926..27b1640c08 100644 --- a/libavcodec/hevc.c +++ b/libavcodec/hevc.c @@ -3111,12 +3111,7 @@ static av_cold int hevc_decode_free(AVCodecContext *avctx) s->HEVClc = NULL; av_freep(&s->HEVClcList[0]); - for (i = 0; i < s->pkt.nals_allocated; i++) { - av_freep(&s->pkt.nals[i].rbsp_buffer); - av_freep(&s->pkt.nals[i].skipped_bytes_pos); - } - av_freep(&s->pkt.nals); - s->pkt.nals_allocated = 0; + ff_h2645_packet_uninit(&s->pkt); return 0; } diff --git a/libavcodec/hevc_parser.c b/libavcodec/hevc_parser.c index 71887a8e91..458a2ebd61 100644 --- a/libavcodec/hevc_parser.c +++ b/libavcodec/hevc_parser.c @@ -472,12 +472,7 @@ static void hevc_parser_close(AVCodecParserContext *s) ctx->ps.sps = NULL; - for (i = 0; i < ctx->pkt.nals_allocated; i++) { - av_freep(&ctx->pkt.nals[i].rbsp_buffer); - av_freep(&ctx->pkt.nals[i].skipped_bytes_pos); - } - av_freep(&ctx->pkt.nals); - ctx->pkt.nals_allocated = 0; + ff_h2645_packet_uninit(&ctx->pkt); av_freep(&ctx->pc.buffer); } |