diff --git a/mythtv/external/FFmpeg/libavformat/mpegts.c b/mythtv/external/FFmpeg/libavformat/mpegts.c
index 1d8fbb5..ca0bf8e 100644
--- a/mythtv/external/FFmpeg/libavformat/mpegts.c
+++ b/mythtv/external/FFmpeg/libavformat/mpegts.c
@@ -638,6 +638,7 @@ static void mpegts_push_section(MpegTSFilter *filter, const uint8_t *section, in
     if (sect->new_packet && pkt && sect->st) {
         int pktLen = section_len + 184; /* Add enough for a complete TS payload. */
         sect->new_packet = 0;
+        av_free_packet(pkt);
         if (av_new_packet(pkt, pktLen) == 0) {
             memcpy(pkt->data, section, section_len);
             memset(pkt->data+section_len, 0xff, pktLen-section_len);
