X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fffmpeg.h;h=f317d25a705cabef72c37662b7255843edca16dc;hb=93d60cc0fdf746cc03b4d7a9e45744c2c424439b;hp=4860c0021dd1c9a9d868d5a435e4e1e9b263620f;hpb=50a589b1decdd353a984d8a710e064ebaf8b4f7b;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/ffmpeg.h b/cinelerra-5.1/cinelerra/ffmpeg.h index 4860c002..f317d25a 100644 --- a/cinelerra-5.1/cinelerra/ffmpeg.h +++ b/cinelerra-5.1/cinelerra/ffmpeg.h @@ -40,12 +40,14 @@ extern "C" { class FFPacket { AVPacket pkt; public: - FFPacket(); - ~FFPacket(); - void init(); operator AVPacket*() { return &pkt; } operator AVPacket&() { return pkt; } AVPacket *operator ->() { return &pkt; } + + void init(); + void finit(); + FFPacket() { init(); } + ~FFPacket() { finit(); } }; class FFrame : public ListItem { @@ -93,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); @@ -130,7 +133,6 @@ public: int frm_count; List frms; Mutex *frm_lock; - IndexMarks *index_markers; int64_t nudge; int64_t seek_pos, curr_pos; @@ -171,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(); @@ -231,6 +234,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); @@ -261,7 +265,8 @@ public: static void set_option_path(char *path, const char *fmt, ...); static void get_option_path(char *path, const char *type, const char *spec); - static int get_format(char *format, const char *path, char *spec); + static int get_format(char *format, const char *path, const char *spec); + static int get_codec(char *codec, const char *path, const char *spec); static int scan_option_line(char *cp,char *tag,char *val); static int load_defaults(const char *path, const char *type, char *codec, char *codec_options, int len);