mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-18 21:45:10 +00:00
avformat/mux: Fix error when writing uncoded frames.
commit "avpacket: Deprecate av_dup_packet" broke the use av_interleaved_write_uncoded_frame as any input uncoded frame has an invalid packet size that will crash when av_packet_ref tries to allocate 'size' new memory. Since the packet is a temporary created within mux.c itself it can be used directly without needing a new ref. Signed-off-by: Matt Oliver <protogonoi@gmail.com>
This commit is contained in:
parent
9079e99d2c
commit
b66ac803fa
@ -832,11 +832,15 @@ int ff_interleave_add_packet(AVFormatContext *s, AVPacket *pkt,
|
||||
if ((pkt->flags & AV_PKT_FLAG_UNCODED_FRAME)) {
|
||||
av_assert0(pkt->size == UNCODED_FRAME_PACKET_SIZE);
|
||||
av_assert0(((AVFrame *)pkt->data)->buf);
|
||||
}
|
||||
|
||||
if ((ret = av_packet_ref(&this_pktl->pkt, pkt)) < 0) {
|
||||
av_free(this_pktl);
|
||||
return ret;
|
||||
this_pktl->pkt = *pkt;
|
||||
pkt->buf = NULL;
|
||||
pkt->side_data = NULL;
|
||||
pkt->side_data_elems = 0;
|
||||
} else {
|
||||
if ((ret = av_packet_ref(&this_pktl->pkt, pkt)) < 0) {
|
||||
av_free(this_pktl);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
if (s->streams[pkt->stream_index]->last_in_packet_buffer) {
|
||||
|
Loading…
Reference in New Issue
Block a user