The two sample projects that illustrate the sequence data mechanism (Gamma_Table and SmartyPants) do not seem to work in AE 2022. The sequence_data field always returns 0 in the render function.
I've tried these two plug-ins with AE 2021 (v18 and v18.4) and they behave correctly.
Any ideas ?
Copy link to clipboard
Do they behave if MFR is turned off? That's the biggest change between AE 21 and 22 and according to others on this forum the sequence data rules have been tightened to be compatible with MFR.
Copy link to clipboard
as james said, since 2022 MFR comptibility, sequence data is handled in a new way during render and prerender calls.
basically, you should use the PF_EffectSequenceDataSuite to get the sequence data handle during these calls.
Thanks for your answers.
I was aware of these changes but I was naively thinking that the shipped examples would work properly.
I'm gonna try the new way of doing things but an SDK update would be great to illustrate these changes.
I've tried to store the data in global data and to force a re-render using a dummy invisible param (so that each effect instance has its own data), and that seems to do the trick. It's a bit dirty though.
I've successfully retrieved the sequence_data in the SmartRender function using the following code:
PF_ConstHandle seqDataH; AEFX_SuiteScoper<PF_EffectSequenceDataSuite1> seqDataSuite = AEFX_SuiteScoper<PF_EffectSequenceDataSuite1>(in_data, kPFEffectSequenceDataSuite, kPFEffectSequenceDataSuiteVersion1, out_data); ERR(seqDataSuite->PF_GetConstSequenceData(in_data->effect_ref, &seqDataH)); SeqData* seqDataP = reinterpret_cast<SeqData*>(const_cast<void*>(*seqDataH));
Since I want to write to sequence_data in the render function, I've set the PF_OutFlag2_MUTABLE_RENDER_SEQUENCE_DATA_SLOWER flag. So far so good.
However, I also need to retrieve the sequence_data in the "HandleChangedParam" function (in response to PF_Cmd_USER_CHANGED_PARAM). Using the same code as above I was unable to get the sequence_data in that function.
For clarification, let me briefly explain how my plug-in works and perhaps someone will provide an alternative way to achieve the same result:
- During render, a (sequence_data) string is set. This string represents text file content.
- When the user clicks on an export button, the stored string is written to file. This is the reason why I need to retrieve sequence_data in HandleChangedParam.