[Libav-user] Filter initialization change in git relative to 7.0?
Andrew Randrianasulu
randrianasulu at gmail.com
Wed May 14 10:57:51 EEST 2025
On Wed, May 14, 2025 at 10:57 AM Paul B Mahol <onemda at gmail.com> wrote:
>
>
>
> On Wed, May 14, 2025 at 5:05 AM Andrew Randrianasulu <randrianasulu at gmail.com> wrote:
>>
>> Even if our code compiles it does not work anymore ...
>>
>> [out @ 0xe1821180] Option 'pix_fmts' is not a runtime option and so
>> cannot be set after the object has been initialized
>>
>> int ret = 0; char args[BCTEXTLEN];
>> AVPixelFormat pix_fmt = (AVPixelFormat)avpar->format;
>> snprintf(args, sizeof(args),
>>
>> "video_size=%dx%d:pix_fmt=%i:time_base=%d/%d:pixel_aspect=%d/%d",
>> avpar->width, avpar->height,(int)pix_fmt,
>> st->time_base.num, st->time_base.den, sa_num, sa_den);
>> if( ret >= 0 ) {
>> filt_ctx = 0;
>> ret = insert_filter("buffer", args, "in");
>> buffersrc_ctx = filt_ctx;
>> }
>> if( ret >= 0 )
>> ret = flip(theta);
>> AVFilterContext *fsrc = filt_ctx;
>> if( ret >= 0 ) {
>> filt_ctx = 0;
>> ret = insert_filter("buffersink", 0, "out");
>> buffersink_ctx = filt_ctx;
>> }
>> if( ret >= 0 ) {
>> ret = av_opt_set_bin(buffersink_ctx, "pix_fmts",
>> (uint8_t*)&pix_fmt, sizeof(pix_fmt),
>> AV_OPT_SEARCH_CHILDREN);
>> }
>> if( ret >= 0 )
>> ret = config_filters(filter_spec, fsrc);
>> else
>> ff_err(ret, "FFVideoStream::create_filter");
>> return ret >= 0 ? 0 : -1;
>>
>>
>> =========
>>
>> There is no video filtering example in doc/examples.
>>
>> How I supposed to know what should be put there now?
>
>
> doc/examples/decode_filter_video.c
Thanks, but it still says
/* buffer video source: the decoded frames from the decoder will
be inserted here. */
snprintf(args, sizeof(args),
"video_size=%dx%d:pix_fmt=%d:time_base=%d/%d:pixel_aspect=%d/%d",
dec_ctx->width, dec_ctx->height, dec_ctx->pix_fmt,
time_base.num, time_base.den,
dec_ctx->sample_aspect_ratio.num, dec_ctx->sample_aspect_ratio.den);
ret = avfilter_graph_create_filter(&buffersrc_ctx, buffersrc, "in",
args, NULL, filter_graph);
and I googled and found this commit
https://gitlab.com/webrtc-mirror/ffmpeg/-/commit/0548ab2e4257f9c6e7a7a57138504533a6ca5507
========
Commit 0548ab2e
authored 7 months ago by Anton Khirnov
lavu/log,opt: detect setting non-runtime options post-init
Add a mechanism to AVClass to allow objects to signal their state to
generic code. When an object flags itself with the 'initialized' state,
print an error (and fail, after the next major bump) if the caller
attempts to set non-runtime options.
====
For now I just removed AVERROR, but this is not way forward if we want
to support external ffmpeg ...
>
>>
>> _______________________________________________
>> Libav-user mailing list
>> Libav-user at ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/libav-user
>>
>> To unsubscribe, visit link above, or email
>> libav-user-request at ffmpeg.org with subject "unsubscribe".
>
> _______________________________________________
> Libav-user mailing list
> Libav-user at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/libav-user
>
> To unsubscribe, visit link above, or email
> libav-user-request at ffmpeg.org with subject "unsubscribe".
More information about the Libav-user
mailing list