сб, 12 сент. 2026 г., 22:46 Phyllis Smith <phylsmith2017@gmail.com>:
Oh no. Not sure why they consider this to be an improvement.

Change itself fairly mechanical just it looks like we will need to apply it to 6-7 places

grep sample_fmts -r cinelerra/*.C


~/cinelerra/cinelerra-5.1 $ grep sample_fmts -r cinelerra/*.C
cinelerra/ffmpeg.C:             const AVSampleFormat *sample_fmts, AVSampleFormat src_fmt)
cinelerra/ffmpeg.C:     for( int i=0; sample_fmts[i] >= 0; ++i ) {
cinelerra/ffmpeg.C:             AVSampleFormat sample_fmt = sample_fmts[i];
cinelerra/ffmpeg.C:             if( av_codec && av_codec->sample_fmts )
cinelerra/ffmpeg.C:                     cin_fmt = find_best_sample_fmt_of_list(av_codec->sample_fmts, AV_SAMPLE_FMT_FLT);
cinelerra/ffmpeg.C:                             sample_fmt = codec->sample_fmts ? codec->sample_fmts[0] : AV_SAMPLE_FMT_S16;
cinelerra/ffmpeg.C:             ret = av_opt_set_bin(buffersink_ctx, "sample_fmts",
cinelerra/fileac3.C:                    codec_context->sample_fmt = codec->sample_fmts[0];
cinelerra/fileffmpeg.C: const AVSampleFormat *sample_fmts = av_codec ? av_codec->sample_fmts : 0;
cinelerra/fileffmpeg.C: if( sample_fmts ) {
cinelerra/fileffmpeg.C:         for( int i=0; sample_fmts[i]>=0; ++i ) {
cinelerra/fileffmpeg.C:                 const char *name = av_get_sample_fmt_name(sample_fmts[i]);
cinelerra/pluginfclient.C:              ret = av_opt_set_bin(fsink, "sample_fmts",


~/cinelerra/cinelerra-5.1 $ grep pix_fmts -r cinelerra/*.C
cinelerra/ffmpeg.C:static AVPixelFormat get_hw_##fn(AVCodecContext *ctx, const enum AVPixelFormat *pix_fmts) { \
cinelerra/ffmpeg.C:                     const enum AVPixelFormat *pix_fmts)
cinelerra/ffmpeg.C:     for( const enum AVPixelFormat *p=pix_fmts; *p!=AV_PIX_FMT_NONE; ++p ) {
cinelerra/ffmpeg.C:             if( av_codec && av_codec->pix_fmts ) {
cinelerra/ffmpeg.C:                             cin_fmt = avcodec_find_best_pix_fmt_of_list(av_codec->pix_fmts,
cinelerra/ffmpeg.C:                             cin_fmt = av_codec->pix_fmts[0];
cinelerra/ffmpeg.C:                             pix_fmt = codec->pix_fmts ? codec->pix_fmts[0] : AV_PIX_FMT_YUV420P;
cinelerra/ffmpeg.C:             ret = av_opt_set_bin(buffersink_ctx, "pix_fmts",
cinelerra/fileffmpeg.C: const AVPixelFormat *pix_fmts = av_codec ? av_codec->pix_fmts : 0;
cinelerra/fileffmpeg.C: if( pix_fmts ) {
cinelerra/fileffmpeg.C:         for( int i=0; pix_fmts[i]>=0; ++i ) {
cinelerra/fileffmpeg.C:                 const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmts[i]);
cinelerra/pluginfclient.C:              ret = av_opt_set_bin(fsink, "pix_fmts",
~/cinelerra/cinelerra-5.1 $

Patch for mplayer was already in Arch:

https://gitlab.archlinux.org/archlinux/packaging/packages/mplayer/-/blob/main/ffmpeg-9.patch?ref_type=heads



On Sat, Sep 12, 2026, 13:34 Andrew Randrianasulu <randrianasulu@gmail.com> wrote:
https://github.com/mltframework/mlt/pull/1281/changes/68bceba12a3c3278ce69033c3e7dadaa13d45811

of course ffmpeg devs invented yet another way to get supported sample/pixel formats out of  codec internals ....

Will try to make mplayer work first, then may be cinelerra.