mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-06-24 17:07:51 +08:00
In the current implementation of rtp_parse_packet(), finalize_packet() is
called for all packets with an internal handler function but only for non-first packets from dynamic payload parse_packet() handlers. This patch fixes that. Bug was noticed by Luca in "[PATCH] rtpdec.c: don't overwrite pkt->stream_index in finalize_packet()" thread. Originally committed as revision 17764 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
@ -473,6 +473,7 @@ int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt,
|
|||||||
s->read_buf_index = 0;
|
s->read_buf_index = 0;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
} else if (s->parse_packet) {
|
} else if (s->parse_packet) {
|
||||||
rv = s->parse_packet(s->ic, s->dynamic_protocol_context,
|
rv = s->parse_packet(s->ic, s->dynamic_protocol_context,
|
||||||
s->st, pkt, ×tamp, buf, len, flags);
|
s->st, pkt, ×tamp, buf, len, flags);
|
||||||
@ -535,10 +536,11 @@ int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt,
|
|||||||
memcpy(pkt->data, buf, len);
|
memcpy(pkt->data, buf, len);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// now perform timestamp things....
|
// now perform timestamp things....
|
||||||
finalize_packet(s, pkt, timestamp);
|
finalize_packet(s, pkt, timestamp);
|
||||||
}
|
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user