]> git.sesse.net Git - casparcg/blobdiff - modules/ffmpeg/producer/input/input.cpp
[ffmpeg] Removed unused function in input class.
[casparcg] / modules / ffmpeg / producer / input / input.cpp
index 9103c7b261e8370ad14bfb60aa53118215d269de..83933c50a1b6bc06a0c5afe154123e257d059704 100644 (file)
@@ -19,7 +19,7 @@
 * Author: Robert Nagy, ronag89@gmail.com
 */
 
-#include "../../stdafx.h"
+#include "../../StdAfx.h"
 
 #include "input.h"
 
@@ -41,7 +41,6 @@
 #include <tbb/atomic.h>
 #include <tbb/recursive_mutex.h>
 
-#include <boost/rational.hpp>
 #include <boost/range/algorithm.hpp>
 #include <boost/thread/condition_variable.hpp>
 #include <boost/thread/mutex.hpp>
@@ -80,7 +79,6 @@ struct input::implementation : boost::noncopyable
        const bool                                                                                                      thumbnail_mode_;
        tbb::atomic<bool>                                                                                       loop_;
        uint32_t                                                                                                        frame_number_                   = 0;
-       boost::rational<int>                                                                            framerate_                              = read_framerate(*format_context_, 1);
 
        tbb::concurrent_bounded_queue<std::shared_ptr<AVPacket>>        buffer_;
        tbb::atomic<size_t>                                                                                     buffer_size_;
@@ -252,17 +250,21 @@ struct input::implementation : boost::noncopyable
 
                auto resource_name                      = std::wstring();
                auto parts                                      = caspar::protocol_split(url_or_file);
+               auto protocol                           = parts.at(0);
+               auto path                                       = parts.at(1);
                AVInputFormat* input_format     = nullptr;
 
-               if (parts.at(0).empty())
-                       resource_name = parts.at(1);
-               else if (parts.at(0) == L"dshow")
+               static const std::set<std::wstring> PROTOCOLS_TREATED_AS_FORMATS = { L"dshow", L"v4l2" };
+
+               if (protocol.empty())
+                       resource_name = path;
+               else if (PROTOCOLS_TREATED_AS_FORMATS.find(protocol) != PROTOCOLS_TREATED_AS_FORMATS.end())
                {
-                       input_format = av_find_input_format("dshow");
-                       resource_name = parts.at(1);
+                       input_format = av_find_input_format(u8(protocol).c_str());
+                       resource_name = path;
                }
                else
-                       resource_name = parts.at(0) + L"://" + parts.at(1);
+                       resource_name = protocol + L"://" + path;
 
                AVFormatContext* weak_context = nullptr;
                THROW_ON_ERROR2(avformat_open_input(&weak_context, u8(resource_name).c_str(), input_format, &format_options), resource_name);
@@ -375,11 +377,6 @@ struct input::implementation : boost::noncopyable
        {
                return 0; // TODO
        }
-
-       boost::rational<int> framerate() const
-       {
-               return framerate_;
-       }
 };
 
 input::input(const spl::shared_ptr<diagnostics::graph>& graph, const std::wstring& url_or_file, bool loop, uint32_t start, uint32_t length, bool thumbnail_mode, const ffmpeg_options& vid_params)
@@ -394,6 +391,5 @@ uint32_t input::length() const{return impl_->length_;}
 void input::loop(bool value){impl_->loop_ = value;}
 bool input::loop() const{return impl_->loop_;}
 int input::num_audio_streams() const { return impl_->num_audio_streams(); }
-boost::rational<int> input::framerate() const { return impl_->framerate(); }
 std::future<bool> input::seek(uint32_t target){return impl_->seek(target);}
 }}