1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #pragma once
- #ifdef FFMPEG_ENABLED
- #ifndef VIDEO_STREAM_H_
- #define VIDEO_STREAM_H_
- #include <string>
- #include "Bitmap.h"
- extern "C" {
- # include <libavformat/avformat.h>
- # include <libavformat/avio.h>
- # include <libavcodec/avcodec.h>
- # include <libavformat/avformat.h>
- # include <libavutil/imgutils.h>
- # include <libavutil/opt.h>
- # include <libswscale/swscale.h>
- }
- class VideoStream
- {
- const AVCodec* codec;
- AVCodecContext* codecContext;
- FILE* file;
- AVFrame* picture;
- AVPacket* pkt;
- SwsContext* swsContext;
- static const uint8_t endcode[];
- size_t width;
- size_t height;
- uint64_t frameIndex = 0;
- public:
- VideoStream(::size_t width, ::size_t height, const std::string& filename);
- ~VideoStream(void);
- void addFrame(const Bitmap<RGBColor>& frame);
- };
- #endif // VIDEO_STREAM_H_
- #endif // FFMPEG_ENABLED
|