{ \r
static const AVRational base_q = {1, AV_TIME_BASE};\r
\r
- // Convert from frames into seconds.\r
- auto seek_target = frame;//*static_cast<int64_t>(AV_TIME_BASE/fps_);\r
-\r
- int stream_index = -1;//video_stream_.index() >= 0 ? video_stream_.index() : audio_stream_.index();\r
-\r
- //if(stream_index >= 0) \r
- // seek_target = av_rescale_q(seek_target, base_q, format_context_->streams[stream_index]->time_base);\r
-\r
- const int errn = av_seek_frame(format_context_.get(), stream_index, seek_target, flags);\r
+ int stream_index = av_find_default_stream_index(format_context_.get());\r
+ \r
+ if(stream_index < 0)\r
+ { \r
+ BOOST_THROW_EXCEPTION(\r
+ invalid_operation() << \r
+ source_info(narrow(print())) << \r
+ msg_info(av_error_str(stream_index)) <<\r
+ boost::errinfo_api_function("av_find_default_stream_index") <<\r
+ boost::errinfo_errno(AVUNERROR(stream_index)));\r
+ }\r
+ \r
+ const int errn = av_seek_frame(format_context_.get(), stream_index, frame, flags);\r
if(errn < 0)\r
{ \r
BOOST_THROW_EXCEPTION(\r