X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fffmpeg.h;h=c4b9c3c2fb0f595f1ccced42462c020a595b6427;hp=4860c0021dd1c9a9d868d5a435e4e1e9b263620f;hb=21c2e6b36d6a96c2f662a89459d607b5a387f4eb;hpb=50a589b1decdd353a984d8a710e064ebaf8b4f7b diff --git a/cinelerra-5.1/cinelerra/ffmpeg.h b/cinelerra-5.1/cinelerra/ffmpeg.h index 4860c002..c4b9c3c2 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); @@ -324,7 +329,7 @@ public: Condition *mux_lock; Condition *flow_lock; int done, flow; - + void start_muxer(); void stop_muxer(); void flow_off();