diff options
Diffstat (limited to 'libavcodec/encode.c')
-rw-r--r-- | libavcodec/encode.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libavcodec/encode.c b/libavcodec/encode.c index bd66f138a3..a774dc28dc 100644 --- a/libavcodec/encode.c +++ b/libavcodec/encode.c @@ -361,6 +361,14 @@ static int encode_send_frame_internal(AVCodecContext *avctx, const AVFrame *src) AVFrame *dst = avci->buffer_frame; int ret; + /* make sure the frame's timebase (if set) matches the encoder one */ + if (src->time_base.num && + (src->time_base.num != avctx->time_base.num || + src->time_base.den != avctx->time_base.den)) { + av_log(avctx, AV_LOG_ERROR, "Mismatching frame/encoder time base\n"); + return AVERROR(EINVAL); + } + if (avctx->codec->type == AVMEDIA_TYPE_AUDIO) { /* extract audio service type metadata */ AVFrameSideData *sd = av_frame_get_side_data(src, AV_FRAME_DATA_AUDIO_SERVICE_TYPE); |