сб, 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/mai...
On Sat, Sep 12, 2026, 13:34 Andrew Randrianasulu <randrianasulu@gmail.com> wrote:
https://github.com/mltframework/mlt/pull/1281/changes/68bceba12a3c3278ce6903...
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.