mask tweaks, focus follows centroid, gradient/colorpicker rework, no hard edges in...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / ffmpeg.h
index 9656bf3970914db5ab27dee24dc2d91188bec8bf..b4867b8eb1943879499d7a6ed33515d9533ff44f 100644 (file)
@@ -68,6 +68,7 @@ public:
        int initted() { return init; }
        void queue(int64_t pos);
        void dequeue();
+       void set_hw_frame(AVFrame *frame);
 };
 
 class FFStream {
@@ -82,7 +83,7 @@ public:
        virtual int encode_activate();
        virtual int decode_activate();
        virtual AVHWDeviceType decode_hw_activate();
-       virtual void decode_hw_format(AVCodec *decoder, AVHWDeviceType type);
+       virtual int decode_hw_format(AVCodec *decoder, AVHWDeviceType type);
        virtual int write_packet(FFPacket &pkt);
        int read_packet();
        int seek(int64_t no, double rate);
@@ -132,7 +133,6 @@ public:
        int reading, writing;
        int seeked, eof;
 
-       const char *hw_dev;
        int hw_pixfmt;
        AVBufferRef *hw_device_ctx;
 
@@ -235,7 +235,9 @@ public:
        int is_video() { return 1; }
        int decode_frame(AVFrame *frame);
        AVHWDeviceType decode_hw_activate();
-       void decode_hw_format(AVCodec *decoder, AVHWDeviceType type);
+       int decode_hw_format(AVCodec *decoder, AVHWDeviceType type);
+       AVHWDeviceType encode_hw_activate(const char *hw_dev);
+       int encode_hw_write(FFrame *picture);
        int encode_frame(AVFrame *frame);
        int create_filter(const char *filter_spec, AVCodecParameters *avpar);
        void load_markers();
@@ -326,6 +328,7 @@ public:
        double opt_duration;
        char *opt_video_filter;
        char *opt_audio_filter;
+       char *opt_hw_dev;
        char file_format[BCTEXTLEN];
        int fflags;
 
@@ -388,6 +391,7 @@ public:
        int ff_video_mpeg_color_range(int stream);
 
        int ff_cpus();
+       const char *ff_hw_dev();
        void dump_context(AVCodecContext *ctx);
 };