asset drag/drop to viewers, bluebanana bug, listbox fontlist highlight
[goodguy/history.git] / cinelerra-5.1 / cinelerra / ffmpeg.h
index d60337fb2280fae079886751a8e423c4ea9380b6..f665fa922a5b6afc9e0ce0cabdd168543c7d7431 100644 (file)
@@ -95,6 +95,7 @@ public:
        virtual int create_filter(const char *filter_spec,
                AVCodecContext *src_ctx, AVCodecContext *sink_ctx) = 0;
        virtual void load_markers() = 0;
+       virtual IndexMarks *get_markers() = 0;
        int create_filter(const char *filter_spec);
        int load_filter(AVFrame *frame);
        int read_filter(AVFrame *frame);
@@ -132,7 +133,6 @@ public:
        int frm_count;
        List<FFrame> frms;
        Mutex *frm_lock;
-       IndexMarks *index_markers;
 
        int64_t nudge;
        int64_t seek_pos, curr_pos;
@@ -173,6 +173,7 @@ public:
        int create_filter(const char *filter_spec,
                AVCodecContext *src_ctx, AVCodecContext *sink_ctx);
        void load_markers();
+       IndexMarks *get_markers();
 
        int encode_activate();
        int nb_samples();
@@ -208,18 +209,14 @@ public:
        static AVPixelFormat color_model_to_pix_fmt(int color_model);
        static int pix_fmt_to_color_model(AVPixelFormat pix_fmt);
 
-       int convert_picture_vframe(VFrame *frame,
-               AVFrame *ip, AVPixelFormat ifmt, int iw, int ih);
-       int convert_cmodel(VFrame *frame_out,
-               AVFrame *ip, AVPixelFormat ifmt, int iw, int ih);
-       int transfer_cmodel(VFrame *frame_in,  //defaults->metadata
-               AVFrame *ifp, AVPixelFormat ifmt, int iw, int ih);
-       int convert_vframe_picture(VFrame *frame,
-               AVFrame *op, AVPixelFormat ofmt, int ow, int oh);
-       int convert_pixfmt(VFrame *frame_in,
-                AVFrame *op, AVPixelFormat ofmt, int ow, int oh);
-       int transfer_pixfmt(VFrame *frame_in,  //metadata->defaults
-                AVFrame *ofp, AVPixelFormat ofmt, int ow, int oh);
+       int convert_picture_vframe(VFrame *frame, AVFrame *ip);
+       int convert_picture_vframe(VFrame *frame, AVFrame *ip, AVFrame *ipic);
+       int convert_cmodel(VFrame *frame, AVFrame *ip);
+       int transfer_cmodel(VFrame *frame, AVFrame *ifp);
+       int convert_vframe_picture(VFrame *frame, AVFrame *op);
+       int convert_vframe_picture(VFrame *frame, AVFrame *op, AVFrame *opic);
+       int convert_pixfmt(VFrame *frame, AVFrame *op);
+       int transfer_pixfmt(VFrame *frame, AVFrame *ofp);
 };
 
 class FFVideoStream : public FFStream, public FFVideoConvert {
@@ -233,6 +230,7 @@ public:
        int create_filter(const char *filter_spec,
                AVCodecContext *src_ctx, AVCodecContext *sink_ctx);
        void load_markers();
+       IndexMarks *get_markers();
 
        int init_frame(AVFrame *picture);
        int load(VFrame *vframe, int64_t pos);
@@ -245,9 +243,8 @@ public:
        int64_t length;
        float aspect_ratio;
 
-       uint8_t *pkt_bfr;
-       int pkt_bfr_sz;
-       int64_t start_pts;
+       int interlaced;
+       int top_field_first;
 };
 
 class FFMPEG : public Thread {
@@ -274,7 +271,7 @@ public:
                char *format, char *codec, char *bsfilter, char *bsargs);
        int get_encoder(FILE *fp,
                char *format, char *codec, char *bsfilter, char *bsargs);
-       int read_options(const char *options, AVDictionary *&opts);
+       int read_options(const char *options, AVDictionary *&opts, int skip=0);
        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);
@@ -327,7 +324,7 @@ public:
        Condition *mux_lock;
        Condition *flow_lock;
        int done, flow;
-       
+
        void start_muxer();
        void stop_muxer();
        void flow_off();