aspect ratio fixes for dvd/bd create, TZ fix
[goodguy/history.git] / cinelerra-5.0 / cinelerra / ffmpeg.h
index 040bdcda3dfd148e16e0baa049f4eb04a33e6ad7..8400751bc5f63329f8c6271c2d509f88e7675b79 100644 (file)
@@ -77,9 +77,12 @@ public:
        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;
@@ -153,6 +156,7 @@ public:
        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);
 
@@ -183,6 +187,7 @@ public:
        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);
 
@@ -222,7 +227,7 @@ public:
 
        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, ...);
@@ -235,7 +240,7 @@ public:
        int get_encoder(FILE *fp,
                char *format, char *codec, char *bsfilter, char *bsargs);
        int read_options(const char *options, AVDictionary *&opts);
-       int scan_options(const char *options, AVDictionary *&opts);
+       int scan_options(const char *options, AVDictionary *&opts, AVStream *st);
        int read_options(FILE *fp, const char *options, AVDictionary *&opts);
        int load_options(const char *options, AVDictionary *&opts);
        static int load_options(const char *path, char *bfr, int len);