1 #ifndef muxer_HEADER_GUARD 2 #define muxer_HEADER_GUARD 62 uint32_t missing, ccf;
63 std::string format_name;
66 AVFormatContext *av_format_ctx;
67 AVIOContext *avio_ctx;
68 uint8_t *avio_ctx_buffer;
70 std::vector<AVCodecContext*> codec_contexes;
71 std::vector<AVStream*> streams;
72 AVFormatContext *av_format_context;
74 AVDictionary *av_dict;
77 static const size_t avio_ctx_buffer_size = 4096;
103 static int write_packet(
void *opaque, uint8_t *buf,
int buf_size);
104 static int read_packet(
void *opaque, uint8_t *buf,
int buf_size) {
return 0;}
105 static int64_t seek(
void *opaque, int64_t offset,
int whence) {
return 0;}
virtual void go(Frame *frame)
Does the actual filtering/modification to the Frame. Define in subclass.
Definition: muxer.cpp:229
void initMux()
Open file, reserve codec_contexes, streams, write preamble, set initialized=true if success...
Definition: muxer.cpp:79
Custom payload Frame.
Definition: frame.h:160
Constant/default values, version numbers.
std::mutex mutex
Mutex protecting the "active" boolean.
Definition: muxer.h:80
bool ready
Got enough setup frames.
Definition: muxer.h:57
void deActivate()
Stop streaming // <pyapi>
Definition: muxer.cpp:418
bool active
Writing to file has been requested (but not necessarily achieved..)
Definition: muxer.h:56
FrameFilter * next
The next frame filter in the chain to be applied.
Definition: framefilter.h:60
std::vector< SetupFrame > setupframes
deep copies of the arrived setup frames
Definition: muxer.h:84
void closeMux()
Close file, dealloc codec_contexes, streams.
Definition: muxer.cpp:192
long int mstimestamp0
Time of activation (i.e. when the recording started)
Definition: muxer.h:59
Definition of FrameFilter and derived classes for various purposes.
long int zerotime
Start time set explicitly by the user.
Definition: muxer.h:60
void activate(long int zerotime=0)
Request streaming to asap (when config frames have arrived) // <pyapi>
Definition: muxer.cpp:407
Frame: An abstract queueable class.
Definition: frame.h:108
bool initialized
File was opened ok : codec_contexes, streams and av_format_context reserved (should be freed at some ...
Definition: muxer.h:58
The mother class of all frame filters! FrameFilters are used to create "filter chains".
Definition: framefilter.h:46
std::condition_variable condition
Condition variable for the mutex.
Definition: muxer.h:81
virtual void defineMux()=0
Define container format (format_name) & muxing parameters (av_dict). Define in child classes...