X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fffmpeg.h;h=56ce4e5b22d512a09d2f97863e5d321987f24b63;hb=3643286e2dbb3002604a62e3e6fd834716b4ae63;hp=9e17d8b9024fda0a7b135175d78c6eb41f532c8c;hpb=b290324e67a45e465f2d0ad5d0ee662b64343339;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/ffmpeg.h b/cinelerra-5.1/cinelerra/ffmpeg.h index 9e17d8b9..56ce4e5b 100644 --- a/cinelerra-5.1/cinelerra/ffmpeg.h +++ b/cinelerra-5.1/cinelerra/ffmpeg.h @@ -20,6 +20,7 @@ #include "fileffmpeg.inc" #include "indexstate.inc" #include "mutex.h" +#include "preferences.inc" #include "thread.h" #include "vframe.inc" @@ -118,6 +119,7 @@ public: AVFilterContext *buffersrc_ctx; AVFilterGraph *filter_graph; AVFrame *frame, *fframe; + AVFrame *probe_frame; AVBSFContext *bsfc; FFPacket ipkt; @@ -204,10 +206,14 @@ public: class FFVideoConvert { public: + Preferences *preferences; struct SwsContext *convert_ctx; AVFrame *sw_frame; - FFVideoConvert() { convert_ctx = 0; sw_frame = 0; } + FFVideoConvert(Preferences *preferences) { + this->preferences = preferences; + convert_ctx = 0; sw_frame = 0; + } ~FFVideoConvert() { if( convert_ctx ) sws_freeContext(convert_ctx); if( sw_frame ) av_frame_free(&sw_frame); @@ -257,6 +263,7 @@ public: int interlaced; int top_field_first; + int color_space, color_range; }; class FFCodecRemap @@ -304,6 +311,8 @@ public: static void load_audio_options(Asset *asset, EDL *edl); static void scan_video_options(Asset *asset, EDL *edl); static void load_video_options(Asset *asset, EDL *edl); + static void scan_format_options(Asset *asset, EDL *edl); + static void load_format_options(Asset *asset, EDL *edl); static void set_asset_format(Asset *asset, EDL *edl, const char *text); int get_file_format(); static int get_encoder(const char *options, char *format, char *codec, char *bsfilter); @@ -404,14 +413,17 @@ public: int ff_coded_width(int stream); int ff_coded_height(int stream); float ff_aspect_ratio(int stream); + int ff_color_range(int stream); + int ff_color_space(int stream); double ff_frame_rate(int stream); - const char *ff_video_format(int stream); + const char *ff_video_codec(int stream); int64_t ff_video_frames(int stream); int ff_video_pid(int stream); int ff_video_mpeg_color_range(int stream); int ff_cpus(); const char *ff_hw_dev(); + Preferences *ff_prefs(); void dump_context(AVCodecContext *ctx); };