X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fffmpeg%2Fproducer%2Fvideo%2Fvideo_decoder.h;h=d954dc05b05610a1d8b24d26b8cd03b7a75e573a;hb=726897adbf881d3b75f171fff24f2b917ba5f05a;hp=5cc1aea1dcca1ab2867ee8bc5553e328003049a8;hpb=cd1a44a41dd64c05de067ba728c285f001b66bf3;p=casparcg diff --git a/modules/ffmpeg/producer/video/video_decoder.h b/modules/ffmpeg/producer/video/video_decoder.h index 5cc1aea1d..d954dc05b 100644 --- a/modules/ffmpeg/producer/video/video_decoder.h +++ b/modules/ffmpeg/producer/video/video_decoder.h @@ -1,5 +1,5 @@ /* -* Copyright (c) 2011 Sveriges Television AB +* Copyright 2013 Sveriges Television AB http://casparcg.com/ * * This file is part of CasparCG (www.casparcg.com). * @@ -22,44 +22,43 @@ #pragma once #include -#include - -#include #include -#include struct AVFormatContext; struct AVFrame; struct AVPacket; -namespace caspar { namespace ffmpeg { +namespace caspar { + +namespace core { + class frame_factory; + class write_frame; +} -class video_decoder : public boost::noncopyable +namespace ffmpeg { + +class video_decoder : boost::noncopyable { public: - explicit video_decoder(class input& input, bool single_threaded); + explicit video_decoder(const spl::shared_ptr& context); - video_decoder(video_decoder&& other); - video_decoder& operator=(video_decoder&& other); - - std::shared_ptr operator()(); + bool ready() const; + void push(const std::shared_ptr& packet); + std::shared_ptr poll(); - int width() const; - int height() const; - bool is_progressive() const; - uint32_t file_frame_number() const; - boost::rational framerate() const; + int width() const; + int height() const; - uint32_t nb_frames() const; + uint32_t nb_frames() const; + uint32_t file_frame_number() const; + bool is_progressive() const; - std::wstring print() const; - - core::monitor::subject& monitor_output(); + std::wstring print() const; private: - struct impl; - spl::shared_ptr impl_; + struct implementation; + spl::shared_ptr impl_; }; }} \ No newline at end of file