return FFStream::encode_frame(frame);
}
+int FFAudioStream::write_packet(FFPacket &pkt)
+{
+ return FFStream::write_packet(pkt);
+}
+
void FFAudioStream::load_markers()
{
IndexState *index_state = ffmpeg->file_base->asset->index_state;
return FFStream::encode_frame(frame);
}
+int FFVideoStream::write_packet(FFPacket &pkt)
+{
+ if( !(ffmpeg->fmt_ctx->oformat->flags & AVFMT_VARIABLE_FPS) )
+ pkt->duration = 1;
+ return FFStream::write_packet(pkt);
+}
+
AVPixelFormat FFVideoConvert::color_model_to_pix_fmt(int color_model)
{
switch( color_model ) {
virtual int encode_activate();
virtual int decode_activate();
+ virtual int write_packet(FFPacket &pkt);
int read_packet();
int seek(int64_t no, double rate);
- int write_packet(FFPacket &pkt);
int flush();
int decode(AVFrame *frame);
void load_markers(IndexMarks &marks, double rate);
int write(const float *fp, long len);
int zero(long len);
int write(const double *dp, long len, int ch);
+ int write_packet(FFPacket &pkt);
public:
FFAudioStream(FFMPEG *ffmpeg, AVStream *strm, int idx, int fidx);
virtual ~FFAudioStream();
};
class FFVideoStream : public FFStream, public FFVideoConvert {
+ int write_packet(FFPacket &pkt);
public:
FFVideoStream(FFMPEG *ffmpeg, AVStream *strm, int idx, int fidx);
virtual ~FFVideoStream();