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
/
bdwrite.C
diff --git
a/cinelerra-5.1/cinelerra/bdwrite.C
b/cinelerra-5.1/cinelerra/bdwrite.C
index d2ae7e6f34dd55c01971c6759f43716d78fbfb5e..1017c1690670046fa831d603a73474085601f2b2 100644
(file)
--- a/
cinelerra-5.1/cinelerra/bdwrite.C
+++ b/
cinelerra-5.1/cinelerra/bdwrite.C
@@
-2530,7
+2530,12
@@
static int field_probe(AVFormatContext *fmt_ctx, AVStream *st)
AVDictionary *copts = 0;
//av_dict_copy(&copts, opts, 0);
AVCodecID codec_id = st->codecpar->codec_id;
AVDictionary *copts = 0;
//av_dict_copy(&copts, opts, 0);
AVCodecID codec_id = st->codecpar->codec_id;
+#if LIBAVCODEC_VERSION_INT <= AV_VERSION_INT(58,134,100)
AVCodec *decoder = avcodec_find_decoder(codec_id);
AVCodec *decoder = avcodec_find_decoder(codec_id);
+#endif
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(59,16,100)
+ const AVCodec *decoder = avcodec_find_decoder(codec_id);
+#endif
AVCodecContext *ctx = avcodec_alloc_context3(decoder);
if( !ctx ) {
fprintf(stderr,"codec alloc failed\n");
AVCodecContext *ctx = avcodec_alloc_context3(decoder);
if( !ctx ) {
fprintf(stderr,"codec alloc failed\n");
@@
-2604,7
+2609,13
@@
int media_info::scan()
stream *s = new stream(type, i);
s->pid = st->id;
AVCodecID codec_id = st->codecpar->codec_id;
stream *s = new stream(type, i);
s->pid = st->id;
AVCodecID codec_id = st->codecpar->codec_id;
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(59,16,100)
+ const AVCodec *decoder = avcodec_find_decoder(codec_id);
+#endif
+#if LIBAVCODEC_VERSION_INT <= AV_VERSION_INT(58,134,100)
AVCodec *decoder = avcodec_find_decoder(codec_id);
AVCodec *decoder = avcodec_find_decoder(codec_id);
+#endif
+
s->ctx = avcodec_alloc_context3(decoder);
if( !s->ctx ) {
fprintf(stderr, "avcodec_alloc_context failed\n");
s->ctx = avcodec_alloc_context3(decoder);
if( !s->ctx ) {
fprintf(stderr, "avcodec_alloc_context failed\n");
@@
-3161,7
+3172,7
@@
int
main(int ac, char **av)
{
char *path = av[1];
main(int ac, char **av)
{
char *path = av[1];
- if( mkbdmv(path) ) return 1;
+
av_log_set_level(AV_LOG_FATAL);
//av_log_set_level(AV_LOG_VERBOSE);
//av_log_set_level(AV_LOG_DEBUG);
av_log_set_level(AV_LOG_FATAL);
//av_log_set_level(AV_LOG_VERBOSE);
//av_log_set_level(AV_LOG_DEBUG);
@@
-3171,10
+3182,11
@@
main(int ac, char **av)
int opt = getopt(ac, av, "c:");
if (opt == 'c') {
int opt = getopt(ac, av, "c:");
if (opt == 'c') {
- chapter_every_n_sec = optarg[0]; start = 3; }
+ chapter_every_n_sec = atoi(optarg); start = 4;
+ path = av[3]; printf("Chapter interval: %i \n", chapter_every_n_sec );}
else
start = 2;
else
start = 2;
-
+ if( mkbdmv(path) ) return 1;
for( int ii=start; ii<ac; ++ii ) {
char *ap = av[ii];
// any dash seq followed by number sets curr title pgm_pid
for( int ii=start; ii<ac; ++ii ) {
char *ap = av[ii];
// any dash seq followed by number sets curr title pgm_pid