mirror of
https://github.com/nyanmisaka/ffmpeg-rockchip.git
synced 2025-10-16 22:01:15 +08:00
lavc: use packet duration for subtitles if necessary.
Fix trac ticket #2397.
This commit is contained in:
@@ -2229,6 +2229,14 @@ int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub,
|
|||||||
ret = avctx->codec->decode(avctx, sub, got_sub_ptr, &pkt_recoded);
|
ret = avctx->codec->decode(avctx, sub, got_sub_ptr, &pkt_recoded);
|
||||||
av_assert1((ret >= 0) >= !!*got_sub_ptr &&
|
av_assert1((ret >= 0) >= !!*got_sub_ptr &&
|
||||||
!!*got_sub_ptr >= !!sub->num_rects);
|
!!*got_sub_ptr >= !!sub->num_rects);
|
||||||
|
|
||||||
|
if (sub->num_rects && !sub->end_display_time && avpkt->duration &&
|
||||||
|
avctx->pkt_timebase.num) {
|
||||||
|
AVRational ms = { 1, 1000 };
|
||||||
|
sub->end_display_time = av_rescale_q(avpkt->duration,
|
||||||
|
avctx->pkt_timebase, ms);
|
||||||
|
}
|
||||||
|
|
||||||
if (tmp.data != pkt_recoded.data) { // did we recode?
|
if (tmp.data != pkt_recoded.data) { // did we recode?
|
||||||
/* prevent from destroying side data from original packet */
|
/* prevent from destroying side data from original packet */
|
||||||
pkt_recoded.side_data = NULL;
|
pkt_recoded.side_data = NULL;
|
||||||
|
Reference in New Issue
Block a user