Prevent dts generation code to be executed when delay is > MAX_REORDER_DELAY,
this fixes overflow in AVStream->pts_buffer. Originally committed as revision 14714 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
ebc22cc29f
commit
cb5b96cde0
@ -895,7 +895,7 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(pkt->pts != AV_NOPTS_VALUE){
|
if(pkt->pts != AV_NOPTS_VALUE && delay <= MAX_REORDER_DELAY){
|
||||||
st->pts_buffer[0]= pkt->pts;
|
st->pts_buffer[0]= pkt->pts;
|
||||||
for(i=1; i<delay+1 && st->pts_buffer[i] == AV_NOPTS_VALUE; i++)
|
for(i=1; i<delay+1 && st->pts_buffer[i] == AV_NOPTS_VALUE; i++)
|
||||||
st->pts_buffer[i]= (i-delay-1) * pkt->duration;
|
st->pts_buffer[i]= (i-delay-1) * pkt->duration;
|
||||||
@ -2524,7 +2524,7 @@ static int compute_pkt_fields2(AVStream *st, AVPacket *pkt){
|
|||||||
}
|
}
|
||||||
|
|
||||||
//calculate dts from pts
|
//calculate dts from pts
|
||||||
if(pkt->pts != AV_NOPTS_VALUE && pkt->dts == AV_NOPTS_VALUE){
|
if(pkt->pts != AV_NOPTS_VALUE && pkt->dts == AV_NOPTS_VALUE && delay <= MAX_REORDER_DELAY){
|
||||||
st->pts_buffer[0]= pkt->pts;
|
st->pts_buffer[0]= pkt->pts;
|
||||||
for(i=1; i<delay+1 && st->pts_buffer[i] == AV_NOPTS_VALUE; i++)
|
for(i=1; i<delay+1 && st->pts_buffer[i] == AV_NOPTS_VALUE; i++)
|
||||||
st->pts_buffer[i]= (i-delay-1) * pkt->duration;
|
st->pts_buffer[i]= (i-delay-1) * pkt->duration;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user