On Sun, May 25, 2025 at 6:54 PM Andrew Randrianasulu
<[email protected]> wrote:
>
>
>
> вс, 25 мая 2025 г., 18:03 Phyllis Smith via Cin <[email protected]>:
>>
>> After applying current ffmpeg.git as of May 25:  
>> ae0f71a387f05be7ac90d545af4d3aeb8e1cca89  and applying Andrew's patches:
>>   0001-Add-check-for-nb_inputs-before-calling-avfilter_get_.patch
>>   0002-Same-possible-crash-fix-in-ffstreamaudio-for-dynamic.patch
>>   0003-Do-not-filter-out-dynamic_input-filters.patch
>>   0004-HACK-ffmpeg-8.0-build.patch
>> CinGG builds but none of the ffmpeg plugins work.  The Video plugins crash 
>> (did not try them all, but a few like F_boxblur) when added to the timeline 
>> and then click on "Show Controls.  The Audio plugins do not crash but you 
>> get the warning tone only when you play them (again, I did not try them all, 
>> but F_chorus was one of them).
>
>
> This is ... unfortunate. I also will  look into what changed, but hopefully 
> by time 8.0 is out we will find our fix.
>

Try attached patch? for some reason setting options now results in
error ..but two plugins I tested work.
Adding more than one ff plugin and or mixing native and ff plugins not tested.

>>
>> I have not looked at the code yet, but most likely it is just an oversight 
>> in trying to get it to compile.
>> Also, line 77 in 0004-HACK-ffmpeg-8.0-build.patch has "#esle" instead of 
>> "else".
>> --
>> Cin mailing list
>> [email protected]
>> https://lists.cinelerra-gg.org/mailman/listinfo/cin
From 3dc34e7c953f2e833176a742b3888e65ba59dedd Mon Sep 17 00:00:00 2001
From: Andrew Randrianasulu <[email protected]>
Date: Sun, 25 May 2025 18:36:15 +0300
Subject: [PATCH 5/5] pluginfclient.C HACK for ffmpeg 8.0 (might not work for
 prev. versions)

---
 cinelerra-5.1/cinelerra/pluginfclient.C | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/cinelerra-5.1/cinelerra/pluginfclient.C b/cinelerra-5.1/cinelerra/pluginfclient.C
index 764ba121..7ff7bad9 100644
--- a/cinelerra-5.1/cinelerra/pluginfclient.C
+++ b/cinelerra-5.1/cinelerra/pluginfclient.C
@@ -864,18 +864,25 @@ int PluginFAClient::activate()
 			"in", args, NULL, graph);
 		if(ret <0) printf("abuffer failed!\n");
 	}
-	if( ret >= 0 )
+/* 	if( ret >= 0 )
 		ret = avfilter_graph_create_filter(&fsink, avfilter_get_by_name("abuffersink"),
-			"out", NULL, NULL, graph);
+			"out", NULL, NULL, graph); */
+	/*
 	if( ret >= 0 )
 		ret = av_opt_set_bin(fsink, "sample_fmts",
 			(uint8_t*)&sample_fmt, sizeof(sample_fmt), AV_OPT_SEARCH_CHILDREN);
-	if( ret >= 0 )
+	
+	 if( ret >= 0 )
 		ret = av_opt_set(fsink, "ch_layouts",
 			chLayoutDescription, AV_OPT_SEARCH_CHILDREN);
 	if( ret >= 0 )
 		ret = av_opt_set_bin(fsink, "sample_rates",
 			(uint8_t*)&sample_rate, sizeof(sample_rate), AV_OPT_SEARCH_CHILDREN);
+	*/
+	if( ret >= 0 ) 
+	    ret = avfilter_graph_create_filter(&fsink, avfilter_get_by_name("abuffersink"),
+		"out", NULL, NULL, graph);
+	
 	if( ret >= 0 )
 		ret = PluginFClient::activate();
 	if( ret < 0 && activated >= 0 ) {
@@ -943,9 +950,11 @@ int PluginFVClient::activate(int width, int height, int color_model)
 	if( ret >= 0 )
 		ret = avfilter_graph_create_filter(&fsink, avfilter_get_by_name("buffersink"),
 			"out", NULL, NULL, graph);
+	/*
 	if( ret >= 0 )
 		ret = av_opt_set_bin(fsink, "pix_fmts",
 			(uint8_t*)&pix_fmt, sizeof(pix_fmt), AV_OPT_SEARCH_CHILDREN);
+	*/
 	if( ret >= 0 )
 		ret = PluginFClient::activate();
 	if( ret < 0 && activated >= 0 ) {
@@ -1096,9 +1105,13 @@ int PluginFVClient::process_buffer(VFrame **frames, int64_t position, double fra
 
 	int colormodel = vframe->get_color_model();
 	int ret = activate(width, height, colormodel);
-	AVPixelFormat pix_fmt = fsrc ?
+	AVPixelFormat pix_fmt;
+	if (fsrc && fsrc->outputs[0]) {
+		pix_fmt =  fsrc ?
 		(AVPixelFormat) fsrc->outputs[0]->format :
 		color_model_to_pix_fmt(colormodel);
+	} else {
+	pix_fmt = color_model_to_pix_fmt(colormodel);}
 	if( pix_fmt <= AV_PIX_FMT_NONE || pix_fmt >= AV_PIX_FMT_NB )
 		pix_fmt = AV_PIX_FMT_RGBA;
 
-- 
2.46.3

-- 
Cin mailing list
[email protected]
https://lists.cinelerra-gg.org/mailman/listinfo/cin

Reply via email to