В сообщении от Wednesday 02 December 2020 13:02:56 Andrea paz via Cin 
написал(а):
> With the last git I can no longer see the png. Both in resources and
> timeline are not seen. In the terminal I have the following messages:
> 
> Cinelerra Infinity - built: Dec  2 2020 10:36:34
> git://git.cinelerra-gg.org/goodguy/cinelerra.git
> (c) 2006-2019 Heroine Virtual Ltd. by Adam Williams
> 2007-2020 mods for Cinelerra-GG by W.P.Morrow aka goodguy
> Cinelerra is free software, covered by the GNU General Public License,
> and you are welcome to change it and/or distribute copies of it under
> certain conditions. There is absolutely no warranty for Cinelerra.
> 
> sample_aspect_ratio, 1.000000
> display_aspect_ratio, 1.777778
> ff_aspect_ratio, 1.777778
> interlace from demux: 0
> sample_aspect_ratio, 1.000000
> display_aspect_ratio, 1.777778
> ff_aspect_ratio, 1.777778
> interlace from demux: 0
> sample_aspect_ratio, 1.000000
> display_aspect_ratio, 1.777778
> ff_aspect_ratio, 1.777778
> FFMPEG::open_decoder: some stream have bad times:
> /home/paz/video_editing/prova/1080/0003.png
> ff_aspect_ratio, 0.000000
> interlace from demux: 0
> FFMPEG::open_decoder: some stream have bad times:
> /home/paz/video_editing/prova/1080/0004.png
> ff_aspect_ratio, 0.000000
> interlace from demux: 0
> sample_aspect_ratio, 1.000000
> display_aspect_ratio, 1.777778
> ff_aspect_ratio, 1.777778
> interlace from demux: 0
> sample_aspect_ratio, 1.000000
> display_aspect_ratio, 1.777778
> ff_aspect_ratio, 1.777778
> 
> 
> The error "some stream have bad times:" always gave it to me, but the
> pngs saw the same.
> 
> 
> EDIT: the same problem with jpg. An animated gif works.
> 

Yeah, for some reason it doesn't work with images-as-decoded-via-ffmpeg

Try attached patch?

diff --git a/cinelerra-5.1/cinelerra/fileffmpeg.C 
b/cinelerra-5.1/cinelerra/fileffmpeg.C
index eed14f20..387c0f69 100644
--- a/cinelerra-5.1/cinelerra/fileffmpeg.C
+++ b/cinelerra-5.1/cinelerra/fileffmpeg.C
@@ -342,11 +342,13 @@ int FileFFMPEG::open_file(int rd, int wr)
                        int video_layers = ff->ff_total_video_layers();
                        if( video_layers > 0 ) {
                                asset->video_data = 1;
+                               if ((ff->ff_video_codec(0) != "png" || 
(ff->ff_video_codec(0) != "mjpeg")) && (ff->ff_video_frames(0) > 1 )) {
                                asset->aspect_ratio = ff->ff_aspect_ratio(0);
                                printf("ff_aspect_ratio, %f \n", 
asset->aspect_ratio);
                                if (!asset->interlace_mode) 
asset->interlace_mode = ff->ff_interlace(0);
                                ff->video_probe(1);
                                 if (!asset->interlace_mode && 
(ff->interlace_from_codec) ) asset->interlace_mode = ff->video_probe(1); 
+                               }
                                if( !asset->layers ) asset->layers = 
video_layers;
                                asset->actual_width = ff->ff_video_width(0);
                                asset->actual_height = ff->ff_video_height(0);


I dunno how it should react to, say, interlaced png wrapped in mov .... 
Hopefully just skip ar/interlace setup, as it did before.
(but at least you will have image visible)
diff --git a/cinelerra-5.1/cinelerra/fileffmpeg.C b/cinelerra-5.1/cinelerra/fileffmpeg.C
index eed14f20..387c0f69 100644
--- a/cinelerra-5.1/cinelerra/fileffmpeg.C
+++ b/cinelerra-5.1/cinelerra/fileffmpeg.C
@@ -342,11 +342,13 @@ int FileFFMPEG::open_file(int rd, int wr)
 			int video_layers = ff->ff_total_video_layers();
 			if( video_layers > 0 ) {
 				asset->video_data = 1;
+				if ((ff->ff_video_codec(0) != "png" || (ff->ff_video_codec(0) != "mjpeg")) && (ff->ff_video_frames(0) > 1 )) {
 				asset->aspect_ratio = ff->ff_aspect_ratio(0);
 				printf("ff_aspect_ratio, %f \n", asset->aspect_ratio);
 				if (!asset->interlace_mode) asset->interlace_mode = ff->ff_interlace(0);
 				ff->video_probe(1);
 				 if (!asset->interlace_mode && (ff->interlace_from_codec) ) asset->interlace_mode = ff->video_probe(1); 
+				}
 				if( !asset->layers ) asset->layers = video_layers;
 				asset->actual_width = ff->ff_video_width(0);
 				asset->actual_height = ff->ff_video_height(0);
-- 
Cin mailing list
[email protected]
https://lists.cinelerra-gg.org/mailman/listinfo/cin

Reply via email to