virtual int encode_activate();
virtual int decode_activate();
int read_packet();
+ int write_packet(FFPacket &pkt);
+ int flush();
int decode(AVFrame *frame);
virtual int decode_frame(AVFrame *frame, int &got_frame) = 0;
+ virtual int encode_frame(FFPacket &pkt, AVFrame *frame, int &got_frame) = 0;
virtual int init_frame(AVFrame *frame) = 0;
virtual int create_filter(const char *filter_spec,
AVCodecContext *src_ctx, AVCodecContext *sink_ctx) = 0;
virtual ~FFAudioStream();
int load_history(uint8_t **data, int len);
int decode_frame(AVFrame *frame, int &got_frame);
+ int encode_frame(FFPacket &pkt, AVFrame *frame, int &got_frame);
int create_filter(const char *filter_spec,
AVCodecContext *src_ctx, AVCodecContext *sink_ctx);
FFVideoStream(FFMPEG *ffmpeg, AVStream *strm, int idx);
virtual ~FFVideoStream();
int decode_frame(AVFrame *frame, int &got_frame);
+ int encode_frame(FFPacket &pkt, AVFrame *frame, int &got_frame);
int create_filter(const char *filter_spec,
AVCodecContext *src_ctx, AVCodecContext *sink_ctx);
int check_sample_rate(AVCodec *codec, int sample_rate);
AVRational check_frame_rate(AVCodec *codec, double frame_rate);
- AVRational to_sample_aspect_ratio(double aspect_ratio);
+ AVRational to_sample_aspect_ratio(Asset *asset);
AVRational to_time_base(int sample_rate);
static void set_option_path(char *path, const char *fmt, ...);