From: Hendrik Leppkes Date: Wed, 14 Oct 2015 21:06:06 +0000 (+0200) Subject: Merge commit 'd15368ee3926152a3a301c13cc638fbf7a062ddf' X-Git-Tag: android-x86-7.1-r1~8522 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=15db457ea8f76cd03a371dee548b7dbc60efcb86;p=android-x86%2Fexternal-ffmpeg.git Merge commit 'd15368ee3926152a3a301c13cc638fbf7a062ddf' * commit 'd15368ee3926152a3a301c13cc638fbf7a062ddf': h264: Run VLC init under pthread_once Merged-by: Hendrik Leppkes --- 15db457ea8f76cd03a371dee548b7dbc60efcb86 diff --cc libavcodec/h264.c index 3209c9c4a7,ec57d6d2f7..fff65bc670 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@@ -657,15 -621,15 +659,19 @@@ av_cold int ff_h264_decode_init(AVCodec if (!avctx->has_b_frames) h->low_delay = 1; - ff_h264_decode_init_vlc(); + ret = ff_thread_once(&h264_vlc_init, ff_h264_decode_init_vlc); + if (ret != 0) { + av_log(avctx, AV_LOG_ERROR, "pthread_once has failed."); + return AVERROR_UNKNOWN; + } if (avctx->codec_id == AV_CODEC_ID_H264) { - if (avctx->ticks_per_frame == 1) - h->avctx->framerate.num *= 2; + if (avctx->ticks_per_frame == 1) { + if(h->avctx->time_base.den < INT_MAX/2) { + h->avctx->time_base.den *= 2; + } else + h->avctx->time_base.num /= 2; + } avctx->ticks_per_frame = 2; }