projects
/
goodguy
/
cinelerra.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Credit ffmpeg team - security fix for ffmpeg 5.1
[goodguy/cinelerra.git]
/
cinelerra-5.1
/
cinelerra
/
ffmpeg.h
diff --git
a/cinelerra-5.1/cinelerra/ffmpeg.h
b/cinelerra-5.1/cinelerra/ffmpeg.h
index aa01785a449020e8969931b20345c69b452533b9..af5e43000b639dd4f1d478fc75254d85e0fac21d 100644
(file)
--- a/
cinelerra-5.1/cinelerra/ffmpeg.h
+++ b/
cinelerra-5.1/cinelerra/ffmpeg.h
@@
-28,6
+28,9
@@
extern "C" {
#include "libavformat/avformat.h"
#include "libavformat/avio.h"
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libavformat/avio.h"
#include "libavcodec/avcodec.h"
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(59,18,100)
+#include "libavcodec/bsf.h"
+#endif
#include "libavfilter/avfilter.h"
#include "libavutil/avutil.h"
#include "libavfilter/buffersrc.h"
#include "libavfilter/avfilter.h"
#include "libavutil/avutil.h"
#include "libavfilter/buffersrc.h"
@@
-86,7
+89,11
@@
public:
virtual int encode_activate();
virtual int decode_activate();
virtual AVHWDeviceType decode_hw_activate();
virtual int encode_activate();
virtual int decode_activate();
virtual AVHWDeviceType decode_hw_activate();
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(59,16,100)
+ virtual int decode_hw_format(const AVCodec *decoder, AVHWDeviceType type);
+#else
virtual int decode_hw_format(AVCodec *decoder, AVHWDeviceType type);
virtual int decode_hw_format(AVCodec *decoder, AVHWDeviceType type);
+#endif
virtual int write_packet(FFPacket &pkt);
int read_packet();
int seek(int64_t no, double rate);
virtual int write_packet(FFPacket &pkt);
int read_packet();
int seek(int64_t no, double rate);
@@
-246,7
+253,11
@@
public:
int is_video() { return 1; }
int decode_frame(AVFrame *frame);
AVHWDeviceType decode_hw_activate();
int is_video() { return 1; }
int decode_frame(AVFrame *frame);
AVHWDeviceType decode_hw_activate();
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(59,16,100)
+ int decode_hw_format(const AVCodec *decoder, AVHWDeviceType type);
+#else
int decode_hw_format(AVCodec *decoder, AVHWDeviceType type);
int decode_hw_format(AVCodec *decoder, AVHWDeviceType type);
+#endif
AVHWDeviceType encode_hw_activate(const char *hw_dev);
int encode_hw_write(FFrame *picture);
int encode_frame(AVFrame *frame);
AVHWDeviceType encode_hw_activate(const char *hw_dev);
int encode_hw_write(FFrame *picture);
int encode_frame(AVFrame *frame);
@@
-256,6
+267,7
@@
public:
int init_frame(AVFrame *picture);
int load(VFrame *vframe, int64_t pos);
int init_frame(AVFrame *picture);
int load(VFrame *vframe, int64_t pos);
+ int probe(int64_t pos);
int video_seek(int64_t pos);
int encode(VFrame *vframe);
int drain();
int video_seek(int64_t pos);
int encode(VFrame *vframe);
int drain();
@@
-289,7
+301,11
@@
class FFCodecRemaps : public ArrayList<FFCodecRemap>
public:
FFCodecRemaps() {}
int add(const char *val);
public:
FFCodecRemaps() {}
int add(const char *val);
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(59,16,100)
+ int update(AVCodecID &codec_id, const AVCodec *&decoder);
+#else
int update(AVCodecID &codec_id, AVCodec *&decoder);
int update(AVCodecID &codec_id, AVCodec *&decoder);
+#endif
};
// for get_initial_timecode auto deletes
};
// for get_initial_timecode auto deletes
@@
-330,7
+346,11
@@
public:
static void ff_lock(const char *cp=0) { fflock.lock(cp); }
static void ff_unlock() { fflock.unlock(); }
static void ff_lock(const char *cp=0) { fflock.lock(cp); }
static void ff_unlock() { fflock.unlock(); }
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(59,16,100)
+ int check_sample_rate(const AVCodec *codec, int sample_rate);
+#else
int check_sample_rate(AVCodec *codec, int sample_rate);
int check_sample_rate(AVCodec *codec, int sample_rate);
+#endif
AVRational check_frame_rate(const AVRational *p, double frame_rate);
AVRational to_sample_aspect_ratio(Asset *asset);
AVRational to_time_base(int sample_rate);
AVRational check_frame_rate(const AVRational *p, double frame_rate);
AVRational to_sample_aspect_ratio(Asset *asset);
AVRational to_time_base(int sample_rate);
@@
-368,6
+388,10
@@
public:
static double to_secs(int64_t time, AVRational time_base);
int info(char *text, int len);
static double to_secs(int64_t time, AVRational time_base);
int info(char *text, int len);
+ void put_cache_frame(VFrame *frame, int64_t position);
+ int get_use_cache();
+ void purge_cache();
+
int init_decoder(const char *filename);
int open_decoder();
int init_encoder(const char *filename);
int init_decoder(const char *filename);
int open_decoder();
int init_encoder(const char *filename);
@@
-379,6
+403,7
@@
public:
double get_initial_timecode(int data_type, int channel, double frame_rate);
int audio_seek(int ch, int64_t pos);
double get_initial_timecode(int data_type, int channel, double frame_rate);
int audio_seek(int ch, int64_t pos);
+ int video_probe(int64_t pos);
int video_seek(int layer, int64_t pos);
int decode(int chn, int64_t pos, double *samples, int len);
int video_seek(int layer, int64_t pos);
int decode(int chn, int64_t pos, double *samples, int len);
@@
-430,6
+455,7
@@
public:
int decoding, encoding;
int has_audio, has_video;
int decoding, encoding;
int has_audio, has_video;
+ int interlace_from_codec;
FFMPEG(FileBase *file_base=0);
~FFMPEG();
FFMPEG(FileBase *file_base=0);
~FFMPEG();
@@
-459,6
+485,7
@@
public:
float ff_aspect_ratio(int stream);
int ff_color_range(int stream);
int ff_color_space(int stream);
float ff_aspect_ratio(int stream);
int ff_color_range(int stream);
int ff_color_space(int stream);
+ int ff_interlace(int stream);
double ff_frame_rate(int stream);
const char *ff_video_codec(int stream);
int64_t ff_video_frames(int stream);
double ff_frame_rate(int stream);
const char *ff_video_codec(int stream);
int64_t ff_video_frames(int stream);