X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fffmpeg.h;h=9a9f855249a1caf83434e00b998de1b8153e5c01;hp=e70bcbfb266f404beba4ab9491d03a243d5c34f6;hb=243336668c89096732786c6b3f3c5918aa2eff26;hpb=51fdff4109828a112ac1006a92bdbdd1ba9b18a5 diff --git a/cinelerra-5.1/cinelerra/ffmpeg.h b/cinelerra-5.1/cinelerra/ffmpeg.h index e70bcbfb..9a9f8552 100644 --- a/cinelerra-5.1/cinelerra/ffmpeg.h +++ b/cinelerra-5.1/cinelerra/ffmpeg.h @@ -80,9 +80,9 @@ public: 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); @@ -145,11 +145,13 @@ class FFAudioStream : public FFStream { 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(); int is_audio() { return 1; } int is_video() { return 0; } + void init_swr(int ichs, int ifmt, int irate); int get_samples(float *&samples, uint8_t **data, int len); int load_history(uint8_t **data, int len); int decode_frame(AVFrame *frame); @@ -168,6 +170,7 @@ public: int load(int64_t pos, int len); int audio_seek(int64_t pos); int encode(double **samples, int len); + int drain(); int idx; int channel0, channels; @@ -176,6 +179,7 @@ public: int64_t length; SwrContext *resample_context; + int swr_ichs, swr_ifmt, swr_irate; int aud_bfr_sz; float *aud_bfr; }; @@ -202,6 +206,7 @@ public: }; class FFVideoStream : public FFStream, public FFVideoConvert { + int write_packet(FFPacket &pkt); public: FFVideoStream(FFMPEG *ffmpeg, AVStream *strm, int idx, int fidx); virtual ~FFVideoStream(); @@ -217,6 +222,7 @@ public: int load(VFrame *vframe, int64_t pos); int video_seek(int64_t pos); int encode(VFrame *vframe); + int drain(); int idx; double frame_rate; @@ -344,6 +350,7 @@ public: const char *ff_video_format(int stream); int64_t ff_video_frames(int stream); int ff_video_pid(int stream); + int ff_video_mpeg_color_range(int stream); int ff_cpus(); void dump_context(AVCodecContext *ctx);