]> git.sesse.net Git - casparcg/commitdiff
2.0.0.2: ffmpeg_producer: Fixed broken SEEK.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 29 Jul 2011 12:07:13 +0000 (12:07 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 29 Jul 2011 12:07:13 +0000 (12:07 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@1012 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

modules/ffmpeg/producer/input.cpp

index ab64f23aa50c69cb42cefa25fbfb72eea57469d8..f5a8a4cc74a937c4db06a719f923a174371555e1 100644 (file)
@@ -223,15 +223,19 @@ private:
        {       \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