Hi Carl, The following is how I seek a frame backward: AVStream *stream =
m_format_ctx->streams[m_video_index]; int64_t time_av_time_base = 1 *
AV_TIME_BASE / stream->avg_frame_rate.num; int64_t frame_span =
av_rescale_q(time_av_time_base, AV_TIME_BASE_Q, stream->time_base); int64_t
timestamp = m_current_pts - m_frame_span; int ok = av_seek_frame(m_format_ctx,
m_video_index, timestamp, AVSEEK_FLAG_BACKWARD);
avcodec_flush_buffers(m_codec_ctx); If there is no straight way to solve this
problem, I'd consider the cache frames method. And do you konw >is there any
convenient way to know the index of the frame, which is now playing? Thanks
very much. BR xftzg At 2013-03-25 18:42:53,"Carl Eugen Hoyos" wrote: >xftzg
writes: > >> I want to perform a 'Step Forwards/Backwards' operation in my
player > >This is not a trivial task. >I believe there are two main approaches:
>You can cache as many frames as you believe the user will want >to step
backwards or you seek backwards to the next
keyframe >and decode (again) until the requested frame (this may take
>considerable time). >If your problem is that you cannot seek backwards to a
keyframe, >please post code that allows to test this. > >Carl Eugen >
>_______________________________________________ >Libav-user mailing list
>[email protected] >http://ffmpeg.org/mailman/listinfo/libav-user
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user