aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat/mxg.c
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2018-02-27 00:09:47 -0300
committerJames Almer <jamrial@gmail.com>2018-03-02 12:26:09 -0300
commit6ce5dd228c40159c774543425dd1f94a5d670542 (patch)
treea616e6341a9b50c40d618f71905aa36582c36834 /libavformat/mxg.c
parentaa294ad00a497d07931914027267cd4964425ca3 (diff)
downloadffmpeg-6ce5dd228c40159c774543425dd1f94a5d670542.tar.gz
avformat/mxg: return reference counted packets
Reviewed-by: wm4 <nfxjfg@googlemail.com> Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavformat/mxg.c')
-rw-r--r--libavformat/mxg.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/libavformat/mxg.c b/libavformat/mxg.c
index 6fbf99cfa3..fe5879ecf0 100644
--- a/libavformat/mxg.c
+++ b/libavformat/mxg.c
@@ -169,11 +169,14 @@ static int mxg_read_packet(AVFormatContext *s, AVPacket *pkt)
continue;
}
+ size = mxg->buffer_ptr - mxg->soi_ptr;
+ ret = av_new_packet(pkt, size);
+ if (ret < 0)
+ return ret;
+ memcpy(pkt->data, mxg->soi_ptr, size);
+
pkt->pts = pkt->dts = mxg->dts;
pkt->stream_index = 0;
- pkt->buf = NULL;
- pkt->size = mxg->buffer_ptr - mxg->soi_ptr;
- pkt->data = mxg->soi_ptr;
if (mxg->soi_ptr - mxg->buffer > mxg->cache_size) {
if (mxg->cache_size > 0) {
@@ -206,12 +209,14 @@ static int mxg_read_packet(AVFormatContext *s, AVPacket *pkt)
mxg->buffer_ptr += size;
if (marker == APP13 && size >= 16) { /* audio data */
+ ret = av_new_packet(pkt, size - 14);
+ if (ret < 0)
+ return ret;
+ memcpy(pkt->data, startmarker_ptr + 16, size - 14);
+
/* time (GMT) of first sample in usec since 1970, little-endian */
pkt->pts = pkt->dts = AV_RL64(startmarker_ptr + 8);
pkt->stream_index = 1;
- pkt->buf = NULL;
- pkt->size = size - 14;
- pkt->data = startmarker_ptr + 16;
if (startmarker_ptr - mxg->buffer > mxg->cache_size) {
if (mxg->cache_size > 0) {