AvTranscoder  0.9.4
C++APIforLibav/FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
VideoReader.cpp
Go to the documentation of this file.
1 #include "VideoReader.hpp"
2 
8 
9 namespace avtranscoder
10 {
11 
12 VideoReader::VideoReader(const std::string& filename, const size_t videoStreamIndex)
13  : IReader(filename, videoStreamIndex)
14  , _videoStreamProperties(NULL)
15  , _outputWidth(0)
16  , _outputHeight(0)
17  , _outputPixelProperties("rgb24")
18 {
19  init();
20 }
21 
22 VideoReader::VideoReader(InputFile& inputFile, const size_t videoStreamIndex)
23  : IReader(inputFile, videoStreamIndex)
24  , _videoStreamProperties(NULL)
25  , _outputWidth(0)
26  , _outputHeight(0)
27  , _outputPixelProperties("rgb24")
28 {
29  init();
30 }
31 
33 {
34  // analyse InputFile
36  _inputFile->analyse(p);
40 
41  // setup decoder
45 
46  // generator
48 
49  // create transform
50  _transform = new VideoTransform();
51 
52  // create src frame
54  VideoFrame* srcFrame = static_cast<VideoFrame*>(_srcFrame);
55  // create dst frame
56  _outputWidth = srcFrame->getWidth();
57  _outputHeight = srcFrame->getHeight();
59 }
60 
62 {
63  delete _decoder;
64  delete _generator;
65  delete _srcFrame;
66  delete _dstFrame;
67  delete _transform;
68 }
69 
70 void VideoReader::updateOutput(const size_t width, const size_t height, const std::string& pixelFormat)
71 {
72  _outputWidth = width;
73  _outputHeight = height;
75  // update dst frame
76  delete _dstFrame;
78 }
79 }
IDecoder * _generator
Definition: IReader.hpp:70
Description to create a video frame.
Definition: VideoFrame.hpp:21
This class describes decoded video data.
Definition: VideoFrame.hpp:43
IDecoder * _decoder
Definition: IReader.hpp:69
const VideoProperties * _videoStreamProperties
Properties of the source video stream read (no ownership, has link)
Definition: VideoReader.hpp:47
void analyse(IProgress &progress, const EAnalyseLevel level=eAnalyseLevelFirstGop)
Run the analyse on the file after a setup. call this function before getProperties().
Definition: InputFile.cpp:51
PixelProperties _outputPixelProperties
Definition: VideoReader.hpp:53
Based class to read a stream.
Definition: IReader.hpp:18
VideoReader(const std::string &filename, const size_t videoStreamIndex=0)
Definition: VideoReader.cpp:12
const avtranscoder::StreamProperties & getStreamPropertiesWithIndex(const size_t streamIndex) const
virtual void setupDecoder(const ProfileLoader::Profile &profile=ProfileLoader::Profile())
Setup the decoder.
Definition: IDecoder.hpp:21
void activateStream(const size_t streamIndex, const bool activate=true)
Activate the indicated stream.
Definition: InputFile.cpp:108
const FileProperties & getProperties() const
Return media properties on the current InputFile.
Definition: InputFile.hpp:71
InputFile * _inputFile
Definition: IReader.hpp:67
AVPixelFormat getOutputPixelFormat() const
Definition: VideoReader.hpp:37
ITransform * _transform
Definition: IReader.hpp:76
const StreamProperties * _streamProperties
Definition: IReader.hpp:68
VideoCodec & getVideoCodec()
Definition: InputStream.cpp:75
VideoFrameDesc getVideoFrameDesc() const
Definition: VideoCodec.cpp:24
void updateOutput(const size_t width, const size_t height, const std::string &pixelFormat)
Update width, height and pixelFormat of the output.
Definition: VideoReader.cpp:70
InputStream & getStream(size_t index)
Get stream type: video, audio, subtitle, etc.
Definition: InputFile.cpp:113
IDecoder * _currentDecoder
Link to _inputDecoder or _generator.
Definition: IReader.hpp:71
Implementation of IProgress, to manage cases when we need an IProgress but don't care of a progress b...
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy