Re: [FFmpeg-devel] [PATCH v2] libavdevice: Improve example in deprecation message for opengl and sdl
On 2024-04-29 23:53 +0200, Alexander Strasser via ffmpeg-devel wrote: > When piping ffmpeg into ffplay both programs write a status line in > the terminal. That causes flickering and invisibility of one or the > other status line. > > As compromise set ffplay log level to warning, so it doesn't show > the status line. > > The user is usually testing ffmpeg command lines and want's a > preview of the result. This way the user can see the ffmpeg output > and still see errors and warnings from ffplay, should they occur. > > Additionally set PTS to zero in ffplay to lessen the delay until > the frames are displayed. Without it delay is quite observable > when e.g. live capturing with low frame rates. > --- > > Same as previous patch, but with setpts=0 in ffplay as suggested by > Nicolas George. > > > libavdevice/opengl_enc.c | 2 +- > libavdevice/sdl2.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/libavdevice/opengl_enc.c b/libavdevice/opengl_enc.c > index 6f7a30ff9e..93d3959880 100644 > --- a/libavdevice/opengl_enc.c > +++ b/libavdevice/opengl_enc.c > @@ -1067,7 +1067,7 @@ static av_cold int opengl_write_header(AVFormatContext > *h) > av_log(opengl, AV_LOG_WARNING, > "The opengl output device is deprecated due to being > fundamentally incompatible with libavformat API. " > "For monitoring purposes in ffmpeg you can output to a file or > use pipes and a video player.\n" > -"Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay -\n" > +"Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay > -loglevel warning -vf setpts=0 -\n" > ); > opengl->warned = 1; > } > diff --git a/libavdevice/sdl2.c b/libavdevice/sdl2.c > index 779c8e08b0..491c8dafe8 100644 > --- a/libavdevice/sdl2.c > +++ b/libavdevice/sdl2.c > @@ -167,7 +167,7 @@ static int sdl2_write_header(AVFormatContext *s) > av_log(sdl, AV_LOG_WARNING, > "The sdl output device is deprecated due to being fundamentally > incompatible with libavformat API. " > "For monitoring purposes in ffmpeg you can output to a file or > use pipes and a video player.\n" > -"Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay -\n" > +"Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay > -loglevel warning -vf setpts=0 -\n" > ); > sdl->warned = 1; > } > -- Will try to push soon'ish if I don't hear any objections. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 1/4] lavu/float_dsp: add double-precision scalar product
On 2024-05-29 18:51 +0300, Rémi Denis-Courmont wrote: > Le keskiviikkona 29. toukokuuta 2024, 18.44.13 EEST Andreas Rheinhardt a écrit > : > > > +static double ff_scalarproduct_double_c(const double *v1, > > > Don't use an ff_ prefix for a static function. > > I can see over 300 such identifiers in the code base (many but not all > inline), > and I don't see why that would be a problem. I agree that it's not a problem regarding on the functional side, OTOH regarding coding conventions we try to consistently follow it's misleading as the ff_ prefix indicates a bigger scope of sharing. Maybe I'm missing something, but it looks to me that more than half of those over 300 instances are correct (the inline ones in the headers). I think Andreas remark is correct and it would be better to not use ff_ prefix wrongly when adding new code. Best regards, Alexander [...] ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 1/4] lavu/float_dsp: add double-precision scalar product
On 2024-06-02 13:30 +0300, Rémi Denis-Courmont wrote: > Le sunnuntaina 2. kesäkuuta 2024, 13.04.05 EEST Alexander Strasser via ffmpeg- > devel a écrit : > > On 2024-05-29 18:51 +0300, Rémi Denis-Courmont wrote: > > > Le keskiviikkona 29. toukokuuta 2024, 18.44.13 EEST Andreas Rheinhardt a > > > écrit> > > > > > +static double ff_scalarproduct_double_c(const double *v1, > > > > > > > > Don't use an ff_ prefix for a static function. > > > > > > I can see over 300 such identifiers in the code base (many but not all > > > inline), and I don't see why that would be a problem. > > > > I agree that it's not a problem regarding on the functional side, > > OTOH regarding coding conventions we try to consistently follow it's > > misleading as the ff_ prefix indicates a bigger scope of sharing. > > Anybody can see the 'static' qualifier literally in front to see the function > is not in a bigger scope of sharing. And if you do somehow miss and try to use > the function, you will get a linker error. > > The only case where this *actually* matters is in debugging. And exactly then > it is much better to use the ff_ prefix *because* all symbols, including local > ones like this, end up sharing the namespace. But not at the call site? > > I think Andreas remark is correct and it would be better to not use ff_ > > prefix wrongly when adding new code. > > IMO, it is worse. I tend to disagree here as it makes the meaning of the ff_ prefix arbitrary. Anyway if you want to challenge this convention we are using since many years in this code base, I suggest to do it in a separate discussion thread. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [RFC] fftools/ffmpeg and libavdevice/sdl issue
On 2023-12-14 01:47 +0100, Stefano Sabatini wrote: > On date Wednesday 2023-12-13 10:08:45 +0100, Anton Khirnov wrote: > > Quoting Zhao Zhili (2023-12-12 18:27:39) > [...] > > Honestly I don't see how this could be done in ffmpeg CLI without > > disgusting hacks, but before that the question is: > > > why is there an SDL > > "muxer" and why would anyone want to use it in ffmpeg CLI? What actual > > use cases does it serve that cannot be better handled otherwise? > > As the author of the first sdl.c muxer, maybe I can answer to this > question. It was done partly as an exercise and for fun, but also > because this was useful extremely handy for testing (e.g. to display > the output of a filterchain from ffmpeg, or to display a streamed > video in realtime). That is what I used it for countless times as well. It has a lot of merit in handling compared to piping to a player, where one needs to run 2 processes in one command line with all the drawbacks that come with it. > The final goal was (still is) to unify all the tools as very thin > instances of the library. Even if this might be not practical, I think > it is a good final design plan (e.g. ffprobe might be turned to a > custom muxer, ffplay would be the realtime output of a filtergraph > connected to a rendering device, ffmpeg would be a data filtergraph > processor, and you can mix rendering and encoding if you add a movie > sink to the game). I agree to this perspective. Making most of the functionality available through the FFmpeg libs and therefore available for wider application of a broader audience seems valuable. Such a big goal that cannot be reached in a predictable time frame should be challenged over the years and the plans, in so far they exist, need to be adjusted accordingly. Still that doesn't mean the goal is not worthwhile or not achievable. On an ending note: I don't like at all the way this discussion unraveled: 1. Someone wants to fix a reported problem after the new threading changes 2. It is questioned why a feature that exists for over a decade is there I hope this can get back on a more constructive rail. Otherwise I fear it just sets precedence for more to come :( Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-devel] [PATCH] libavdevice: Improve example in deprecation message for opengl and sdl
When piping ffmpeg into ffplay both programs write a status line in the terminal. That causes flickering and invisibility of one or the other status line. As compromise set ffplay log level to warning, so it doesn't show the status line. The user is usually testing ffmpeg command lines and want's a preview of the result. This way the user can see the ffmpeg output and still see errors and warnings from ffplay, should they occur. --- libavdevice/opengl_enc.c | 2 +- libavdevice/sdl2.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libavdevice/opengl_enc.c b/libavdevice/opengl_enc.c index 6f7a30ff9e..c50d02870a 100644 --- a/libavdevice/opengl_enc.c +++ b/libavdevice/opengl_enc.c @@ -1067,7 +1067,7 @@ static av_cold int opengl_write_header(AVFormatContext *h) av_log(opengl, AV_LOG_WARNING, "The opengl output device is deprecated due to being fundamentally incompatible with libavformat API. " "For monitoring purposes in ffmpeg you can output to a file or use pipes and a video player.\n" -"Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay -\n" +"Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay -loglevel warning -\n" ); opengl->warned = 1; } diff --git a/libavdevice/sdl2.c b/libavdevice/sdl2.c index 779c8e08b0..59e3182df8 100644 --- a/libavdevice/sdl2.c +++ b/libavdevice/sdl2.c @@ -167,7 +167,7 @@ static int sdl2_write_header(AVFormatContext *s) av_log(sdl, AV_LOG_WARNING, "The sdl output device is deprecated due to being fundamentally incompatible with libavformat API. " "For monitoring purposes in ffmpeg you can output to a file or use pipes and a video player.\n" -"Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay -\n" +"Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay -loglevel warning -\n" ); sdl->warned = 1; } -- ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] fate: allow https for git URLs
On 2024-04-24 22:01 +0200, Timo Rothenpieler wrote: > --- > tests/fate.sh | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/tests/fate.sh b/tests/fate.sh > index c5ee18de80..4081e865ae 100755 > --- a/tests/fate.sh > +++ b/tests/fate.sh > @@ -30,14 +30,14 @@ lock(){ > checkout(){ > case "$repo" in > file:*|/*) src="${repo#file:}" ;; > -git:*) git clone --quiet --branch "$branch" "$repo" "$src" ;; > +git:*|https:*) git clone --quiet --branch "$branch" "$repo" "$src" ;; > esac > } > > update()( > cd ${src} || return > case "$repo" in > -git:*) git fetch --quiet --force && git reset --quiet --hard > "origin/$branch" ;; > +git:*|https:*) git fetch --quiet --force && git reset --quiet --hard > "origin/$branch" ;; > esac > ) Should be OK if tested to work with both git and https URLs in repo. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] fate: allow https for git URLs
On 2024-04-24 22:26 +0200, Timo Rothenpieler wrote: > On 24.04.2024 22:12, Alexander Strasser via ffmpeg-devel wrote: > > On 2024-04-24 22:01 +0200, Timo Rothenpieler wrote: > > > --- > > > tests/fate.sh | 4 ++-- > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > > > diff --git a/tests/fate.sh b/tests/fate.sh > > > index c5ee18de80..4081e865ae 100755 > > > --- a/tests/fate.sh > > > +++ b/tests/fate.sh > > > @@ -30,14 +30,14 @@ lock(){ > > > checkout(){ > > > case "$repo" in > > > file:*|/*) src="${repo#file:}" ;; > > > -git:*) git clone --quiet --branch "$branch" "$repo" "$src" ;; > > > +git:*|https:*) git clone --quiet --branch "$branch" "$repo" > > > "$src" ;; > > > esac > > > } > > > > > > update()( > > > cd ${src} || return > > > case "$repo" in > > > -git:*) git fetch --quiet --force && git reset --quiet --hard > > > "origin/$branch" ;; > > > +git:*|https:*) git fetch --quiet --force && git reset --quiet > > > --hard "origin/$branch" ;; > > > esac > > > ) > > > > If you manually clone the repo, you can use whatever you like anyway, since Sorry my initial wording was probably ambiguous. I meant in the repo variable in a fate_config.sh > it never actually uses the URL for anything after the initial clone. The URL isn't used per se, but it's used to decide whether to git fetch or not inside the call to update, isn't it? Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-devel] [PATCH v2] libavdevice: Improve example in deprecation message for opengl and sdl
When piping ffmpeg into ffplay both programs write a status line in the terminal. That causes flickering and invisibility of one or the other status line. As compromise set ffplay log level to warning, so it doesn't show the status line. The user is usually testing ffmpeg command lines and want's a preview of the result. This way the user can see the ffmpeg output and still see errors and warnings from ffplay, should they occur. Additionally set PTS to zero in ffplay to lessen the delay until the frames are displayed. Without it delay is quite observable when e.g. live capturing with low frame rates. --- Same as previous patch, but with setpts=0 in ffplay as suggested by Nicolas George. libavdevice/opengl_enc.c | 2 +- libavdevice/sdl2.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libavdevice/opengl_enc.c b/libavdevice/opengl_enc.c index 6f7a30ff9e..93d3959880 100644 --- a/libavdevice/opengl_enc.c +++ b/libavdevice/opengl_enc.c @@ -1067,7 +1067,7 @@ static av_cold int opengl_write_header(AVFormatContext *h) av_log(opengl, AV_LOG_WARNING, "The opengl output device is deprecated due to being fundamentally incompatible with libavformat API. " "For monitoring purposes in ffmpeg you can output to a file or use pipes and a video player.\n" -"Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay -\n" +"Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay -loglevel warning -vf setpts=0 -\n" ); opengl->warned = 1; } diff --git a/libavdevice/sdl2.c b/libavdevice/sdl2.c index 779c8e08b0..491c8dafe8 100644 --- a/libavdevice/sdl2.c +++ b/libavdevice/sdl2.c @@ -167,7 +167,7 @@ static int sdl2_write_header(AVFormatContext *s) av_log(sdl, AV_LOG_WARNING, "The sdl output device is deprecated due to being fundamentally incompatible with libavformat API. " "For monitoring purposes in ffmpeg you can output to a file or use pipes and a video player.\n" -"Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay -\n" +"Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay -loglevel warning -vf setpts=0 -\n" ); sdl->warned = 1; } -- ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] libavdevice: Improve example in deprecation message for opengl and sdl
On 2024-04-14 21:24 +0200, Nicolas George wrote: > Nicolas George (12024-04-14): > > Either we find options to make ffplay display frames as fast as > > possible, or we must document to the user that no adequate replacement > > exists. > > Please add “-vf setpts=0”. It still has a little more latency than a > built-in device, but at least the feature is not *completely* broken. Thank for your feedback. I sent a v2 with `-vf setpts=0`. > > Or we make a point of fixing the devices that were broken. > > We still should. As long as we are not able to get it fixed, an improved suggestion in the deprecation message seems better than what we have now. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH v2] configure: support msvc build inside WSL
On 2024-04-27 22:14 +0200, Timo Rothenpieler wrote: > --- > configure | 7 ++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/configure b/configure > index 8101b4fce6..89af5f75e7 100755 > --- a/configure > +++ b/configure > @@ -5036,7 +5036,12 @@ probe_cc(){ > else > _ident=$($_cc --version 2>/dev/null | head -n1 | tr -d '\r') > fi > -_DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< 2>&1 | awk > '\''/including/ { sub(/^.*file: */, ""); gsub(/\\/, "/"); if (!match($$0, / > /)) print "$@:", $$0 }'\'' > $(@:.o=.d)' > +if [ -x "$(command -v wslpath)" ]; then > +_DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< 2>&1 | > awk '\''/including/ { sub(/^.*file: */, ""); if (!match($$0, / /)) { print > $$0 } }'\'' | xargs -d\\n -n1 wslpath -u | awk '\''BEGIN { printf "%s:", "$@" > }; { sub(/\r/,""); printf " %s", $$0 }; END { print "" }'\'' > $(@:.o=.d)' > + > +else > +_DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< 2>&1 | > awk '\''/including/ { sub(/^.*file: */, ""); gsub(/\\/, "/"); if (!match($$0, > / /)) print "$@:", $$0 }'\'' > $(@:.o=.d)' > +fi > _DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -showIncludes -Zs' > _cflags_speed="-O2" > _cflags_size="-O1" > -- Should be good enough if it doesn't break MSVC builds outside of WSL. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] lavc/bsf: add a showinfo filter
On 2024-01-29 19:42 +0100, Anton Khirnov wrote: [...] > --- a/doc/bitstream_filters.texi > +++ b/doc/bitstream_filters.texi > @@ -887,6 +887,10 @@ For example, to set PTS equal to DTS (not recommended if > B-frames are involved): > ffmpeg -i INPUT -c:a copy -bsf:a setts=pts=DTS out.mkv > @end example > > +@section showinfo > +Log basic packet information. Mainly useful for testing, debugging, > +and development. > + Maybe it's a good idea to state something about the stability of the output format. I assume it's to be treated like other logging and is not expected to stay stable. Not sure how much it helps to state it clearly, but it can't hurt IMHO. [...] > --- /dev/null > +++ b/libavcodec/bsf/showinfo.c [...] > +static int showinfo_filter(AVBSFContext *ctx, AVPacket *pkt) > +{ > +ShowinfoContext *priv = ctx->priv_data; > + > +while (1) { > +int ret; > + > +ret = ff_bsf_get_packet_ref(ctx, pkt); > +if (ret < 0) > +return ret; > + > +av_log(ctx, AV_LOG_INFO, > + "n:%7"PRIu64" " > + "size:%7d " > + "pts:%s pt:%s " > + "dts:%s dt:%s " > + "ds:%"PRId64" d:%s " > + "\n", > + priv->nb_packets, pkt->size, > + av_ts2str(pkt->pts), av_ts2timestr(pkt->pts, > &ctx->time_base_in), > + av_ts2str(pkt->dts), av_ts2timestr(pkt->dts, > &ctx->time_base_in), > + pkt->duration, av_ts2timestr(pkt->duration, > &ctx->time_base_in)); > + > +priv->nb_packets++; > + > +return 0; > +} > +} It's late here and I surely must be missing something. Anyway, why do we use a while loop here? Best regards, Alexander [...] ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 2/2] avcodec: remove sonic lossy/lossless audio
On 2024-02-28 19:36 +0100, Jean-Baptiste Kempf wrote: > > On Wed, 28 Feb 2024, at 18:55, James Almer wrote: > > On 2/28/2024 10:31 AM, J. Dekker wrote: > >> > >> Michael Niedermayer writes: > >> > >>> [[PGP Signed Part:Undecided]] > >>> On Wed, Feb 28, 2024 at 01:56:10PM +0100, J. Dekker wrote: > This was an experimental/research codec of which ffmpeg is the only > encoder and decoder, > >>> > >>> > development has stalled > >>> > >>> Thats not true, there was private dicussion making sonic the most > >>> advanced audio codec in FFmpeg a few months ago. > >>> Iam not saying that will happen, i am just saying there was a > >>> discussion about it. And that iam in principle interrested in > >>> working on this. Its possible i will not have enough time ... > >>> > >> > >> The last commit which actually changed the codec was > >> 6026a5ad4f135476c7a1f51f8cfa7f4cc2ca0283 by you in 2013 which is over 10 > >> years ago. For an experimental codec I think it's pretty safe to say > >> that development has stalled. > >> > >> Keeping the codec around based on 'what if?'s doesn't seem > >> reasonable. Besides, if you do make sonic the most advanced audio codec > >> in FFmpeg there's nothing which says you couldn't re-add it at a later > >> date when it's being actively developed again. > > > > Does it hurt keeping it around? If it can at some point be developed > > again, then removing the codec id to re-add it later will be a bit dirty. > > > > IMO, just disable both modules by default during configure, or tag the > > encoder as experimental to prevent new streams to be created unless > > explicitly requested knowing that it's an unfinished format. > > +1 +1 But if it stays it should be regularly compiled (at least on a fate client). Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH v2] libavdevice: Improve example in deprecation message for opengl and sdl
On 2024-06-02 11:27 +0200, Alexander Strasser via ffmpeg-devel wrote: > On 2024-04-29 23:53 +0200, Alexander Strasser via ffmpeg-devel wrote: > > When piping ffmpeg into ffplay both programs write a status line in > > the terminal. That causes flickering and invisibility of one or the > > other status line. > > > > As compromise set ffplay log level to warning, so it doesn't show > > the status line. > > > > The user is usually testing ffmpeg command lines and want's a > > preview of the result. This way the user can see the ffmpeg output > > and still see errors and warnings from ffplay, should they occur. > > > > Additionally set PTS to zero in ffplay to lessen the delay until > > the frames are displayed. Without it delay is quite observable > > when e.g. live capturing with low frame rates. > > --- > > > > Same as previous patch, but with setpts=0 in ffplay as suggested by > > Nicolas George. > > > > > > libavdevice/opengl_enc.c | 2 +- > > libavdevice/sdl2.c | 2 +- > > 2 files changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/libavdevice/opengl_enc.c b/libavdevice/opengl_enc.c > > index 6f7a30ff9e..93d3959880 100644 > > --- a/libavdevice/opengl_enc.c > > +++ b/libavdevice/opengl_enc.c > > @@ -1067,7 +1067,7 @@ static av_cold int > > opengl_write_header(AVFormatContext *h) > > av_log(opengl, AV_LOG_WARNING, > > "The opengl output device is deprecated due to being > > fundamentally incompatible with libavformat API. " > > "For monitoring purposes in ffmpeg you can output to a file or > > use pipes and a video player.\n" > > -"Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay -\n" > > +"Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay > > -loglevel warning -vf setpts=0 -\n" > > ); > > opengl->warned = 1; > > } > > diff --git a/libavdevice/sdl2.c b/libavdevice/sdl2.c > > index 779c8e08b0..491c8dafe8 100644 > > --- a/libavdevice/sdl2.c > > +++ b/libavdevice/sdl2.c > > @@ -167,7 +167,7 @@ static int sdl2_write_header(AVFormatContext *s) > > av_log(sdl, AV_LOG_WARNING, > > "The sdl output device is deprecated due to being > > fundamentally incompatible with libavformat API. " > > "For monitoring purposes in ffmpeg you can output to a file or > > use pipes and a video player.\n" > > -"Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay -\n" > > +"Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay > > -loglevel warning -vf setpts=0 -\n" > > ); > > sdl->warned = 1; > > } > > -- > > > Will try to push soon'ish if I don't hear any objections. Finally pushed. Was way more "ish" than "soon"... Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] avutil/imgutils: av_image_check_size2() ensure width and height fit in 32bit
On 2024-07-10 15:51 +0200, Anton Khirnov wrote: > Quoting Michael Niedermayer (2024-07-10 15:44:47) > > Do you still object to a 32bit check on width and height ? > > If not i intend to apply a patch adding such limits > > If you object i will take this to the TC > > In my first reply in this thread I asked for a very simple thing - > justify this commit, as the commit message provided ZERO arguments for > why is this done and what it actually improves. > > Instead of answering the question you keep painting ever wordier walls > of text. I'm not reading all that. Just answer the question, in the form > suitable for a commit message. As most of the time a communications problem AFAICS :( The answer Anton was probably looking for: The intention of av_image_check_size2 (and it it's predecessors) always was to use a bigger integer type (64bit) to check width and height fit into the limits of the next smaller integer type (32bit). Unfortunately it wasn't spelled out explicitly in the commit message back then, and the implementation incorrectly assumed that INT_MAX would always refer to 32bit signed max. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 2/2] libavcodec/dnxuc_parser: Use av_fourcc2str instead of av_fourcc_make_string
On 2024-10-12 23:36 +0200, martin schitter wrote: > On 12.10.24 23:18, epira...@gmail.com wrote: > > Maybe just squash them into one commit. > > Yes -- this looks like the most desirable solution. > > And thanks to Alex for the suggested improvement! Thank you Martin and Marvin for the quick response! Pushed a squashed version with a reworded commit message. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-devel] [PATCH 1/2] lavc/dnxuc_parser: Adhere to av_fourcc_make_string API
The documentation of av_fourcc_make_string states the passed in buffer must be of at least the size of AV_FOURCC_MAX_STRING_SIZE Also move the buffer into inner scope where it is used. Fixes: CID 1632380 --- libavcodec/dnxuc_parser.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavcodec/dnxuc_parser.c b/libavcodec/dnxuc_parser.c index 55d576345c..896758c794 100644 --- a/libavcodec/dnxuc_parser.c +++ b/libavcodec/dnxuc_parser.c @@ -68,7 +68,6 @@ static int dnxuc_parse(AVCodecParserContext *s, const uint8_t **poutbuf, int *poutbuf_size, const uint8_t *buf, int buf_size) { -char fourcc_buf[5]; const int HEADER_SIZE = 37; int icmp_offset = 0; @@ -96,6 +95,8 @@ static int dnxuc_parse(AVCodecParserContext *s, pc->nr_bytes = AV_RL32(buf+29+icmp_offset) - 8; if (!avctx->codec_tag) { +char fourcc_buf[AV_FOURCC_MAX_STRING_SIZE]; + av_fourcc_make_string(fourcc_buf, pc->fourcc_tag); av_log(avctx, AV_LOG_INFO, "dnxuc_parser: '%s' %dx%d %dbpp %d\n", fourcc_buf, -- ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-devel] [PATCH 2/2] libavcodec/dnxuc_parser: Use av_fourcc2str instead of av_fourcc_make_string
The string representation of the FourCC is only used once for logging. --- Could also merge this with the first patch in this series and make it a single patch. Or drop this one. I don't have a strong opinion on these details. libavcodec/dnxuc_parser.c | 5 + 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/libavcodec/dnxuc_parser.c b/libavcodec/dnxuc_parser.c index 896758c794..12472c7a2d 100644 --- a/libavcodec/dnxuc_parser.c +++ b/libavcodec/dnxuc_parser.c @@ -95,11 +95,8 @@ static int dnxuc_parse(AVCodecParserContext *s, pc->nr_bytes = AV_RL32(buf+29+icmp_offset) - 8; if (!avctx->codec_tag) { -char fourcc_buf[AV_FOURCC_MAX_STRING_SIZE]; - -av_fourcc_make_string(fourcc_buf, pc->fourcc_tag); av_log(avctx, AV_LOG_INFO, "dnxuc_parser: '%s' %dx%d %dbpp %d\n", -fourcc_buf, +av_fourcc2str(pc->fourcc_tag), pc->width, pc->height, (pc->nr_bytes*8)/(pc->width*pc->height), pc->nr_bytes); -- ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 3/4] fftools/opt_common: stop accessing a private field
On 2024-10-14 19:22 +0200, Anton Khirnov wrote: > Quoting Alexander Strasser via ffmpeg-devel (2024-10-14 18:27:24) > > On 2024-10-14 17:52 +0200, Michael Niedermayer wrote: > > > On Mon, Oct 14, 2024 at 01:36:46PM +0200, Anton Khirnov wrote: > > > > --- > > > > fftools/opt_common.c | 4 +--- > > > > 1 file changed, 1 insertion(+), 3 deletions(-) > > > > > > > > diff --git a/fftools/opt_common.c b/fftools/opt_common.c > > > > index 021ed75272..34da2cee7d 100644 > > > > --- a/fftools/opt_common.c > > > > +++ b/fftools/opt_common.c > > > > @@ -808,7 +808,6 @@ int show_filters(void *optctx, const char *opt, > > > > const char *arg) > > > > printf("Filters:\n" > > > > " T.. = Timeline support\n" > > > > " .S. = Slice threading\n" > > > > - " ..C = Command support\n" > > > > " A = Audio input/output\n" > > > > " V = Video input/output\n" > > > > " N = Dynamic number and/or type of input/output\n" > > > > @@ -833,10 +832,9 @@ int show_filters(void *optctx, const char *opt, > > > > const char *arg) > > > >( i && (filter->flags & > > > > AVFILTER_FLAG_DYNAMIC_OUTPUTS))) ? 'N' : '|'; > > > > } > > > > *descr_cur = 0; > > > > -printf(" %c%c%c %-17s %-10s %s\n", > > > > +printf(" %c%c %-17s %-10s %s\n", > > > > filter->flags & AVFILTER_FLAG_SUPPORT_TIMELINE ? 'T' : > > > > '.', > > > > filter->flags & AVFILTER_FLAG_SLICE_THREADS? 'S' : > > > > '.', > > > > - filter->process_command? 'C' : > > > > '.', > > > > filter->name, descr, filter->description); > > > > } > > > > #else > > > > > > The commit message is not describing this change accurately > > > > > > Its not just "not accessing a priavte field", it removes information > > > from the printed filter list > > > > Learning question: How can we see this is a private field? > > It is documented in the header. I figured as much but couldn't find a hint in in avfilter.h You changed it in a previous patch of this series or am I reading it wrong? Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 3/4] fftools/opt_common: stop accessing a private field
On 2024-10-14 22:35 +0200, Anton Khirnov wrote: > Quoting Alexander Strasser via ffmpeg-devel (2024-10-14 22:21:38) > > > It is documented in the header. > > > > I figured as much but couldn't find a hint in in avfilter.h > > > > You changed it in a previous patch of this series or am I reading it wrong? > > I don't follow, I changed what? No, I don't mean you did sth. I'm just too stupid to read where in avfilter.h it is documented to be private. So I'm asking what is written where that indicates this. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 3/4] fftools/opt_common: stop accessing a private field
On 2024-10-15 10:37 +0200, epira...@gmail.com wrote: > > > On 15 Oct 2024, at 10:30, Anton Khirnov wrote: > > > Quoting Alexander Strasser via ffmpeg-devel (2024-10-15 07:34:26) > >> On 2024-10-14 22:35 +0200, Anton Khirnov wrote: > >>> Quoting Alexander Strasser via ffmpeg-devel (2024-10-14 22:21:38) > >>>>> It is documented in the header. > >>>> > >>>> I figured as much but couldn't find a hint in in avfilter.h > >>>> > >>>> You changed it in a previous patch of this series or am I reading it > >>>> wrong? > >>> > >>> I don't follow, I changed what? > >> > >> No, I don't mean you did sth. > >> > >> I'm just too stupid to read where in avfilter.h it is documented > >> to be private. > >> > >> So I'm asking what is written where that indicates this. > > > > Here: > > http://git.videolan.org/?p=ffmpeg.git;a=blob;f=libavfilter/avfilter.h;h=b88b31a834094f15d3159b017438499f1809b82f;hb=HEAD#l247 > > > > Of course experience shows that such warnings do not really work, as > > users ignore or fail to notice them. > > Yes because approaches like „everything below this line“ > falls apart horribly in Doxygen as it is completely lost there. > > Same for IntelliSense-like things in editors. Thanks Anton for pointing to the exact line. Now it all makes sense. I was looking at the header and the AVFilter struct multiple times. First at the beginning of the struct, then searching and later out of paranoia paging up and down. The thing is, I didn't expect nor see that comment as it was just somewhere in between and looking like documentation of some other field. Then I went to the HTML rendered by Doxygen and like epirat07 pointed out, of course couldn't find any hint either... > > Which is why we have been switching > > to an approach that outright removes private information from public > > headers, but that first requires to eliminate its use. Sure, I agree to that direction. Still that functionality is useful and while it can be improved I would hope for a solution that doesn't drop the feature now and hopes for it to comeback at some later point. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 3/4] fftools/opt_common: stop accessing a private field
On 2024-10-15 15:09 +0200, Anton Khirnov wrote: > Quoting James Almer (2024-10-15 14:54:08) > > On 10/15/2024 6:57 AM, Anton Khirnov wrote: > > > avfilter_process_command() may or may not return ENOSYS whether that > > > flag is set or not, so I don't see what exactly would it be useful for. > > > > I see, although I wouldn't expect ENOSYS for any other case than > > "unsupported". If a command fails, imo it would be EINVAL, or maybe ENOMEM. > > Correct, but > * some commands work on all filters; for now it's just "ping", but we > can add more in the future; > * the "enable" command works on all filters flagged with > AVFILTER_FLAG_SUPPORT_TIMELINE; again, we may add more such > "semi-generic" commands in the future; > * filters that do implement the process_command() callback will still > return ENOSYS when you send them a command they do not support. > > So checking for the existence of process_command() does not really tell > you anything specific, and the same would hold for the hypothetical flag > that would replace it. > > > > > > Same holds for printing the capability in fftools - just what is the > > > user expected to do with that information? > > > > Know they can use the send command interrupt for a given filter without > > having it unconditionally fail, i guess. But for that matter, is the > > list of supported commands available anywhere for the user? Is there an > > API to query them, or is it expected to be only in the documentation? > > If there's no API, then maybe printing this is pointless. > > There is no such API, which I agree would be useful - but if it did > exist we would again not need the flag. For me that flag is more about if some filter brings commands of its own. Generic stuff that we will add should not be indicated with the C flag. Though adding more flags for the generic stuff like we have with T now should be fine for some time to come before it gets unwieldy. Listing and querying of filter caps has much room for improvement, but as long as no one has particular interest in doing that, at least I don't see it as very important right now. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 1/2] configure: suggest installing nasm/yasm before using --disable-x86asm
On 2024-10-03 04:04 +0200, Lynne via ffmpeg-devel wrote: > On 01/10/2024 15:24, vipyne wrote: > > --- > > configure | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/configure b/configure > > index c8fb49a7a4..d178ef59dc 100755 > > --- a/configure > > +++ b/configure > > @@ -6460,7 +6460,7 @@ EOF > > for program in $x86asmexe nasm yasm; do > > probe_x86asm $program && break > > done > > -disabled x86asm && die "nasm/yasm not found or too old. Use > > --disable-x86asm for a crippled build." > > +disabled x86asm && die "nasm/yasm not found or too old. Please > > install/update nasm or yasm or use --disable-x86asm for a slower build." > > X86ASMFLAGS="-f $objformat" > > test -n "$extern_prefix" && append X86ASMFLAGS "-DPREFIX" > > case "$objformat" in > > Could you remove the yasm mention? Its been holding us back and we've > discussed dropping support for it enough in recent time to go ahead and do > it any day now. > Otherwise LGTM. No opinion on yasm, but IMHO the new wording proposal regarding the build is a little bit ambigous. What do you think about the following? ...use --disable-x86asm for a build without hand-optimized assembly. I would hope it's clearer and more precise. Best regards, Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-devel] [RFC PATCH 3/2] FIXUP
--- Sorry I forgot this fixup to the previous patch, that I had in my work tree but not committed... tests/fate-run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/fate-run.sh b/tests/fate-run.sh index 72251ec571..bed8f7127c 100755 --- a/tests/fate-run.sh +++ b/tests/fate-run.sh @@ -652,7 +652,7 @@ if test -e "$ref" || test $cmp = "oneline" || test $cmp = "null" || test $cmp = null) cat "$outfile">$cmpfile ;; esac cmperr=$? -if test -e "$ref".alt && !(test $cmp = "oneline" || test $cmp = "null" || test $cmp = "grep") ; then +if test $cmperr != 0 && test -e "$ref".alt && !(test $cmp = "oneline" || test $cmp = "null" || test $cmp = "grep") ; then case $cmp in diff) diff -u -b "$ref".alt "$outfile">$cmpfile ;; rawdiff)diff -u"$ref".alt "$outfile">$cmpfile ;; -- ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-devel] [RFC PATCH 1/2] Reapply "tests/fate: disable compression for zlib-based codecs"
The problems that caused the revert will be fixed with the follow-up change right after this commit. This reverts commit e206e72b83a0e512e21694a43af4df2b53f6d045. --- tests/fate/cover-art.mak | 6 ++-- tests/fate/image.mak | 4 +-- tests/fate/lavf-image.mak | 5 +-- tests/fate/lavf-video.mak | 4 +-- tests/fate/mov.mak| 2 +- tests/fate/vcodec.mak | 4 ++- tests/ref/fate/copy-apng | 4 +-- tests/ref/fate/cover-art-aiff-id3v2-remux | 6 ++-- tests/ref/fate/cover-art-flac-remux | 6 ++-- tests/ref/fate/cover-art-mp3-id3v2-remux | 6 ++-- tests/ref/fate/mov-cover-image| 6 ++-- tests/ref/fate/png-icc| 6 ++-- tests/ref/fate/png-mdcv | 4 +-- tests/ref/lavf/apng | 4 +-- tests/ref/lavf/apng.png | 4 +-- tests/ref/lavf/gray16be.png | 4 +-- tests/ref/lavf/png| 4 +-- tests/ref/lavf/rgb48be.png| 4 +-- tests/ref/seek/vsynth_lena-flashsv| 40 +++ tests/ref/vsynth/vsynth1-flashsv | 4 +-- tests/ref/vsynth/vsynth1-mpng | 4 +-- tests/ref/vsynth/vsynth1-zlib | 4 +-- tests/ref/vsynth/vsynth2-flashsv | 4 +-- tests/ref/vsynth/vsynth2-mpng | 4 +-- tests/ref/vsynth/vsynth2-zlib | 4 +-- tests/ref/vsynth/vsynth3-flashsv | 4 +-- tests/ref/vsynth/vsynth3-mpng | 4 +-- tests/ref/vsynth/vsynth3-zlib | 4 +-- tests/ref/vsynth/vsynth_lena-flashsv | 4 +-- tests/ref/vsynth/vsynth_lena-mpng | 4 +-- tests/ref/vsynth/vsynth_lena-zlib | 4 +-- 31 files changed, 87 insertions(+), 84 deletions(-) diff --git a/tests/fate/cover-art.mak b/tests/fate/cover-art.mak index faa2182745..7f8958e33f 100644 --- a/tests/fate/cover-art.mak +++ b/tests/fate/cover-art.mak @@ -37,14 +37,14 @@ FATE_COVER_ART_REMUX-$(call ALLYES, FILE_PROTOCOL FLAC_DEMUXER MJPEG_DECODER \ AIFF_DEMUXER BMP_DECODER PNG_DECODER \ FRAMECRC_MUXER PIPE_PROTOCOL)\ += fate-cover-art-aiff-id3v2-remux -fate-cover-art-aiff-id3v2-remux: CMD = transcode flac $(TARGET_SAMPLES)/cover_art/cover_art.flac aiff "-map 0 -map 0:v -map 0:v -map 0:v -c:a pcm_s16be -c:v:0 copy -filter:v:1 scale -c:v:1 png -filter:v:2 scale -c:v:2 bmp -c:v:3 copy -write_id3v2 1 -metadata:g unknown_key=unknown_value -metadata compilation=foo -metadata:s:v:0 title=first -metadata:s:v:1 title=second -metadata:s:v:1 comment=Illustration -metadata:s:v:2 title=third -metadata:s:v:2 comment=Conductor -metadata:s:v:3 title=fourth -metadata:s:v:3 comment=Composer" "-map 0 -c copy -t 0.1" "-show_entries format_tags:stream_tags:stream_disposition=attached_pic:stream=index,codec_name" +fate-cover-art-aiff-id3v2-remux: CMD = transcode flac $(TARGET_SAMPLES)/cover_art/cover_art.flac aiff "-map 0 -map 0:v -map 0:v -map 0:v -c:a pcm_s16be -c:v:0 copy -filter:v:1 scale -c:v:1 png -compression_level:v:1 0 -filter:v:2 scale -c:v:2 bmp -c:v:3 copy -write_id3v2 1 -metadata:g unknown_key=unknown_value -metadata compilation=foo -metadata:s:v:0 title=first -metadata:s:v:1 title=second -metadata:s:v:1 comment=Illustration -metadata:s:v:2 title=third -metadata:s:v:2 comment=Conductor -metadata:s:v:3 title=fourth -metadata:s:v:3 comment=Composer" "-map 0 -c copy -t 0.1" "-show_entries format_tags:stream_tags:stream_disposition=attached_pic:stream=index,codec_name" FATE_COVER_ART_REMUX-$(call ALLYES, FILE_PROTOCOL MP3_DEMUXER MJPEG_DECODER \ SCALE_FILTER PNG_ENCODER BMP_ENCODER\ MP3_MUXER BMP_DECODER PNG_DECODER \ FRAMECRC_MUXER PIPE_PROTOCOL) \ += fate-cover-art-mp3-id3v2-remux -fate-cover-art-mp3-id3v2-remux: CMD = transcode mp3 $(TARGET_SAMPLES)/exif/embedded_small.mp3 mp3 "-map 0 -map 0:v -map 0:v -c:a copy -filter:v:0 scale -filter:v:2 scale -c:v:0 bmp -c:v:1 copy -c:v:2 png -metadata:s:v:0 comment=Band/Orchestra" "-map 0 -c copy -t 0.1" "-show_entries stream_tags:stream_disposition=attached_pic:stream=index,codec_name" +fate-cover-art-mp3-id3v2-remux: CMD = transcode mp3 $(TARGET_SAMPLES)/exif/embedded_small.mp3 mp3 "-map 0 -map 0:v -map 0:v -c:a copy -filter:v:0 scale -filter:v:2 scale -c:v:0 bmp -c:v:1 copy -c:v:2 png -compression_level:v:2 0 -metadata:s:v:0 comment=Band/Orchestra" "-map 0 -c copy -t 0.1" "-show_entries stream_tags:stream_disposition=attached_pic:stream=index,codec_name" # Also covers muxing and demuxing of nonstandard channel layouts into FLAC # as well as the unorthodox multi_dim_quant option of the FLAC encoder. @@ -55,7 +55,7 @@ FATE_COVER_ART_REMUX-$(call
Re: [FFmpeg-devel] [RFC PATCH 0/2] Make fate tests succeed with zlib-ng
On 2024-10-18 21:02 +0200, Michael Niedermayer wrote: > On Fri, Oct 18, 2024 at 02:02:48PM +0200, Alexander Strasser via ffmpeg-devel > wrote: > > This is as subject notes an RFC. I wanted to send it out quickly. > > Didn't actually test on zlib systems yet (old and new). > > > > So it is not that heavily tested yet and maybe has rough edges I > > didn't notice. > > > > I hope this would help to unbreak zlib-ng systems and not disturb > > systems with older zlib versions. > > > > The strategy is > > > > 1. re-apply Ramiro's patch to use compression level 0 > > 2. fix the 2 tests that fail with older zlib with extra ref file > > > > The mechanism should only be used when other solutions are not > > available. The alternative files could be dropped in the future > > e.g. when no more fate clients fail because of it. [...] > --- ./tests/ref/fate/mov-cover-image.alt 2024-10-18 20:58:45.047495704 > +0200 > +++ tests/data/fate/mov-cover-image 2024-10-18 20:59:42.975941144 +0200 > @@ -20,7 +20,7 @@ > 0, -1088, -1088, 1024,6, 0x027e00e8, F=0x5 > 0,-64,-64, 1024,6, 0x027e00e8 > 1, 0, 0,0,25441, 0xe82503b0 > -2, 0, 0,0, 1084000, 0x70fc8139 > +2, 0, 0,0, 1084000, 0x413c7ee9 > 0,960,960, 1024,6, 0x027e00e8 > 0, 1984, 1984, 1024,6, 0x027e00e8 > 0, 3008, 3008, 1024,6, 0x027e00e8 > Test mov-cover-image failed. Look at tests/data/fate/mov-cover-image.err for > details. > make: *** [tests/Makefile:311: fate-mov-cover-image] Error 1 Ah sorry, my bad. I forgot to apply the second hunk of the diff to the .alt ref file. I would assume with that change added it should work. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 3/4] fftools/opt_common: stop accessing a private field
On 2024-10-18 13:16 +0200, Anton Khirnov wrote: > Quoting Alexander Strasser via ffmpeg-devel (2024-10-18 12:55:49) > > FTR and FWIW it was useful for me for identifying filters that can do > > more with commands than timeline enable/disable. > > And then what do you do with this list of filters? I look at the results of that query and look into those filters that interest me individually. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [RFC PATCH 2/2] fate: Make it possible to have alternative reference files
On 2024-10-18 16:36 +0200, Lynne via ffmpeg-devel wrote: > On 18/10/2024 14:41, Hendrik Leppkes wrote: > > On Fri, Oct 18, 2024 at 2:09 PM Alexander Strasser via ffmpeg-devel > > wrote: > > > This caused differences > > > with 2 fate tests depending on the zlib version used. > > > > 2 fate tests? > > https://fate.ffmpeg.org/report.cgi?time=20241016173824&slot=x86_32-msvc14-dll-md-windows-native > > > > This entire approach feels extremely brittle for the future. > > > > - Hendrik > > Yeah, definitely. > These days, other libraries like miniz are getting used as well, so > hardcoding each case separately is no better than what we have currently. Hmm not sure about the build from Hendrik. This was with a build with zlib and compression level 0? What I tried to do and describe is to account for a bug in older zlib versions. I didn't want to have alternative refs for every implementation. I actually oppose to that! Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-devel] [RFC PATCH 2/2] fate: Make it possible to have alternative reference files
Sometimes deps (external from FFmpeg) can cause different results either because of bugs or because of drop in replacements. This feature of alternate reference files should only be used where absolutely necessary because other solutions are not feasible in practice. Maintaining two reference files is a burden and updating one or the other can easily be forgotten. We currently have this problem with zlib-ng. On systems where the zlib-ng is used the results are different. In commit bce5855afb25d318e090c2e6c16117f065458356 we avoided the problem by using compression level 0. That fixed the problem, but introduced a problem with original zlib. This caused differences with 2 fate tests depending on the zlib version used. See zlib commit 8ba393e70d984d902b15b9e6876f4d0d38ae4be8 . After re-applying bce5855afb25d318e090c2e6c16117f065458356 this patch fixes the 2 mentioned cases for older zlib versions by allowing an alternative reference file. The files accommodate for the bug in the older version. --- tests/fate-run.sh | 10 +++ tests/ref/fate/mov-cover-image.alt | 42 ++ tests/ref/fate/png-mdcv.alt| 22 3 files changed, 74 insertions(+) create mode 100644 tests/ref/fate/mov-cover-image.alt create mode 100644 tests/ref/fate/png-mdcv.alt diff --git a/tests/fate-run.sh b/tests/fate-run.sh index 309ab85134..72251ec571 100755 --- a/tests/fate-run.sh +++ b/tests/fate-run.sh @@ -652,6 +652,16 @@ if test -e "$ref" || test $cmp = "oneline" || test $cmp = "null" || test $cmp = null) cat "$outfile">$cmpfile ;; esac cmperr=$? +if test -e "$ref".alt && !(test $cmp = "oneline" || test $cmp = "null" || test $cmp = "grep") ; then +case $cmp in +diff) diff -u -b "$ref".alt "$outfile">$cmpfile ;; +rawdiff)diff -u"$ref".alt "$outfile">$cmpfile ;; +oneoff) oneoff "$ref".alt "$outfile">$cmpfile ;; +stddev) stddev "$ref".alt "$outfile">$cmpfile ;; +esac +cmperr=$? +fi + test $err = 0 && err=$cmperr if [ "$report_type" = "ignore" ]; then test $err = 0 || echo "IGNORE\t${test}" && err=0 && unset sig diff --git a/tests/ref/fate/mov-cover-image.alt b/tests/ref/fate/mov-cover-image.alt new file mode 100644 index 00..bb94b86939 --- /dev/null +++ b/tests/ref/fate/mov-cover-image.alt @@ -0,0 +1,42 @@ +ad553810e0ce362697a2b21544daebde *tests/data/fate/mov-cover-image.mp4 +2063262 tests/data/fate/mov-cover-image.mp4 +#extradata 0:2, 0x00340022 +#tb 0: 1/44100 +#media_type 0: audio +#codec_id 0: aac +#sample_rate 0: 44100 +#channel_layout_name 0: stereo +#tb 1: 1/9 +#media_type 1: video +#codec_id 1: mjpeg +#dimensions 1: 600x600 +#sar 1: 96/96 +#tb 2: 1/9 +#media_type 2: video +#codec_id 2: png +#dimensions 2: 600x600 +#sar 2: 1/1 +0, -2112, -2112, 1024,6, 0x027e00e8, F=0x5, S=1, 10 +0, -1088, -1088, 1024,6, 0x027e00e8, F=0x5 +0,-64,-64, 1024,6, 0x027e00e8 +1, 0, 0,0,25441, 0xe82503b0 +2, 0, 0,0, 1084000, 0x70fc8139 +0,960,960, 1024,6, 0x027e00e8 +0, 1984, 1984, 1024,6, 0x027e00e8 +0, 3008, 3008, 1024,6, 0x027e00e8 +0, 4032, 4032, 1024,6, 0x027e00e8 +[STREAM] +index=0 +codec_name=aac +DISPOSITION:attached_pic=0 +[/STREAM] +[STREAM] +index=1 +codec_name=mjpeg +DISPOSITION:attached_pic=1 +[/STREAM] +[STREAM] +index=2 +codec_name=png +DISPOSITION:attached_pic=1 +[/STREAM] diff --git a/tests/ref/fate/png-mdcv.alt b/tests/ref/fate/png-mdcv.alt new file mode 100644 index 00..1339fe3a46 --- /dev/null +++ b/tests/ref/fate/png-mdcv.alt @@ -0,0 +1,22 @@ +b674209fd9cd8eff945a6bc1a4b306d3 *tests/data/fate/png-mdcv.image2pipe +2774240 tests/data/fate/png-mdcv.image2pipe +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 1280x720 +#sar 0: 0/1 +0, 0, 0,1, 2764800, 0x2bfc7b42 +frames.frame.0.side_data_list.side_data.0.side_data_type="Content light level metadata" +frames.frame.0.side_data_list.side_data.0.max_content=1000 +frames.frame.0.side_data_list.side_data.0.max_average=200 +frames.frame.0.side_data_list.side_data.1.side_data_type="Mastering display metadata" +frames.frame.0.side_data_list.side_data.1.red_x="13250/5" +frames.frame.0.side_data_list.side_data.1.red_y="7500/5" +frames.frame.0.side_data_list.side_data.1.green_x="34000/5" +frames.frame.0.side_data_list.side_data.1.green_y="16000/5" +frames.frame.0.side_data_list.side_data.1.blue_x="2/5" +frames.frame.0.side_data_list.side_data.1.blue_y="0/5" +frames.frame.0.side_data_list.side_data.1.white_point_x="15635/5" +frames.frame.0.side_data_list.side_data.1.white_point_y
[FFmpeg-devel] [RFC PATCH 0/2] Make fate tests succeed with zlib-ng
This is as subject notes an RFC. I wanted to send it out quickly. Didn't actually test on zlib systems yet (old and new). So it is not that heavily tested yet and maybe has rough edges I didn't notice. I hope this would help to unbreak zlib-ng systems and not disturb systems with older zlib versions. The strategy is 1. re-apply Ramiro's patch to use compression level 0 2. fix the 2 tests that fail with older zlib with extra ref file The mechanism should only be used when other solutions are not available. The alternative files could be dropped in the future e.g. when no more fate clients fail because of it. Best regards, Alexander Alexander Strasser (2): Reapply "tests/fate: disable compression for zlib-based codecs" fate: Make it possible to have alternative reference files tests/fate-run.sh | 10 ++ tests/fate/cover-art.mak | 6 ++-- tests/fate/image.mak | 4 +-- tests/fate/lavf-image.mak | 5 +-- tests/fate/lavf-video.mak | 4 +-- tests/fate/mov.mak| 2 +- tests/fate/vcodec.mak | 4 ++- tests/ref/fate/copy-apng | 4 +-- tests/ref/fate/cover-art-aiff-id3v2-remux | 6 ++-- tests/ref/fate/cover-art-flac-remux | 6 ++-- tests/ref/fate/cover-art-mp3-id3v2-remux | 6 ++-- tests/ref/fate/mov-cover-image| 6 ++-- tests/ref/fate/mov-cover-image.alt| 42 +++ tests/ref/fate/png-icc| 6 ++-- tests/ref/fate/png-mdcv | 4 +-- tests/ref/fate/png-mdcv.alt | 22 tests/ref/lavf/apng | 4 +-- tests/ref/lavf/apng.png | 4 +-- tests/ref/lavf/gray16be.png | 4 +-- tests/ref/lavf/png| 4 +-- tests/ref/lavf/rgb48be.png| 4 +-- tests/ref/seek/vsynth_lena-flashsv| 40 ++--- tests/ref/vsynth/vsynth1-flashsv | 4 +-- tests/ref/vsynth/vsynth1-mpng | 4 +-- tests/ref/vsynth/vsynth1-zlib | 4 +-- tests/ref/vsynth/vsynth2-flashsv | 4 +-- tests/ref/vsynth/vsynth2-mpng | 4 +-- tests/ref/vsynth/vsynth2-zlib | 4 +-- tests/ref/vsynth/vsynth3-flashsv | 4 +-- tests/ref/vsynth/vsynth3-mpng | 4 +-- tests/ref/vsynth/vsynth3-zlib | 4 +-- tests/ref/vsynth/vsynth_lena-flashsv | 4 +-- tests/ref/vsynth/vsynth_lena-mpng | 4 +-- tests/ref/vsynth/vsynth_lena-zlib | 4 +-- 34 files changed, 161 insertions(+), 84 deletions(-) create mode 100644 tests/ref/fate/mov-cover-image.alt create mode 100644 tests/ref/fate/png-mdcv.alt -- ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [RFC PATCH 0/2] Make fate tests succeed with zlib-ng
On 2024-10-18 15:55 +0100, Derek Buitenhuis wrote: > On 10/18/2024 1:02 PM, Alexander Strasser via ffmpeg-devel wrote: > > Alexander Strasser (2): > > Reapply "tests/fate: disable compression for zlib-based codecs" > > fate: Make it possible to have alternative reference files > > I want to add this here, since I brought it up on IRC. > > I think this entire saga has been pretty silly, and a workaround for > what is fundementally a bad test. Testing the exact contents and size > of encoded output here is fundementally the wrong thing to test and > provides no value as a test. I'd argue it provides negative value. > > For a lossles encoder, especially one that uses external deps, but this > applies to internal ones too, almost no value is provided by ensuring > that its output is bit-exact - I'd actually consider it negative value. [...] Regarding especially the general assertion, there is still the question: How should the tests be done? With which software? Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] avcodec/hw_base_encode: fix use after free on close
On 2024-10-17 20:23 +0200, Marvin Scholz wrote: > The way the linked list of images was freed caused a > use after free, by accessing pic->next after pic was > already freed. > > Regression from 48a1a12968345bf673db1e1cbb5c64bd3529c50c > > Fix CID1633236 > --- > libavcodec/hw_base_encode.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/libavcodec/hw_base_encode.c b/libavcodec/hw_base_encode.c > index 912c707a68f..4d8bf4fe71d 100644 > --- a/libavcodec/hw_base_encode.c > +++ b/libavcodec/hw_base_encode.c > @@ -802,14 +802,14 @@ int ff_hw_base_encode_init(AVCodecContext *avctx, > FFHWBaseEncodeContext *ctx) > return 0; > } > > int ff_hw_base_encode_close(FFHWBaseEncodeContext *ctx) > { > -FFHWBaseEncodePicture *pic; > - > -for (pic = ctx->pic_start; pic; pic = pic->next) > +for (FFHWBaseEncodePicture *pic = ctx->pic_start, *next_pic = pic; pic; > pic = next_pic) { > +next_pic = pic->next; > base_encode_pic_free(pic); > +} LGTM I think it would be better to name next_pic just next. So the line would look like: next = pic->next; That would be in line with the other 2 similar loops in the file. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 3/4] fftools/opt_common: stop accessing a private field
On 2024-10-15 21:24 +0200, Anton Khirnov wrote: > Quoting Alexander Strasser via ffmpeg-devel (2024-10-15 21:05:54) > > Still that functionality is useful > > How is it useful? It gives you no actionable information. Seems this was just applied already. FTR and FWIW it was useful for me for identifying filters that can do more with commands than timeline enable/disable. Mostly changing filter options via commands. Not saying that the discoverability and help for filter commands cannot be improved further, but removing something that was already there does not help either. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 3/4] fftools/opt_common: stop accessing a private field
On 2024-10-14 17:52 +0200, Michael Niedermayer wrote: > On Mon, Oct 14, 2024 at 01:36:46PM +0200, Anton Khirnov wrote: > > --- > > fftools/opt_common.c | 4 +--- > > 1 file changed, 1 insertion(+), 3 deletions(-) > > > > diff --git a/fftools/opt_common.c b/fftools/opt_common.c > > index 021ed75272..34da2cee7d 100644 > > --- a/fftools/opt_common.c > > +++ b/fftools/opt_common.c > > @@ -808,7 +808,6 @@ int show_filters(void *optctx, const char *opt, const > > char *arg) > > printf("Filters:\n" > > " T.. = Timeline support\n" > > " .S. = Slice threading\n" > > - " ..C = Command support\n" > > " A = Audio input/output\n" > > " V = Video input/output\n" > > " N = Dynamic number and/or type of input/output\n" > > @@ -833,10 +832,9 @@ int show_filters(void *optctx, const char *opt, const > > char *arg) > >( i && (filter->flags & > > AVFILTER_FLAG_DYNAMIC_OUTPUTS))) ? 'N' : '|'; > > } > > *descr_cur = 0; > > -printf(" %c%c%c %-17s %-10s %s\n", > > +printf(" %c%c %-17s %-10s %s\n", > > filter->flags & AVFILTER_FLAG_SUPPORT_TIMELINE ? 'T' : '.', > > filter->flags & AVFILTER_FLAG_SLICE_THREADS? 'S' : '.', > > - filter->process_command? 'C' : '.', > > filter->name, descr, filter->description); > > } > > #else > > The commit message is not describing this change accurately > > Its not just "not accessing a priavte field", it removes information > from the printed filter list Learning question: How can we see this is a private field? This information was useful. How can we bring it back if we decide it's not OK too test if this field is NULL? Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-devel] [PATCH v2 1/3] Reapply "tests/fate: disable compression for zlib-based codecs"
This reverts commit e206e72b83a0e512e21694a43af4df2b53f6d045. --- tests/fate/cover-art.mak | 6 ++-- tests/fate/image.mak | 4 +-- tests/fate/lavf-image.mak | 5 +-- tests/fate/lavf-video.mak | 4 +-- tests/fate/mov.mak| 2 +- tests/fate/vcodec.mak | 4 ++- tests/ref/fate/copy-apng | 4 +-- tests/ref/fate/cover-art-aiff-id3v2-remux | 6 ++-- tests/ref/fate/cover-art-flac-remux | 6 ++-- tests/ref/fate/cover-art-mp3-id3v2-remux | 6 ++-- tests/ref/fate/mov-cover-image| 6 ++-- tests/ref/fate/png-icc| 6 ++-- tests/ref/fate/png-mdcv | 4 +-- tests/ref/lavf/apng | 4 +-- tests/ref/lavf/apng.png | 4 +-- tests/ref/lavf/gray16be.png | 4 +-- tests/ref/lavf/png| 4 +-- tests/ref/lavf/rgb48be.png| 4 +-- tests/ref/seek/vsynth_lena-flashsv| 40 +++ tests/ref/vsynth/vsynth1-flashsv | 4 +-- tests/ref/vsynth/vsynth1-mpng | 4 +-- tests/ref/vsynth/vsynth1-zlib | 4 +-- tests/ref/vsynth/vsynth2-flashsv | 4 +-- tests/ref/vsynth/vsynth2-mpng | 4 +-- tests/ref/vsynth/vsynth2-zlib | 4 +-- tests/ref/vsynth/vsynth3-flashsv | 4 +-- tests/ref/vsynth/vsynth3-mpng | 4 +-- tests/ref/vsynth/vsynth3-zlib | 4 +-- tests/ref/vsynth/vsynth_lena-flashsv | 4 +-- tests/ref/vsynth/vsynth_lena-mpng | 4 +-- tests/ref/vsynth/vsynth_lena-zlib | 4 +-- 31 files changed, 87 insertions(+), 84 deletions(-) diff --git a/tests/fate/cover-art.mak b/tests/fate/cover-art.mak index faa2182745..7f8958e33f 100644 --- a/tests/fate/cover-art.mak +++ b/tests/fate/cover-art.mak @@ -37,14 +37,14 @@ FATE_COVER_ART_REMUX-$(call ALLYES, FILE_PROTOCOL FLAC_DEMUXER MJPEG_DECODER \ AIFF_DEMUXER BMP_DECODER PNG_DECODER \ FRAMECRC_MUXER PIPE_PROTOCOL)\ += fate-cover-art-aiff-id3v2-remux -fate-cover-art-aiff-id3v2-remux: CMD = transcode flac $(TARGET_SAMPLES)/cover_art/cover_art.flac aiff "-map 0 -map 0:v -map 0:v -map 0:v -c:a pcm_s16be -c:v:0 copy -filter:v:1 scale -c:v:1 png -filter:v:2 scale -c:v:2 bmp -c:v:3 copy -write_id3v2 1 -metadata:g unknown_key=unknown_value -metadata compilation=foo -metadata:s:v:0 title=first -metadata:s:v:1 title=second -metadata:s:v:1 comment=Illustration -metadata:s:v:2 title=third -metadata:s:v:2 comment=Conductor -metadata:s:v:3 title=fourth -metadata:s:v:3 comment=Composer" "-map 0 -c copy -t 0.1" "-show_entries format_tags:stream_tags:stream_disposition=attached_pic:stream=index,codec_name" +fate-cover-art-aiff-id3v2-remux: CMD = transcode flac $(TARGET_SAMPLES)/cover_art/cover_art.flac aiff "-map 0 -map 0:v -map 0:v -map 0:v -c:a pcm_s16be -c:v:0 copy -filter:v:1 scale -c:v:1 png -compression_level:v:1 0 -filter:v:2 scale -c:v:2 bmp -c:v:3 copy -write_id3v2 1 -metadata:g unknown_key=unknown_value -metadata compilation=foo -metadata:s:v:0 title=first -metadata:s:v:1 title=second -metadata:s:v:1 comment=Illustration -metadata:s:v:2 title=third -metadata:s:v:2 comment=Conductor -metadata:s:v:3 title=fourth -metadata:s:v:3 comment=Composer" "-map 0 -c copy -t 0.1" "-show_entries format_tags:stream_tags:stream_disposition=attached_pic:stream=index,codec_name" FATE_COVER_ART_REMUX-$(call ALLYES, FILE_PROTOCOL MP3_DEMUXER MJPEG_DECODER \ SCALE_FILTER PNG_ENCODER BMP_ENCODER\ MP3_MUXER BMP_DECODER PNG_DECODER \ FRAMECRC_MUXER PIPE_PROTOCOL) \ += fate-cover-art-mp3-id3v2-remux -fate-cover-art-mp3-id3v2-remux: CMD = transcode mp3 $(TARGET_SAMPLES)/exif/embedded_small.mp3 mp3 "-map 0 -map 0:v -map 0:v -c:a copy -filter:v:0 scale -filter:v:2 scale -c:v:0 bmp -c:v:1 copy -c:v:2 png -metadata:s:v:0 comment=Band/Orchestra" "-map 0 -c copy -t 0.1" "-show_entries stream_tags:stream_disposition=attached_pic:stream=index,codec_name" +fate-cover-art-mp3-id3v2-remux: CMD = transcode mp3 $(TARGET_SAMPLES)/exif/embedded_small.mp3 mp3 "-map 0 -map 0:v -map 0:v -c:a copy -filter:v:0 scale -filter:v:2 scale -c:v:0 bmp -c:v:1 copy -c:v:2 png -compression_level:v:2 0 -metadata:s:v:0 comment=Band/Orchestra" "-map 0 -c copy -t 0.1" "-show_entries stream_tags:stream_disposition=attached_pic:stream=index,codec_name" # Also covers muxing and demuxing of nonstandard channel layouts into FLAC # as well as the unorthodox multi_dim_quant option of the FLAC encoder. @@ -55,7 +55,7 @@ FATE_COVER_ART_REMUX-$(call ALLYES, FILE_PROTOCOL MOV_DEMUXER OGG_DEMUXER \ FLAC_MUXER FL
[FFmpeg-devel] [PATCH v2 2/3] fate: Make it possible to have alternative reference files
Sometimes deps (external from FFmpeg) can cause different results either because of bugs or because of drop in replacements. This feature of alternate reference files should only be used where absolutely necessary because other solutions are not feasible in practice. Maintaining two reference files is a burden and updating one or the other can easily be forgotten. Signed-off-by: Alexander Strasser --- tests/fate-run.sh | 10 ++ 1 file changed, 10 insertions(+) diff --git a/tests/fate-run.sh b/tests/fate-run.sh index c61a4dc992..5e9acb253d 100755 --- a/tests/fate-run.sh +++ b/tests/fate-run.sh @@ -687,6 +687,16 @@ if test -e "$ref" || test $cmp = "oneline" || test $cmp = "null" || test $cmp = null) cat "$outfile">$cmpfile ;; esac cmperr=$? +if test $cmperr != 0 && test -e "$ref".alt && !(test $cmp = "oneline" || test $cmp = "null" || test $cmp = "grep") ; then +case $cmp in +diff) diff -u -b "$ref".alt "$outfile">$cmpfile ;; +rawdiff)diff -u"$ref".alt "$outfile">$cmpfile ;; +oneoff) oneoff "$ref".alt "$outfile">$cmpfile ;; +stddev) stddev "$ref".alt "$outfile">$cmpfile ;; +esac +cmperr=$? +fi + test $err = 0 && err=$cmperr if [ "$report_type" = "ignore" ]; then test $err = 0 || echo "IGNORE\t${test}" && err=0 && unset sig -- ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-devel] [PATCH v2 0/3] Make fate tests succeed with zlib-ng
This is a fixed up version of the series I sent before. This worked for me on Ubuntu 20.04 but probably will break with older zlib versions as Hendrik pointed out in the previous thread. Either we must update zlib on affected FATE clients or add more .alt files to them as well. We could also go the further the "no_file_checksums" as was demonstrated by James' series. I still prefer this way because it's simpler and retains the value of the tests. Of course I'm not opposing to implement zlib compression in FFmpeg, but until that happens FATE should also work on zlib-ng systems IMHO. Best regards, Alexander Alexander Strasser (3): Reapply "tests/fate: disable compression for zlib-based codecs" fate: Make it possible to have alternative reference files fate: Add .alt files so all tests pass on Ubuntu 20.04 tests/fate-run.sh | 10 ++ tests/fate/cover-art.mak | 6 ++-- tests/fate/image.mak | 4 +-- tests/fate/lavf-image.mak | 5 +-- tests/fate/lavf-video.mak | 4 +-- tests/fate/mov.mak| 2 +- tests/fate/vcodec.mak | 4 ++- tests/ref/fate/copy-apng | 4 +-- tests/ref/fate/cover-art-aiff-id3v2-remux | 6 ++-- tests/ref/fate/cover-art-flac-remux | 6 ++-- tests/ref/fate/cover-art-mp3-id3v2-remux | 6 ++-- tests/ref/fate/mov-cover-image| 6 ++-- tests/ref/fate/mov-cover-image.alt| 42 +++ tests/ref/fate/png-icc| 6 ++-- tests/ref/fate/png-mdcv | 4 +-- tests/ref/fate/png-mdcv.alt | 22 tests/ref/lavf/apng | 4 +-- tests/ref/lavf/apng.png | 4 +-- tests/ref/lavf/gray16be.png | 4 +-- tests/ref/lavf/png| 4 +-- tests/ref/lavf/rgb48be.png| 4 +-- tests/ref/seek/vsynth_lena-flashsv| 40 ++--- tests/ref/vsynth/vsynth1-flashsv | 4 +-- tests/ref/vsynth/vsynth1-mpng | 4 +-- tests/ref/vsynth/vsynth1-zlib | 4 +-- tests/ref/vsynth/vsynth2-flashsv | 4 +-- tests/ref/vsynth/vsynth2-mpng | 4 +-- tests/ref/vsynth/vsynth2-zlib | 4 +-- tests/ref/vsynth/vsynth3-flashsv | 4 +-- tests/ref/vsynth/vsynth3-mpng | 4 +-- tests/ref/vsynth/vsynth3-zlib | 4 +-- tests/ref/vsynth/vsynth_lena-flashsv | 4 +-- tests/ref/vsynth/vsynth_lena-mpng | 4 +-- tests/ref/vsynth/vsynth_lena-zlib | 4 +-- 34 files changed, 161 insertions(+), 84 deletions(-) create mode 100644 tests/ref/fate/mov-cover-image.alt create mode 100644 tests/ref/fate/png-mdcv.alt -- ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-devel] [PATCH v2 3/3] fate: Add .alt files so all tests pass on Ubuntu 20.04
In commit bce5855afb25d318e090c2e6c16117f065458356 we avoided the problem by using compression level 0. That fixed the problem, but introduced a problem with older versioins of original zlib. This caused differences 2 or more fate tests depending on the zlib version used. See e.g. zlib commit 8ba393e70d984d902b15b9e6876f4d0d38ae4be8 . After re-applying bce5855afb25d318e090c2e6c16117f065458356 this patch fixes the 2 mentioned cases for older zlib versions by allowing an alternative reference file. The files accommodate for the bug in the older version. Signed-off-by: Alexander Strasser --- tests/ref/fate/mov-cover-image.alt | 42 ++ tests/ref/fate/png-mdcv.alt| 22 2 files changed, 64 insertions(+) create mode 100644 tests/ref/fate/mov-cover-image.alt create mode 100644 tests/ref/fate/png-mdcv.alt diff --git a/tests/ref/fate/mov-cover-image.alt b/tests/ref/fate/mov-cover-image.alt new file mode 100644 index 00..0c99cf7ae7 --- /dev/null +++ b/tests/ref/fate/mov-cover-image.alt @@ -0,0 +1,42 @@ +ad553810e0ce362697a2b21544daebde *tests/data/fate/mov-cover-image.mp4 +2063262 tests/data/fate/mov-cover-image.mp4 +#extradata 0:2, 0x00340022 +#tb 0: 1/44100 +#media_type 0: audio +#codec_id 0: aac +#sample_rate 0: 44100 +#channel_layout_name 0: stereo +#tb 1: 1/9 +#media_type 1: video +#codec_id 1: mjpeg +#dimensions 1: 600x600 +#sar 1: 96/96 +#tb 2: 1/9 +#media_type 2: video +#codec_id 2: png +#dimensions 2: 600x600 +#sar 2: 1/1 +0, -2112, -2112, 1024,6, 0x027e00e8, F=0x5, S=1, 10 +0, -1088, -1088, 1024,6, 0x027e00e8, F=0x5 +0,-64,-64, 1024,6, 0x027e00e8 +1, 0, 0,0,25441, 0xe82503b0 +2, 0, 0,0, 1084000, 0x413c7ee9 +0,960,960, 1024,6, 0x027e00e8 +0, 1984, 1984, 1024,6, 0x027e00e8 +0, 3008, 3008, 1024,6, 0x027e00e8 +0, 4032, 4032, 1024,6, 0x027e00e8 +[STREAM] +index=0 +codec_name=aac +DISPOSITION:attached_pic=0 +[/STREAM] +[STREAM] +index=1 +codec_name=mjpeg +DISPOSITION:attached_pic=1 +[/STREAM] +[STREAM] +index=2 +codec_name=png +DISPOSITION:attached_pic=1 +[/STREAM] diff --git a/tests/ref/fate/png-mdcv.alt b/tests/ref/fate/png-mdcv.alt new file mode 100644 index 00..1339fe3a46 --- /dev/null +++ b/tests/ref/fate/png-mdcv.alt @@ -0,0 +1,22 @@ +b674209fd9cd8eff945a6bc1a4b306d3 *tests/data/fate/png-mdcv.image2pipe +2774240 tests/data/fate/png-mdcv.image2pipe +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 1280x720 +#sar 0: 0/1 +0, 0, 0,1, 2764800, 0x2bfc7b42 +frames.frame.0.side_data_list.side_data.0.side_data_type="Content light level metadata" +frames.frame.0.side_data_list.side_data.0.max_content=1000 +frames.frame.0.side_data_list.side_data.0.max_average=200 +frames.frame.0.side_data_list.side_data.1.side_data_type="Mastering display metadata" +frames.frame.0.side_data_list.side_data.1.red_x="13250/5" +frames.frame.0.side_data_list.side_data.1.red_y="7500/5" +frames.frame.0.side_data_list.side_data.1.green_x="34000/5" +frames.frame.0.side_data_list.side_data.1.green_y="16000/5" +frames.frame.0.side_data_list.side_data.1.blue_x="2/5" +frames.frame.0.side_data_list.side_data.1.blue_y="0/5" +frames.frame.0.side_data_list.side_data.1.white_point_x="15635/5" +frames.frame.0.side_data_list.side_data.1.white_point_y="16450/5" +frames.frame.0.side_data_list.side_data.1.min_luminance="50/1" +frames.frame.0.side_data_list.side_data.1.max_luminance="1000/1" -- ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] fate: Add a target for listing failed tests
Hi Martin! On 2024-11-07 11:36 +0200, Martin Storsjö wrote: > If running tests with "make -j fate", the execution will stop > after the first failing test. To get an overview of the whole > test suite, one rather would run "make -k -j fate", which then > again buries the results about what tests actually failed further > up in the console log. > > Add a target so one can run "make fate-list-failing", to see a list > of all tests that failed the last time they were executed. > > Also add a companion target "fate-clear-results" which removes all > the old test results. (When executing a subset of tests, the result > files of all tests that aren't executed stay untouched. This also > allows getting rid of results for tests that no longer are present > in the testsuite.) Looks good and useful to me. Just a few ideas follow: > --- > So far, I've always just manually run > "cat tests/data/fate/*.rep | cut -f 1-2 -d : | grep -v :0", but > perhaps we should at least wrap it up in something more convenient > for the other developers. > --- > doc/build_system.txt | 6 ++ > doc/fate.texi| 7 +++ > tests/Makefile | 6 ++ > 3 files changed, 19 insertions(+) > > diff --git a/doc/build_system.txt b/doc/build_system.txt > index 0b1b0c2054..91c7a5e9af 100644 > --- a/doc/build_system.txt > +++ b/doc/build_system.txt > @@ -30,6 +30,12 @@ fate > fate-list > List all fate/regression test targets. > > +fate-list-failing > +List the fate tests that failed the last time they were executed. > + > +fate-clear-results > +Remove the test results from previous test executions. > + Would it be better to use the same description as int fate.texi ? > install > Install headers, libraries and programs. > > diff --git a/doc/fate.texi b/doc/fate.texi > index 17644ce65a..bf01816af8 100644 > --- a/doc/fate.texi > +++ b/doc/fate.texi > @@ -208,6 +208,13 @@ Download/synchronize sample files to the configured > samples directory. > @item fate-list > Will list all fate/regression test targets. > > +@item fate-list-failing > +List the fate tests that failed the last time they were executed. > + > +@item fate-clear-results > +Remove the test results from previous test executions (getting rid of > +potentially stale results from fate-list-failing). > + > @item fate > Run the FATE test suite (requires the fate-suite dataset). > @end table > diff --git a/tests/Makefile b/tests/Makefile > index 9b70145015..adb0799328 100644 > --- a/tests/Makefile > +++ b/tests/Makefile > @@ -313,6 +313,12 @@ $(FATE): $(FATE_UTILS:%=tests/%$(HOSTEXESUF)) | > $(FATE_OUTDIRS) > fate-list: > @printf '%s\n' $(sort $(FATE)) > > +fate-list-failing: > + @cat tests/data/fate/*.rep | cut -f 1-2 -d : | grep -v :0 | sed > 's/:.*//;s/^/fate-/' > + > +fate-clear-results: > + @rm -f tests/data/fate/*.rep > + > coverage.info: TAG = LCOV > coverage.info: > $(M)lcov -q -d $(CURDIR) -b $(patsubst src%,./,$(SRC_LINK)) --capture | > \ > -- Maybe the attached patch would make sense on top of your changes? Best regards, Alexander From 130ca8d85dcb1fecace596e1f23e0414d56348ef Mon Sep 17 00:00:00 2001 From: Alexander Strasser Date: Sun, 1 Dec 2024 15:06:53 +0100 Subject: [PATCH] fate: Simplify implementation for target fate-list-failing Make it a little easier to read and use one awk invocation as opposed to a combination of cat, cut, grep, and sed. Signed-off-by: Alexander Strasser --- tests/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Makefile b/tests/Makefile index adb0799328..2c4ad7c18f 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -314,7 +314,7 @@ fate-list: @printf '%s\n' $(sort $(FATE)) fate-list-failing: - @cat tests/data/fate/*.rep | cut -f 1-2 -d : | grep -v :0 | sed 's/:.*//;s/^/fate-/' + @awk -F: '$$2 != 0 { print "fate-" $$1 }' tests/data/fate/*.rep fate-clear-results: @rm -f tests/data/fate/*.rep -- ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-devel] [PATCH] avcodec/cbs_h266: Fix typo
Introduced in commit 98698ed3c24bfd0b1e6e6db943b5f25f6046cee7 Fixes: CID1635788 CID1635789 Signed-off-by: Alexander Strasser --- Just picked this up because of Coverity. Not sure how to verify/test this change, but it seems plausible. Alexander libavcodec/cbs_h266_syntax_template.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/cbs_h266_syntax_template.c b/libavcodec/cbs_h266_syntax_template.c index 43def9220f..029fbd5e4f 100644 --- a/libavcodec/cbs_h266_syntax_template.c +++ b/libavcodec/cbs_h266_syntax_template.c @@ -1151,7 +1151,7 @@ static int FUNC(sps)(CodedBitstreamContext *ctx, RWContext *rw, else infer(sps_subpic_width_minus1[0], max_width_minus1); if (current->sps_pic_height_max_in_luma_samples > ctb_size_y) -us(hlen, sps_subpic_height_minus1[0], 0, max_width_minus1, 1, 0); +us(hlen, sps_subpic_height_minus1[0], 0, max_height_minus1, 1, 0); else infer(sps_subpic_height_minus1[0], max_height_minus1); if (!current->sps_independent_subpics_flag) { -- ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] fate: Add a target for listing failed tests
On 2024-12-04 16:07 +0200, Martin Storsjö wrote: > On Sun, 1 Dec 2024, Alexander Strasser via ffmpeg-devel wrote: [...] > > > > Would it be better to use the same description as int fate.texi ? > > Sure, I can add that extra parenthesis. Thanks. [...] > > > +fate-clear-results: > > > + @rm -f tests/data/fate/*.rep > > > + > > > coverage.info: TAG = LCOV > > > coverage.info: > > > $(M)lcov -q -d $(CURDIR) -b $(patsubst src%,./,$(SRC_LINK)) --capture | > > > \ > > > -- > > > > Maybe the attached patch would make sense on top of your changes? > > Nice, thanks. I'm not very familiar with awk so I seldom write such things > myself, but this does indeed seem neater. > > As a second question, do you have any opinion on the fate target names? > Should the second be "fate-clear-failing" to match the list-failing one? But > technically it's not only about clearing the failing ones but clearing all > results... I think fate-clear-results is better, because it more accurately describes what it does. Maybe fate-clear-reports would be even more precise. That is if I recall correctly that the `.rep` suffix was chosen as an abbrevation for report. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] avcodec/png{dec, enc}: update mDCV and cLLI chunk capitalization
Hi Leo! On 2024-12-01 09:20 -0500, Leo Izen wrote: > The PNGv3 Specification Draft [1] has changed the capitalization > of mDCV and cLLI chunks (formerly mDCv and cLLi). This patch updates > FFmpeg to work with the new chunk names while retaining decode-side > compatibility with files created using the old names. > > [1]: https://w3c.github.io/png/ > > Signed-off-by: Leo Izen > --- > libavcodec/pngdec.c | 12 +++- > libavcodec/pngenc.c | 4 ++-- > tests/ref/fate/png-mdcv | 2 +- > 3 files changed, 10 insertions(+), 8 deletions(-) LGTM. Your changes are sensible and complete as far as I could check. Only problem I could think of is being to fast, as it isn't in the latest published version of the W3C yet. If I understood chunk naming conventions correctly they marked those 2 chunks unsafe to copy, which will probably stay that way. So I think the patch can be pushed. Best regards, Alexander > diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c > index c5b32c166d..f8cb61775e 100644 > --- a/libavcodec/pngdec.c > +++ b/libavcodec/pngdec.c > @@ -757,7 +757,7 @@ static int populate_avctx_color_fields(AVCodecContext > *avctx, AVFrame *frame) > if (clli) { > /* > * 0.0001 divisor value > - * see: https://www.w3.org/TR/png-3/#cLLi-chunk > + * see: https://www.w3.org/TR/png-3/#cLLI-chunk > */ > clli->MaxCLL = s->clli_max / 1; > clli->MaxFALL = s->clli_avg / 1; > @@ -1566,18 +1566,20 @@ static int decode_frame_common(AVCodecContext *avctx, > PNGDecContext *s, > > break; > } > -case MKTAG('c', 'L', 'L', 'i'): > +case MKTAG('c', 'L', 'L', 'i'): /* legacy spelling, for backwards > compat */ > +case MKTAG('c', 'L', 'L', 'I'): > if (bytestream2_get_bytes_left(&gb_chunk) != 8) { > -av_log(avctx, AV_LOG_WARNING, "Invalid cLLi chunk size: > %d\n", bytestream2_get_bytes_left(&gb_chunk)); > +av_log(avctx, AV_LOG_WARNING, "Invalid cLLI chunk size: > %d\n", bytestream2_get_bytes_left(&gb_chunk)); > break; > } > s->have_clli = 1; > s->clli_max = bytestream2_get_be32u(&gb_chunk); > s->clli_avg = bytestream2_get_be32u(&gb_chunk); > break; > -case MKTAG('m', 'D', 'C', 'v'): > +case MKTAG('m', 'D', 'C', 'v'): /* legacy spelling, for backward > compat */ > +case MKTAG('m', 'D', 'C', 'V'): > if (bytestream2_get_bytes_left(&gb_chunk) != 24) { > -av_log(avctx, AV_LOG_WARNING, "Invalid mDCv chunk size: > %d\n", bytestream2_get_bytes_left(&gb_chunk)); > +av_log(avctx, AV_LOG_WARNING, "Invalid mDCV chunk size: > %d\n", bytestream2_get_bytes_left(&gb_chunk)); > break; > } > s->have_mdcv = 1; > diff --git a/libavcodec/pngenc.c b/libavcodec/pngenc.c > index cb79c04e11..37e8d5bfcf 100644 > --- a/libavcodec/pngenc.c > +++ b/libavcodec/pngenc.c > @@ -445,7 +445,7 @@ static int encode_headers(AVCodecContext *avctx, const > AVFrame *pict) > AVContentLightMetadata *clli = (AVContentLightMetadata *) > side_data->data; > AV_WB32(s->buf, clli->MaxCLL * 1); > AV_WB32(s->buf + 4, clli->MaxFALL * 1); > -png_write_chunk(&s->bytestream, MKTAG('c', 'L', 'L', 'i'), s->buf, > 8); > +png_write_chunk(&s->bytestream, MKTAG('c', 'L', 'L', 'I'), s->buf, > 8); > } > > side_data = av_frame_get_side_data(pict, > AV_FRAME_DATA_MASTERING_DISPLAY_METADATA); > @@ -460,7 +460,7 @@ static int encode_headers(AVCodecContext *avctx, const > AVFrame *pict) > AV_WB16(s->buf + 14, PNG_Q2D(mdcv->white_point[1], 5)); > AV_WB32(s->buf + 16, PNG_Q2D(mdcv->max_luminance, 1)); > AV_WB32(s->buf + 20, PNG_Q2D(mdcv->min_luminance, 1)); > -png_write_chunk(&s->bytestream, MKTAG('m', 'D', 'C', 'v'), > s->buf, 24); > +png_write_chunk(&s->bytestream, MKTAG('m', 'D', 'C', 'V'), > s->buf, 24); > } > } > > diff --git a/tests/ref/fate/png-mdcv b/tests/ref/fate/png-mdcv > index c524a94ded..4328c56349 100644 > --- a/tests/ref/fate/png-mdcv > +++ b/tests/ref/fate/png-mdcv > @@ -1,4 +1,4 @@ > -fc68fe6c8c72343b96d2695f6913995b *tests/data/fate/png-mdcv.image2pipe > +b1837f5557ad969a3f9763840480d5c0 *tests/data/fate/png-mdcv.image2pipe > 439248 tests/data/fate/png-mdcv.image2pipe > #tb 0: 1/25 > #media_type 0: video > -- ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [ANNOUNCE] upcoming vote: TC election
On 2024-11-28 15:29 +0100, Anton Khirnov wrote: > > the current Technical Committee (TC) was elected on 2023-12-05 and its > mandate lasts for one year, so we should hold a new election soon. If > there are no unforeseen circumstances, I would like to start the vote on > Monday 2024-12-09. > > As a reminder, the TC is in charge of resolving technical disputes. If > you would like to be a TC member, please say so in a reply to this > email. I volunteer to be a TC member. Some random facts in random order to spice this up a little: * I have been around for more than 20 years * I love reading source code * I have a nag at studying languages be it natural ones or programming languages * My day job is not related to FFmpeg or audio/video projects Best regards, Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] web: Add link to conferences page
On 2024-12-08 12:36 +0100, Michael Niedermayer wrote: > Signed-off-by: Michael Niedermayer > --- > src/template_head2 | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/src/template_head2 b/src/template_head2 > index 0394ace..51da347 100644 > --- a/src/template_head2 > +++ b/src/template_head2 > @@ -29,6 +29,7 @@ >Forums >Bug Reports >https://trac.ffmpeg.org";>Wiki > + href="https://trac.ffmpeg.org/wiki/Conferences";>Conferences > > >Developers > -- Should probably be fine. Maybe wait a few more days for comments. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] configure: Include quotes around pkg_version
On 2024-12-28 12:56 +0100, Alexander Strasser via ffmpeg-devel wrote: > On 2024-12-27 08:13 -0500, Leo Izen wrote: [...] > > > > I did a bit of testing and I believe the issue is >=, specifically, it's > > being interpreted as a redirect-out to a file named "=". pkg-config works on > > my system if I run `pkg-config --libs 'aom >= 2.0'` but also it works if I > > run `pkg-config --libs aom '>=' 2.0` but if I don't quote the redirect, the > > shell expands it. > > > > I could not say why MSYS appears to be interpreting the redirect differently > > when expanding the variable, but if I had to guess, it may be a bug in its > > path-mangling (i.e. converting /foo/bar to C:\foo\bar) where it's > > interpreting "=" as a filename. I could not say for certain if this is the > > case. > > Leo's theory seems to provide a plausible explanation of the behavior. > > According to POSIX[1] the high level algo goes like this: > > 4. For each word within a command, the shell processes -escape >sequences inside dollar-single-quotes (see 2.2.4 Dollar-Single-Quotes) >and then performs various word expansions (see 2.6 Word Expansions). >In the case of a simple command, the results usually include a list of >pathnames and fields to be treated as a command name and arguments; >see 2.9 Shell Commands. > > 5. The shell performs redirection (see 2.7 Redirection) and removes > redirection >operators and their operands from the parameter list. > > To my understanding word expansions in step 4 should quote results > and thus >= shouldn't have an effect like it seems it now has on MSYS. > Presumably that is caused by the suspected MSYS path mangling mechanisms. > > > > In either case, I don't see issue with quoting it as that works on every > > system. > > I would like to look a bit more into this. Especially what is > documented for pkg-config regarding its argument syntax. > > If it's accepting the single argument syntax since a long time, > than I see no harm in including your patch Joe and would push > it soon'ish. Pushed. The one argument syntax seems to be supported for a long long time. See the details in the modified commit message. Thanks for the patch Joe. Might still make sense to report at MSYS. Maybe pointing to this discussion. Best regards, Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] avfilter/vf_grayworld: Use the correct pointer for av_log()
On 2025-01-06 05:22 +0100, Michael Niedermayer wrote: > Fixes: crash > > Found-by: Elias Myllymäki > Signed-off-by: Michael Niedermayer > --- > libavfilter/vf_grayworld.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/libavfilter/vf_grayworld.c b/libavfilter/vf_grayworld.c > index a6a51dcb7db..91b097a4b80 100644 > --- a/libavfilter/vf_grayworld.c > +++ b/libavfilter/vf_grayworld.c > @@ -266,10 +266,10 @@ static int filter_frame(AVFilterLink *inlink, AVFrame > *in) > } > /* input and output transfer will be linear */ > if (in->color_trc == AVCOL_TRC_UNSPECIFIED) { > -av_log(s, AV_LOG_WARNING, "Untagged transfer, assuming linear > light.\n"); > +av_log(ctx, AV_LOG_WARNING, "Untagged transfer, assuming linear > light.\n"); > out->color_trc = AVCOL_TRC_LINEAR; > } else if (in->color_trc != AVCOL_TRC_LINEAR) { > -av_log(s, AV_LOG_WARNING, "Gray world color correction works on > linear light only.\n"); > +av_log(ctx, AV_LOG_WARNING, "Gray world color correction works on > linear light only.\n"); > } > > td.in = in; > -- LGTM Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [RFC PATCH] avformat/rtpdec: fix another int overflow in start_time_realtime
Hi Jonathan! On 2025-01-05 04:26 -0500, Jonathan Baudanza wrote: > > > On Tue, Nov 26, 2024, at 1:35 AM, j...@jonb.org wrote: > > > > This patch replaces av_rescale, which operates on int64_t, with > > ff_parse_ntp_time, which operates on uint65_t. This will give the correct > > values for timestamps back around the NTP epoch and present day timestamps. > > > > Any feedback on this one-liner? Patch looks plausible except for the uint65_t typo and the long lines in the commit message. Will give it a try and push if it works and there are no objections from other developers. Thanks for submitting this patch! Best regards, Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] avformat/ipfsgateway: fix capitalizaton mistake
On 2025-01-07 14:18 -0500, Leo Izen wrote: > Fix the incorrect capitalization of the project name in a comment. > The project is named FFmpeg, not FFMpeg. > > Signed-off-by: Leo Izen > Reported-by: NyanMaths > --- > libavformat/ipfsgateway.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/libavformat/ipfsgateway.c b/libavformat/ipfsgateway.c > index 9a15bcf93b..1a8382d7be 100644 > --- a/libavformat/ipfsgateway.c > +++ b/libavformat/ipfsgateway.c > @@ -290,7 +290,7 @@ static int translate_ipfs_to_http(URLContext *h, const > char *uri, int flags, AVD > goto err; > } > > -// Pass the URL back to FFMpeg's protocol handler. > +// Pass the URL back to FFmpeg's protocol handler. > ret = ffurl_open_whitelist(&c->inner, fulluri, flags, > &h->interrupt_callback, options, > h->protocol_whitelist, > -- Not super urgent but LGTM ;-) Isn't the patch authored by NyanMaths though? Best regards, Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] avformat/mov: merge stts and ctts arrays into one
On 2025-01-07 10:55 -0300, James Almer wrote: > Should reduce memory usage as well as remove code duplication. > > Signed-off-by: James Almer > --- > libavformat/isom.h | 15 +- > libavformat/mov.c| 579 --- > tests/ref/fate/quickdraw | 2 +- > 3 files changed, 251 insertions(+), 345 deletions(-) [...] > diff --git a/tests/ref/fate/quickdraw b/tests/ref/fate/quickdraw > index 44610498c8..5746929502 100644 > --- a/tests/ref/fate/quickdraw > +++ b/tests/ref/fate/quickdraw > @@ -9,7 +9,7 @@ > 0, 3, 3,1, 921600, 0xc0e68764 > 0, 4, 4,1, 921600, 0xc0e68764 > 0, 5, 5,1, 921600, 0xc0e68764 > -0, 7, 7,2, 921600, 0x01a16629 > +0, 7, 7,1, 921600, 0x01a16629 Why did the duration change? Is it intended? If yes I think it would be better to explain it in the commit message. > 0, 9, 9,1, 921600, 0x01a16629 > 0, 10, 10,1, 921600, 0x01a16629 > 0, 11, 11,1, 921600, 0x01a16629 > -- Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 2/4] doc/faq: Anwser some questions about he GA, which keep popping up
Hi Ronald, hi Michael, hi all! On 2025-01-07 22:32 +0100, Michael Niedermayer wrote: > Hi Ronald > > On Tue, Jan 07, 2025 at 01:30:36PM -0500, Ronald S. Bultje wrote: > > On Tue, Jan 7, 2025 at 7:02 AM Michael Niedermayer > > wrote: > > > > > Hi Ronald > > > > > > On Mon, Jan 06, 2025 at 09:38:27PM -0500, Ronald S. Bultje wrote: > > > > On Mon, Jan 6, 2025 at 6:23 PM Michael Niedermayer < > > > mich...@niedermayer.cc> > > > > wrote: > > > > > > > > > +@subsection Can votes be bought? > > > > > > > > > > > > > Really? This is necessary? :-( > > > > > > "This" as in, "talking about the problems of the GA governance system" ? > > > > > > yes, it is necessary to talk about a problem to solve the problem and > > > build a > > > better system. > > > > > > > > > "This" as in, "adding it to our FAQ like that" > > > > > > no, its not necessary to add it. > > > > > > > It's a reflection of bad faith, we can do so much better than this. Let's > > try to be better, not worse, than what we claim "the other side" (??) is. > > This patch is unnecessary. > > Iam not able to parse what you wrote at all. In fact none of this paragraph > I see no sides, none of this. > I think you are somehow reading this patch in a unintended way First of all NAK at this patch. Second @Michael, I think the, let's say creative, way you brought up these problems, doesn't ring well with well or get thru as intended with many people. Third, AFAIU this was to start discussing that issue, but I think it's rather weird to to that in this mixed patch series. Not sure how to proceed, but I would think it's better to at least change the subject when discussing this further or maybe start a new thread by optionally quoting this patch. [...] Best regards, Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 3/4] doc/faq: Document the plan ahead for Governance
On 2025-01-07 00:23 +0100, Michael Niedermayer wrote: > Signed-off-by: Michael Niedermayer > --- > doc/faq.texi | 8 > 1 file changed, 8 insertions(+) > > diff --git a/doc/faq.texi b/doc/faq.texi > index 54c3fbb41fe..70002a8156d 100644 > --- a/doc/faq.texi > +++ b/doc/faq.texi > @@ -702,4 +702,12 @@ In recent years, a significant number of developers > contributing to the project > unlike in the past. These employees are often compensated for specific > tasks, and the voting rights, > much like the copyrights, can typically be controlled by their employers. > > +@section What is the future plan for FFmpeg Governance? > + > +Governance has 2 goals, 1st to make good decissions for FFmpeg. And 2nd is > to create > +an inclusive and motivating environment where contributors feel valued and > inspired to > +collaborate. The plan is to find out how to achieve these goals. > +For example for a system to make good decissions it needs to be hard to > manipulate > + > + Similar to patch 2/4, I think this is not a good change for the FAQ. 1. At best it doesn't really help the people reading it 2. The average reader might think, oh probably one of those outdated FAQ entries or similar 3. At worst people might understand it in any of the countless unintended ways Thus I assume this the same approach as with 2/4 to uncommonly but somehow concretely bring up open points for discussion. And would advise the same to proceed here (change subject or start new thread). Best regards, Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] avutil/frame.h: improve documentation for AV_FRAME_FLAG_LOSSLESS
On 2025-01-07 20:13 -0500, Leo Izen wrote: > It should be more clear what this flag is indicating with a more > verbose comment documenting it. > > Signed-off-by: Leo Izen > --- > libavutil/frame.h | 8 +++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/libavutil/frame.h b/libavutil/frame.h > index 993fa6b65a..e3657f193f 100644 > --- a/libavutil/frame.h > +++ b/libavutil/frame.h > @@ -666,7 +666,13 @@ typedef struct AVFrame { > */ > #define AV_FRAME_FLAG_TOP_FIELD_FIRST (1 << 4) > /** > - * A flag to mark frames which were encoded losslessly from the input. > + * A flag to mark frames that a decoder has determined were originally > encoded > + * losslessly. > + * > + * For coding bitstream formats which support both lossless and lossy > + * encoding, it is sometimes possible for a decoder to determine which method > + * was used when the bitsream was encoded. > Frames marked with this flag > + * have been identified by a decoder as having been losslessly encoded, > originally. Personally I would drop this last sentence. It's a bit verbose and adds nothing new AFAICT. > */ > #define AV_FRAME_FLAG_LOSSLESS(1 << 5) > /** > -- LGTM maybe Marton can also comment. Thanks, Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] doc/ffmpeg.texi: replace use of uncommon unicode characters
Hi James! On 2024-12-25 20:54 -0300, James Almer wrote: > Addresses ticket #11372 > > Signed-off-by: James Almer > --- > doc/ffmpeg.texi | 64 - > 1 file changed, 32 insertions(+), 32 deletions(-) > LGTM (mabye one of documentation maintainers also want to comment) Looked at it in the terminal and via man and also the HTML versions in chromium and firfox. Might depend on many things how things are actually rendered, including final font decisions etc. but at least here the in the browsers it looked also better aligned with the new symbols. Alexander [...] ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] configure: Include quotes around pkg_version
Hi Leo and Joe! On 2024-12-27 08:13 -0500, Leo Izen wrote: > On 12/26/24 6:12 PM, J Shiff wrote: > > On Wed, Dec 25, 2024 at 5:03 PM Alexander Strasser via ffmpeg-devel > > wrote: > > > > > > On 2024-12-21 19:29 -0500, J Shiff wrote: > > > > On Sat, Dec 21, 2024 at 5:44 PM Alexander Strasser via ffmpeg-devel > > > > wrote: > > > > > > > > > > On 2024-12-16 16:19 -0500, Joe Schiffler wrote: > > > > > > Since $pkg_version includes spaces, builds can fail in some MSYS > > > > > > environments. > > > > > > > > > > Could you show what the pkg_version with spaces was in your case? > > > > > > > > The value of pkg_version would be: `aom >= 2.0.0` > > > > > > Ok, thanks for coming back to this! > > > > > > What is still strange about it: What changed and where? > > > > > > These values for pkg_version should come up on every platform > > > and AFAICT it works just fine for me and many others. > > > > > > Didn't spot any relevant changes in ffmpeg configure on a quick > > > look. > > > > > > Would be better to understand why it fails only in some > > > environments and not others. > > > > Thank you for showing interest in this topic. > > > > Yeah, I also find it strange. > > If you have any recommendations for narrowing it down further, I'm > > open to suggestions. > > > > I did a bit of testing and I believe the issue is >=, specifically, it's > being interpreted as a redirect-out to a file named "=". pkg-config works on > my system if I run `pkg-config --libs 'aom >= 2.0'` but also it works if I > run `pkg-config --libs aom '>=' 2.0` but if I don't quote the redirect, the > shell expands it. > > I could not say why MSYS appears to be interpreting the redirect differently > when expanding the variable, but if I had to guess, it may be a bug in its > path-mangling (i.e. converting /foo/bar to C:\foo\bar) where it's > interpreting "=" as a filename. I could not say for certain if this is the > case. Leo's theory seems to provide a plausible explanation of the behavior. According to POSIX[1] the high level algo goes like this: 4. For each word within a command, the shell processes -escape sequences inside dollar-single-quotes (see 2.2.4 Dollar-Single-Quotes) and then performs various word expansions (see 2.6 Word Expansions). In the case of a simple command, the results usually include a list of pathnames and fields to be treated as a command name and arguments; see 2.9 Shell Commands. 5. The shell performs redirection (see 2.7 Redirection) and removes redirection operators and their operands from the parameter list. To my understanding word expansions in step 4 should quote results and thus >= shouldn't have an effect like it seems it now has on MSYS. Presumably that is caused by the suspected MSYS path mangling mechanisms. > In either case, I don't see issue with quoting it as that works on every > system. I would like to look a bit more into this. Especially what is documented for pkg-config regarding its argument syntax. If it's accepting the single argument syntax since a long time, than I see no harm in including your patch Joe and would push it soon'ish. Alexander 1. https://pubs.opengroup.org/onlinepubs/9799919799/ ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] lavc/vvc_mc: reduce sequential dependency in R-V V sad
On 2024-12-30 20:25 +0200, Rémi Denis-Courmont wrote: > Le tiistaina 24. joulukuuta 2024, 15.30.00 EET Nuo Mi a écrit : > > On Mon, Dec 23, 2024 at 11:18 PM flow gg wrote: > > > Hi, It looks like you submitted your review comments not long after the > > > patch was merged. > > > > > > Previously, regarding the VVC avg patch, you mentioned "LGTM for the > > > RISC-V > > > side. No clue about the VVC side", > > > so I contacted Nuomi in the hope that he could help merge the patch that > > > had been pending for a while. > > > > Hi Remi, > > Yes, v2 has been on the mailing list for about two weeks. > > Yes but there was only a day and a half between v2_2 and my comments, and > that's way too short. Misunderstandings can (and probably will) always happen. In case they do, as a maintainer, you should revert the parts that you consider wrong, if you feel that is better than waiting for a patch to fix the remaining problems. In some situations if a partial revert is too hard, even a full revert can be considered. Should be judged based on something like the impact you estimate and the number of users potentially affected. In any case why a patch set was reverted and how big you estimated the problems should be part of the message of the revert commit. What must not happen of course is "revert wars", but generally quickly reverting things once, should be considered instead of leaving things knowingly broken for an undetermined amount of time. I hope other developers agree to my reasoning here. If not please raise your voice. If there is no disagreement, we should maybe extend our documentation. Will have a look into that. Also there is a case for committing security relevant fixes, even if the maintainer couldn't ack them yet. IMHO we should not let those wait too long because the maintainer is not quick to respond. It's another topic, but should probably also be documented if it isn't. Also it's the lived practice of the recent decades of FFmpeg development I think. Alexander [...] ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] avformat/vqf: Propagate errors from add_metadata()
Hi Michael! On 2024-12-31 04:36 +0100, Michael Niedermayer wrote: > Suggested-by: Marton Balint > Signed-off-by: Michael Niedermayer > --- > libavformat/vqf.c | 16 ++-- > 1 file changed, 10 insertions(+), 6 deletions(-) > > diff --git a/libavformat/vqf.c b/libavformat/vqf.c > index 79deb33744b..5094724240e 100644 > --- a/libavformat/vqf.c > +++ b/libavformat/vqf.c > @@ -51,23 +51,24 @@ static int vqf_probe(const AVProbeData *probe_packet) > return AVPROBE_SCORE_EXTENSION; > } > > -static void add_metadata(AVFormatContext *s, uint32_t tag, > +static int add_metadata(AVFormatContext *s, uint32_t tag, > unsigned int tag_len, unsigned int remaining) > { > int len = FFMIN(tag_len, remaining); > char *buf, key[5] = {0}; > > if (len == UINT_MAX) > -return; > +return AVERROR(ENOMEM); > > buf = av_malloc(len+1); > if (!buf) > -return; > +return AVERROR(ENOMEM); > if (len != avio_read(s->pb, buf, len)) > -return; > +return len < 0 ? len : AVERROR_INVALIDDATA; This looks wrong if I understood this function correctly. The variable *len* is only set at the beginning of the function. If I understand the intent correctly we should either always return AVERROR_INVALIDDATA or we should store the return value of avio_read and return that if it's negative. [...] Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] SCaLE booth
Hi Rémi! On 2024-11-19 19:10 +0200, Rémi Denis-Courmont wrote: > > I plan to solicit an FFmpeg booth at SCaLE 22x to be held early next March. > Booths for open-source communities are free and include 5 full conference > passes. The exhibition area is open, and needs to be manned, on Friday > afternoon (14-18), Saturday (10-18) and Sunday morning (10-14). > > If anyone is interested in participating, please contact me off list. Please > note that: > 1) Although I don't expect any issue, this is not confirmed yet. > 2) SCaLE will not sponsor anyone. If you need sponsorship, please check with > FFmpeg's treasurer (who is not me). Sounds cool! Did you ask for a both? If you did it would be best to add an entry in the conferences page: https://trac.ffmpeg.org/wiki/Conferences Greetings, Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 2/5] lavc/container_fifo: move to lavu and make public
On 2024-12-11 15:05 +0100, Anton Khirnov wrote: > This can be useful in other places, e.g. it can replace objpool in > fftools. > > The API is modified in the following nontrivial ways: > * opaque pointers can be passed through to all user callbacks > * read and write were previously separate callbacks in order to > accomodate the caller wishing to write a new reference to the FIFO and > keep the original one; the two callbacks are now merged into one, and > a flags argument is added that allows to request such behaviour on a > per-call basis > * new peek and drain functions > --- > doc/APIchanges | 5 +- > libavcodec/Makefile| 2 +- > libavcodec/container_fifo.h| 89 -- > libavcodec/hevc/hevcdec.c | 10 +- > libavcodec/hevc/hevcdec.h | 2 +- > libavcodec/hevc/refs.c | 4 +- > libavutil/Makefile | 2 + > {libavcodec => libavutil}/container_fifo.c | 116 ++ > libavutil/container_fifo.h | 130 + > 9 files changed, 215 insertions(+), 145 deletions(-) > delete mode 100644 libavcodec/container_fifo.h > rename {libavcodec => libavutil}/container_fifo.c (51%) > create mode 100644 libavutil/container_fifo.h > > diff --git a/doc/APIchanges b/doc/APIchanges > index 13789fcea4..5d75b6077d 100644 > --- a/doc/APIchanges > +++ b/doc/APIchanges > @@ -2,10 +2,13 @@ The last version increases of all libraries were on > 2024-03-07 > > API changes, most recent first: > > -2024-12-xx - xx - lavu 59.50.100 - refstruct.h > +2024-12-xx - xx - lavu 59.50.100 - refstruct.h container_fifo.h >Add a new public header refstruct.h with new API for >reference-counted objects. > > + Add a new public header container_fifo.h with new API for > + a FIFO of container objects (e.g. AVFrame or AVPacket). I see this was already pushed. I wanted to comment mainly because of the naming. Didn't deeply check the series as a whole, but AFAICS it looks legit. I find the "container" part of the naming consusing, especially in a multimedia project. Didn't yet have brilliant ideas. Some suggestions to get started follow in no particular order: * objpool_fifo * reusable_obj_fifo * refstruct_fifo Best regards, Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH v2 0/3] Make fate tests succeed with zlib-ng
On 2024-12-16 22:02 -0500, Leo Izen wrote: > On 12/16/24 5:50 PM, Michael Niedermayer wrote: [...] > > > (e): Find a input that encodes to max 2 variants and store 2 checksums > > Doesn't fix the problem, which is that need to be aware of all the known > variants and create hacks to work with them instead of doing something more > future proof. I may be misunderstanding sth, but this is what my series does, right? > > I dont think (e) is the best solution, but if it works for all cases, > > my point is, that it is a valid solution > > > > It really isn't, because it doesn't work in all cases. It works for a > specific list of known cases. This is not the same thing. Why do you think it is not future proof? Do you expect there will be more zlib (or alternative implementation bugs) for compression level zero? My idea was to remove the .alt files after at least all fate clients have been updated to zlib implementations that don't need it anymore. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] checkasm: Print benchmarks of C-only functions
Hi Martin! On 2024-12-11 10:47 +0200, Martin Storsjö wrote: > On Wed, 23 Oct 2024, Martin Storsjö wrote: > > > This corresponds to commit 9278a14cf406f8edb5052c42b83750112bf5b515 > > in dav1d. > > > > Omitting the C-only functions doesn't speed up benchmarking > > anyway (as those has to be benchmarked before we know if we have > > any corresponding assembly functions), and being able to benchmark > > those functions without corresponding assembly can be valuable in > > a number of cases. > > --- > > tests/checkasm/checkasm.c | 48 +++ > > 1 file changed, 23 insertions(+), 25 deletions(-) > > Will push soon. > > The only concern about this change I heard was from Ramiro on irc, who > wasn't familiar with how to use the --bench= parameter for limiting > the set of functions to actually benchmark. > > (This patch doesn't cause checkasm to benchmark more than it did before, it > just prints the numbers that already were benchmarked.) > > I'll also go ahead and backport this to the 7.1 branch. It's obviously not a > regression fix or anything like that, but the change adds value for being > able to use checkasm to benchmark compiler performance. LGTM. Tested on aarch64 . Total run times match. Output had only additional lines which all were for functions ending in `_c` Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH v2 0/3] Make fate tests succeed with zlib-ng
On 2024-12-14 11:09 +0100, Anton Khirnov wrote: > Quoting Alexander Strasser via ffmpeg-devel (2024-12-01 21:13:56) > > This is a fixed up version of the series I sent before. > > > > This worked for me on Ubuntu 20.04 but probably will break > > with older zlib versions as Hendrik pointed out in the > > previous thread. Either we must update zlib on affected > > FATE clients or add more .alt files to them as well. > > > > We could also go the further the "no_file_checksums" as > > was demonstrated by James' series. > > > > I still prefer this way because it's simpler and retains > > the value of the tests. > > This seems like a hack to me. Depends on what you precisely mean by hack. It is a way to accommodate for shortcomings in older, but still widely used zlib versions. > We should not be testing for bitexact output from code that is not under > our control and does not guarantee bitexactness. Ideally! OTOH we also indirectly test that other code like C std lib functions work as expected. In this case short of bugs in zlib/zlib-ng I do not see why the output should differ with compression level 0. Maybe I'm missing something I didn't look that deep into how zlib exactly works. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] Fwd: Your message to ffmpeg-devel awaits moderator approval
On 2024-12-19 06:46 -1000, compn wrote: > On Thu, 19 Dec 2024 13:16:23 -0300, James Almer wrote: > > > On 12/19/2024 1:12 PM, compn wrote: > > > On Thu, 19 Dec 2024 10:04:53 -0300, James Almer wrote: > > >> I have no idea who added the rule for "upcoming vote", but i just > > >> removed it. > > >> > > > > > > i added upcoming vote to mod as devs were getting personal about booths > > > and whatnot. as you've removed it, now we see the flames on the list. > > > > You can't silently and unilaterally add a filter to stop a thread in its > > tracks. That is something that needs to go through the CC, and publicly > > announced. > > could you link me to the actual rules that state any of this? > > none of what you said is in the ffmpeg code of conduct. > https://ffmpeg.org/community.html > > if you cannot link me to rules that show any of what you said i broke > the rules of, i would like an apology. > > > It speaks poorly of how you would perform as part of the CC if you think > > acting alone and making bad use of your ml admin privileges is ok. > > keeping out flames is part of the ml admin duties. see for ex: > emergency moderation, moderate all users, mod individual, spam filtering > options. > > these stop flames duties were told to me by previous roots > (gabu, diego) and current roots (michael, alex). I agree that ml admins are needed and need to take action sometimes. I *fully disagree* with silent action like it happened in this case. If such an action is taken, that should be clearly communicated right here; and what it is about, how long it will last and what's going to happen with the queued emails. The decentralized/freedom aspects of email are a strong part about what makes email good. Thank you Kieran for complaining about this by opening this thread! Alexander > > reading the mails stuck in the moderation queue and clearing the > moderation queue is also part of the duties of the ml admin. > > -compn ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] avfilter/vf_scale: remove systematic PAL8 hack
On 2024-12-20 19:38 +0100, Michael Niedermayer wrote: > On Fri, Dec 20, 2024 at 02:56:54PM +0100, Niklas Haas wrote: > > On Fri, 20 Dec 2024 08:37:40 -0500 "Ronald S. Bultje" > > wrote: [...] > > > Assuming you agree with that - which is hard to argue with - don't you > > > agree that for now, we should at the very least inform users that - if > > > this > > > is what they're doing - what they're doing is inferior > > > (sws-palette-generation) and that there's a superior solution in-place > > > already (palettegen). For commandline users, this will be a string change > > > in their invocation. For API users, it's a bit more work but nothing > > > major. > > > I can integrate libavfilter in my application in a few minutes. I have > > > posted sample code on stackoverflow doing that. > > > > > > For now, this is just an informative message (at loglevel=warning) telling > > > our users about this superior experience. At some point in the future > > > (this > > > is probably 2 years from now?), the warning turns into an error. That > > > provides a clear timeline for this hypothetical swscale feature to be > > > implemented - or not. Both would be a great improvement for the vast > > > majority of our users who don't read their messages from their commandline > > > invocations until they fail. > > > > > > I only see positives here. And the best is: all of this already exists - > > > right there in FFmpeg, the toolkit which we all love. We only have to > > > inform our users about all this greatness. You must be excited about this, > > > no? > > > > > It would also be fairly straightforward to expose the palettegen > > functionality > > internally inside libavfilter and then add it directly to vf_scale. This > > would > > improve the status quo without anybody having to be the wiser. > > yes > > > > > > While it would be nice to have better palette-based dithering directly in > > libswscale as well, there is some risk of unnecessarily duplicating code at > > best, and reinventing a worse version of libavfilter at worst. Either way, > > that > > is something to consider *after* the ongoing rewrite of the core scaling > > functionality. > > yes > I do think libswscale should do any image -> image convert (its kind of what > its > intended to do) > if pal8 is left out, that seems like drawing the seperation at the wrong place > to me. > also the code from libavfilter can be moved into libswscale while libavfilter > can then depend on it and continue to present it to the user as it did before > > > > > I can't help but wonder if the better long-term solution here isn't to just > > improve the way libavfilter auto-inserts conversion filters, such that it > > could > > automatically insert a paletteuse filter when downstream requires PAL8. > > PAL8 is tricky, encoders may benefit from similarities in palettes between > frames > for others it might not matter. So automatic insertion may require some > "intelligence" to make the best choice Adding an informative message about palettegen/paletteuse is fine IMHO. Depending on future development and decisions in sws the message can be removed *or* a deprecation added at some point in the future. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH v2] fate: Add a target for listing failed tests
Hi Martin, still looks good to me. On 2024-12-04 16:08 +0200, Martin Storsjö wrote: [...] > --- a/tests/Makefile > +++ b/tests/Makefile > @@ -313,6 +313,12 @@ $(FATE): $(FATE_UTILS:%=tests/%$(HOSTEXESUF)) | > $(FATE_OUTDIRS) > fate-list: > @printf '%s\n' $(sort $(FATE)) > > +fate-list-failing: > + @awk -F: '$$2 != 0 { print "fate-" $$1 }' tests/data/fate/*.rep Unfortunately there is a small problem when calling fate-list-failing target when no .rep files are present. The target fails because we cannot open `tests/data/fate/*.rep`. No output on stdout, which is correct because no test failed, but we get error messages on stderr and a non-zero exit status. This was also present in v1, but I just spotted it only today. For now I found this way to solve it: @! ls tests/data/fate/*.rep >/dev/null 2>&1 || awk -F: '$$2 != 0 { print "fate-" $$1 }' tests/data/fate/*.rep It's a bit expensive, but I couldn't think of something better so far. Maybe it's good enough for now if there is no better idea? Could be improved later on if needed. Best regards, Alexander > + > +fate-clear-results: > + @rm -f tests/data/fate/*.rep > + > coverage.info: TAG = LCOV > coverage.info: > $(M)lcov -q -d $(CURDIR) -b $(patsubst src%,./,$(SRC_LINK)) --capture | > \ > -- ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] configure: Include quotes around pkg_version
On 2024-12-16 16:19 -0500, Joe Schiffler wrote: > Since $pkg_version includes spaces, builds can fail in some MSYS environments. Could you show what the pkg_version with spaces was in your case? Alexander > Build passing with quotes: > https://github.com/JoeSchiff/pyav-ffmpeg/actions/runs/12358403929 > > Build failing without quotes: > https://github.com/JoeSchiff/pyav-ffmpeg/actions/runs/12360472377 > > Signed-off-by: Joe Schiffler > --- > configure | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/configure b/configure > index bf55ba67fa..bb1263a8ce 100755 > --- a/configure > +++ b/configure > @@ -1521,7 +1521,7 @@ test_pkg_config(){ > funcs="$4" > shift 4 > disable $name > -test_cmd $pkg_config --exists --print-errors $pkg_version || return > +test_cmd $pkg_config --exists --print-errors "$pkg_version" || return > pkg_cflags=$($pkg_config --cflags $pkg_config_flags $pkg) > pkg_libs=$($pkg_config --libs $pkg_config_flags $pkg) > pkg_incdir=$($pkg_config --variable=includedir $pkg_config_flags $pkg) > @@ -1541,7 +1541,7 @@ test_pkg_config_cpp(){ > cond="$4" > shift 4 > disable $name > -test_cmd $pkg_config --exists --print-errors $pkg_version || return > +test_cmd $pkg_config --exists --print-errors "$pkg_version" || return > pkg_cflags=$($pkg_config --cflags $pkg_config_flags $pkg) > pkg_incdir=$($pkg_config --variable=includedir $pkg_config_flags $pkg) > pkg_incflags=$($pkg_config --cflags-only-I $pkg_config_flags $pkg) > -- ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 1/2] avcodec/mpegvideo_enc: Check FLV1 resolution limits
On 2025-01-08 05:13 +0100, Michael Niedermayer wrote: > Found-by: Elias Myllymäki > Signed-off-by: Michael Niedermayer > --- > libavcodec/mpegvideo_enc.c | 6 ++ > 1 file changed, 6 insertions(+) > > diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c > index c5f20c2d855..09df2f52a6c 100644 > --- a/libavcodec/mpegvideo_enc.c > +++ b/libavcodec/mpegvideo_enc.c > @@ -567,6 +567,12 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx) > av_log(avctx, AV_LOG_ERROR, "H.263 does not support resolutions > above 2048x1152\n"); > return AVERROR(EINVAL); > } > +if (s->codec_id == AV_CODEC_ID_FLV1 && > +(avctx->width > 65535 || > + avctx->height > 65535 )) { > +av_log(avctx, AV_LOG_ERROR, "FLV does not support resolutions above > 16bit\n"); > +return AVERROR(EINVAL); > +} > if ((s->codec_id == AV_CODEC_ID_H263 || > s->codec_id == AV_CODEC_ID_H263P || > s->codec_id == AV_CODEC_ID_RV20) && > -- LGTM Just out of curiosity, did this just produce broken video streams before this patch? Something else only a little related to this patch, but somehow to this one and all that came before. As this is in ff_mpv_encode_init and there are dozens of checks like this and the whole function is around 600 lines, it would be good to refactor this into a more readable and potentially stronger form. Best regards, Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] avformat/rtpdec: int overflow in start_time_realtime
On 2025-01-10 12:10 +0200, Martin Storsjö wrote: > On Wed, 8 Jan 2025, j...@jonb.org wrote: > > > From: Jonathan Baudanza > > > > This was previously adjusted by me in 6b3f9c2e92b. > > Unfortunately, I traded one integer overflow bug for > > another. > > > > Currently, NTP timestamps that exceed INT64_MAX > > (~Jan 20, 1968) will cause an overflow when passed > > to av_rescale. > > > > This patch replaces av_rescale, which operates on > > int64_t, with ff_parse_ntp_time, which operates on > > uint64_t. This will give the correct values for > > timestamps back around the NTP epoch and present day > > timestamps. > > --- > > libavformat/rtsp.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c > > index c48fa26d90..5ea471b40c 100644 > > --- a/libavformat/rtsp.c > > +++ b/libavformat/rtsp.c > > @@ -2320,7 +2320,7 @@ redo: > > } > > // Make real NTP start time available in AVFormatContext > > if (s->start_time_realtime == AV_NOPTS_VALUE) { > > -s->start_time_realtime = av_rescale > > (rtpctx->first_rtcp_ntp_time, 100, 1LL << 32) - NTP_OFFSET_US; > > +s->start_time_realtime = > > ff_parse_ntp_time(rtpctx->first_rtcp_ntp_time) - NTP_OFFSET_US; > > if (rtpctx->st) { > > s->start_time_realtime -= > > av_rescale_q (rtpctx->rtcp_ts_offset, > > rtpctx->st->time_base, AV_TIME_BASE_Q); > > -- > > 2.41.0 > > Looks ok - I've managed to reproduce this now. > > I'll apply this, and backport it to the 7.1 branch. Thanks Martin! FTR: I could also reproduce and confirm the fix locally. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] avformat/mov: merge stts and ctts arrays into one
On 2025-01-10 10:40 -0300, James Almer wrote: > On 1/10/2025 10:05 AM, James Almer wrote: > > On 1/7/2025 6:50 PM, Alexander Strasser via ffmpeg-devel wrote: > > > On 2025-01-07 10:55 -0300, James Almer wrote: > > > > Should reduce memory usage as well as remove code duplication. > > > > > > > > Signed-off-by: James Almer > > > > --- > > > > libavformat/isom.h | 15 +- > > > > libavformat/mov.c | 579 --- > > > > tests/ref/fate/quickdraw | 2 +- > > > > 3 files changed, 251 insertions(+), 345 deletions(-) > > > > > > [...] > > > > > > > diff --git a/tests/ref/fate/quickdraw b/tests/ref/fate/quickdraw > > > > index 44610498c8..5746929502 100644 > > > > --- a/tests/ref/fate/quickdraw > > > > +++ b/tests/ref/fate/quickdraw > > > > @@ -9,7 +9,7 @@ > > > > 0, 3, 3, 1, 921600, 0xc0e68764 > > > > 0, 4, 4, 1, 921600, 0xc0e68764 > > > > 0, 5, 5, 1, 921600, 0xc0e68764 > > > > -0, 7, 7, 2, 921600, 0x01a16629 > > > > +0, 7, 7, 1, 921600, 0x01a16629 > > > > > > Why did the duration change? > > > Is it intended? > > > If yes I think it would be better to explain it in the > > > commit message. > > > > Packet durations after this change are all taken from stts entries > > instead of calculated. This sample however is very strange as it has > > five sample entries alongside a longer edit list with unusual values. > > Oh, i found a tiny mistake in the patch that made it take the value from > stts, and as such change the test result. Still, i don't really know what is > more correct here, since the edit list is just weird. But better not change > the behavior for now. Ah cool. Thanks for clarifying. I also agree keeping the behavior shall be better until the matter is understood. > Pushed. Nice simplification! Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] swscale/cms, graph, lut3d: Use ff_-prefix, don't export, internal functions
Hi Andreas! On 2025-01-11 20:40 +0100, Andreas Rheinhardt wrote: > Andreas Rheinhardt: > > Patch attached > > Will apply this patch and my other patches tomorrow unless there are > objections. LGTM from my side (not maintaining any of the affected areas) I just reviewed them and partially tested locally. Nice clean ups. Thank you! Best regards, Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 1/2] ffbuild/bin2c: misc fix
On 2025-01-08 19:42 +0800, Jun Zhao wrote: > From: Jun Zhao > > close the input file if open output fail > > Signed-off-by: Jun Zhao > --- > ffbuild/bin2c.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/ffbuild/bin2c.c b/ffbuild/bin2c.c > index dfeedd7669..168b0c658d 100644 > --- a/ffbuild/bin2c.c > +++ b/ffbuild/bin2c.c > @@ -38,8 +38,10 @@ int main(int argc, char **argv) > return -1; > > output = fopen(argv[2], "wb"); > -if (!output) > +if (!output) { > +fclose(input); > return -1; > +} > > if (argc == 4) { > name = argv[3]; Not urgent because it's return from main. Anyway LGTM :) There is another similar instance of this problem down at the end of the function. Maybe you could also review/test my attached patch and push on top. Thanks, Alexander From cd8d74d3eddb5ed447e8d59d2288ed1eb328f5e9 Mon Sep 17 00:00:00 2001 From: Alexander Strasser Date: Sun, 12 Jan 2025 13:52:52 +0100 Subject: [PATCH] ffbuild/bin2c: Also close input stream in case of read errors Signed-off-by: Alexander Strasser --- ffbuild/bin2c.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ffbuild/bin2c.c b/ffbuild/bin2c.c index 168b0c658d..91f2d81e5b 100644 --- a/ffbuild/bin2c.c +++ b/ffbuild/bin2c.c @@ -69,8 +69,10 @@ int main(int argc, char **argv) fclose(output); -if (ferror(input) || !feof(input)) +if (ferror(input) || !feof(input)) { +fclose(input); return -1; +} fclose(input); -- ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 1/5] avcodec/ffv1enc: Fix handling of 32bit unsigned sambols
On 2025-01-10 05:06 +0100, Michael Niedermayer wrote: > This may be needed for floats > > Sponsored-by: Sovereign Tech Fund > Signed-off-by: Michael Niedermayer > --- > libavcodec/ffv1enc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/libavcodec/ffv1enc.c b/libavcodec/ffv1enc.c > index 1a0413895a1..e2db1b41640 100644 > --- a/libavcodec/ffv1enc.c > +++ b/libavcodec/ffv1enc.c > @@ -199,7 +199,7 @@ static av_always_inline av_flatten void > put_symbol_inline(RangeCoder *c, > } while (0) > > if (v) { > -const int a = FFABS(v); > +const unsigned a = is_signed ? FFABS(v) : v; > const int e = av_log2(a); > put_rac(c, state + 0, 0); > if (e <= 9) { > -- LGTM but s/sambols/symbols/ in the Subject/Git-short-message I suspect. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] fftools/ffmpeg_opt: Remove audio_drift_threshold
On 2025-01-12 22:19 +0100, Andreas Rheinhardt wrote: > Patch attached > From 1abad60fe2eba199845db35c92e27dbc4d35b93f Mon Sep 17 00:00:00 2001 > From: Andreas Rheinhardt > Date: Sun, 12 Jan 2025 20:40:31 +0100 > Subject: [PATCH] fftools/ffmpeg_opt: Remove audio_drift_threshold > > Forgotten in 5a04aae82193d75b8f8814dc7e35f4cc84b1beba. > > Signed-off-by: Andreas Rheinhardt > --- > fftools/ffmpeg_opt.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c > index 5777c71236..3c0c682594 100644 > --- a/fftools/ffmpeg_opt.c > +++ b/fftools/ffmpeg_opt.c > @@ -52,7 +52,6 @@ HWDevice *filter_hw_device; > > char *vstats_filename; > > -float audio_drift_threshold = 0.1; > float dts_delta_threshold = 10; > float dts_error_threshold = 3600*30; > > -- LGTM (and should be non-controversial to push at this point) Thanks, Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] avfilter: minor spell fix
On 2025-01-13 19:42 +0100, Leandro Santiago wrote: > Signed-off-by: Leandro Santiago > --- > libavfilter/dnn/dnn_backend_openvino.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/libavfilter/dnn/dnn_backend_openvino.c > b/libavfilter/dnn/dnn_backend_openvino.c > index 2f6706dcd4..ec46e29b8a 100644 > --- a/libavfilter/dnn/dnn_backend_openvino.c > +++ b/libavfilter/dnn/dnn_backend_openvino.c > @@ -1331,7 +1331,7 @@ static int get_output_ov(DNNModel *model, const char > *input_name, int input_widt > #endif > ret = init_model_ov(ov_model, input_name, output_name ? &output_name > : NULL, 1); > if (ret != 0) { > -av_log(ctx, AV_LOG_ERROR, "Failed init OpenVINO exectuable > network or inference request\n"); > +av_log(ctx, AV_LOG_ERROR, "Failed init OpenVINO executable > network or inference request\n"); > return ret; > } > } > @@ -1487,7 +1487,7 @@ static int dnn_execute_model_ov(const DNNModel *model, > DNNExecBaseParams *exec_p > ret = init_model_ov(ov_model, exec_params->input_name, > exec_params->output_names, > exec_params->nb_output); > if (ret != 0) { > -av_log(ctx, AV_LOG_ERROR, "Failed init OpenVINO exectuable > network or inference request\n"); > +av_log(ctx, AV_LOG_ERROR, "Failed init OpenVINO executable > network or inference request\n"); > return ret; > } > } > -- LGTM, will push it soon'ish if Guo doesn't beat me to it. Thanks, Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-devel] [PATCH] libavutil/avstring: av_match_list: Update API documentation
Since av_match_list was added in commit 0d92b0d5f445d4f2 , this function changed its semantics shortly after, especially with commit 3c0b98dced394da3 . Signed-off-by: Alexander Strasser --- libavutil/avstring.h | 18 +++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/libavutil/avstring.h b/libavutil/avstring.h index fc095349d2..133d021632 100644 --- a/libavutil/avstring.h +++ b/libavutil/avstring.h @@ -409,9 +409,21 @@ int av_utf8_decode(int32_t *codep, const uint8_t **bufp, const uint8_t *buf_end, unsigned int flags); /** - * Check if a name is in a list. - * @returns 0 if not found, or the 1 based index where it has been found in the - *list. + * Check if one of the given names is in a list. + * + * Check if any of the names, given in parameter name, is found at least + * once in the parameter list. + * + * In both parameters, multiple names must be separated by the character + * given in parameter separator. + * + * This is in line e.g. with the rule used for naming demuxers. + * + * @param name Contains names searched for in list. + * @param list List of names that is searched in. + * @param separator Character that separates items in the given lists. + * + * @returns 0 if no match was found, otherwise 1. */ int av_match_list(const char *name, const char *list, char separator); -- ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] libavutil/avstring: av_match_list: Update API documentation
On 2025-01-22 23:19 +0100, epira...@gmail.com wrote: > > On 22 Jan 2025, at 22:59, Alexander Strasser via ffmpeg-devel wrote: > > > Since av_match_list was added in commit 0d92b0d5f445d4f2 , this > > function changed its semantics shortly after, especially with > > commit 3c0b98dced394da3 . > > > > Signed-off-by: Alexander Strasser > > --- > > libavutil/avstring.h | 18 +++--- > > 1 file changed, 15 insertions(+), 3 deletions(-) > > > > diff --git a/libavutil/avstring.h b/libavutil/avstring.h > > index fc095349d2..133d021632 100644 > > --- a/libavutil/avstring.h > > +++ b/libavutil/avstring.h > > @@ -409,9 +409,21 @@ int av_utf8_decode(int32_t *codep, const uint8_t > > **bufp, const uint8_t *buf_end, > > unsigned int flags); > > > > /** > > - * Check if a name is in a list. > > - * @returns 0 if not found, or the 1 based index where it has been found > > in the > > - *list. > > + * Check if one of the given names is in a list. > > + * > > + * Check if any of the names, given in parameter name, is found at least > > You can use @p to refer to parameters, like: "given in @p name". Good idea! Sent v2. [...] Thanks Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] avfilter/signalstats: add NULL_IF_CONFIG_SMALL
Hi Abdulrahman! I fixed up and tested your patch locally and your change looks fine :) Will include when it when I push my next batch of changes soon'ish. Depending on how it goes it will take a couple of days from now. For your information I will outline the broken parts inline below: On 2025-01-22 20:31 +0200, Abdulrahman Saber wrote: > On Tue, Jan 14, 2025 at 2:02 PM Abdulrahman Saber > wrote: > > > > Signed-off-by: abdo > > --- > > libavfilter/vf_signalstats.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/libavfilter/vf_signalstats.c b/libavfilter/vf_signalstats.c > > index b1451cc465..9b6af8becd 100644 > > --- a/libavfilter/vf_signalstats.c > > +++ b/libavfilter/vf_signalstats.c > > @@ -20,6 +20,7 @@ > >* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA > > 02110-1301 USA The above line was broken into 2 in your mail. > >*/ > > +#include "libavutil/internal.h" > > #include "libavutil/intreadwrite.h" > > #include "libavutil/mem.h" > > #include "libavutil/opt.h" > > @@ -829,7 +830,7 @@ static const AVFilterPad signalstats_outputs[] = { > >const FFFilter ff_vf_signalstats = { > > .p.name= "signalstats", > > -.p.description = "Generate statistics from video analysis.", > > +.p.description = NULL_IF_CONFIG_SMALL("Generate statistics from > > video analysis."), Same here. > > .p.priv_class = &signalstats_class, > > .p.flags = AVFILTER_FLAG_SLICE_THREADS, > > .init = init, > > -- > > 2.25.1 > > > > Ping Seems like your mail client/editor does it (automatically?) to avoid overly long lines, which might be fine for email texts but isn't in patches. Hope you can find the setting for easier contribution in the future. Another approach for single patches or small series is to attach them. Usually mailers don't mess with attachments. Best regards, Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-devel] [PATCH v2] libavutil/avstring: av_match_list: Update API documentation
Since av_match_list was added in commit 0d92b0d5f445d4f2 , this function changed its semantics shortly after, especially with commit 3c0b98dced394da3 . Signed-off-by: Alexander Strasser --- Diff to v1: * use @p as suggested by ePirat * clarify that the hint about demuxer names is about FFmpeg libavutil/avstring.h | 18 +++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/libavutil/avstring.h b/libavutil/avstring.h index fc095349d2..1a5405581a 100644 --- a/libavutil/avstring.h +++ b/libavutil/avstring.h @@ -409,9 +409,21 @@ int av_utf8_decode(int32_t *codep, const uint8_t **bufp, const uint8_t *buf_end, unsigned int flags); /** - * Check if a name is in a list. - * @returns 0 if not found, or the 1 based index where it has been found in the - *list. + * Check if one of the given names is in a list. + * + * Check if any of the names, given in @p name, is found at least + * once in @p list. + * + * In both parameters, multiple names must be separated by the character + * given in @p separator. + * + * This is in line e.g. with the rule used for naming demuxers in FFmpeg. + * + * @param name Contains names searched for in list. + * @param list List of names that is searched in. + * @param separator Character that separates items in the given lists. + * + * @returns 0 if no match was found, otherwise 1. */ int av_match_list(const char *name, const char *list, char separator); -- ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 3/7] avutil/frame: add a param change side data type
On 2025-01-22 21:18 +0100, Nicolas George wrote: > James Almer (12025-01-22): > > Ok, will implement a new struct. > > Thanks. > > I think this code would work: > > typedef struct AVSideDataParamChange > … > intmax_t end_padding; > } AVSideDataSomethingType; > > static const AVSideDataParamChange default = { ... }; > > > AVSideDataParamChange pc; > av_assert0(sd->size > sizeof(pc.end_padding)); > size_t s = FFMIN(sd->size - sizeof(pc.end_padding), sizeof(pc)); > memcpy(&pc, sd->data, s); > memcpy((char *)&pc + s, (char *)&default + s, sizeof(pc) - s); > > After this code, pc contains the fields from the side data if they are > present in the version known by the caller and the fields from default > otherwise. > > I am rather sure this is valid C unless there we add a field with > individual size greater than end_padding, hence intmax_t. Sorry, couldn't really follow the problem and this solution idea yet. Just think we shouldn't use intmax_t as I think it wasn't a good idea to have it in the C standard at all. Is it essential for your idea? Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-devel] Backporting makefile targets fate-list-failing and fate-clear-reports
Hi all! I'm thinking about backporting commit 1e76bd2f394a01c1 [1] to all releases listed on our download page. It is a new feature for the build system, but not used to build ffmpeg or otherwise related to the generated binaries. It's of utility when doing backports because it makes it easy to run all fate tests with -k and to get a list of the failed tests after. Are there any objections to backporting this convenience fate feature? Best regards, Alexander 1. commit 1e76bd2f394a01c19073160c380adbcaa779f474 on master: ``` Author: Martin Storsjö Date: Thu Nov 7 11:31:40 2024 +0200 fate: Add a target for listing failed tests If running tests with "make -j fate", the execution will stop after the first failing test. To get an overview of the whole test suite, one rather would run "make -k -j fate", which then again buries the results about what tests actually failed further up in the console log. Add a target so one can run "make fate-list-failing", to see a list of all tests that failed the last time they were executed. Also add a companion target "fate-clear-reports" which removes all the old test reports. (When executing a subset of tests, the report files of all tests that aren't executed stay untouched. This also allows getting rid of reports for tests that no longer are present in the testsuite.) Co-authored-by: Alexander Strasser Signed-off-by: Martin Storsjö diff --git a/doc/build_system.txt b/doc/build_system.txt index 0b1b0c2054..053d449862 100644 --- a/doc/build_system.txt +++ b/doc/build_system.txt @@ -30,6 +30,13 @@ fate fate-list List all fate/regression test targets. +fate-list-failing +List the fate tests that failed the last time they were executed. + +fate-clear-reports +Remove the test reports from previous test executions (getting rid of +potentially stale results from fate-list-failing). + install Install headers, libraries and programs. diff --git a/doc/fate.texi b/doc/fate.texi index 17644ce65a..7a2e0edfcc 100644 --- a/doc/fate.texi +++ b/doc/fate.texi @@ -208,6 +208,13 @@ Download/synchronize sample files to the configured samples directory. @item fate-list Will list all fate/regression test targets. +@item fate-list-failing +List the fate tests that failed the last time they were executed. + +@item fate-clear-reports +Remove the test reports from previous test executions (getting rid of +potentially stale results from fate-list-failing). + @item fate Run the FATE test suite (requires the fate-suite dataset). @end table diff --git a/tests/Makefile b/tests/Makefile index 9b70145015..f9f5fc07f3 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -313,6 +313,12 @@ $(FATE): $(FATE_UTILS:%=tests/%$(HOSTEXESUF)) | $(FATE_OUTDIRS) fate-list: @printf '%s\n' $(sort $(FATE)) +fate-list-failing: + @! ls tests/data/fate/*.rep >/dev/null 2>&1 || awk -F: '$$2 != 0 { print "fate-" $$1 }' tests/data/fate/*.rep + +fate-clear-reports: + @rm -f tests/data/fate/*.rep + coverage.info: TAG = LCOV coverage.info: $(M)lcov -q -d $(CURDIR) -b $(patsubst src%,./,$(SRC_LINK)) --capture | \ ``` ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH v2] avformat/vqf: Propagate errors from add_metadata()
On 2025-01-01 06:15 +0100, Michael Niedermayer wrote: > Suggested-by: Marton Balint > Signed-off-by: Michael Niedermayer > --- > libavformat/vqf.c | 21 ++--- > 1 file changed, 14 insertions(+), 7 deletions(-) > > diff --git a/libavformat/vqf.c b/libavformat/vqf.c > index 79deb33744b..58b1546f531 100644 > --- a/libavformat/vqf.c > +++ b/libavformat/vqf.c > @@ -51,23 +51,28 @@ static int vqf_probe(const AVProbeData *probe_packet) > return AVPROBE_SCORE_EXTENSION; > } > > -static void add_metadata(AVFormatContext *s, uint32_t tag, > +static int add_metadata(AVFormatContext *s, uint32_t tag, > unsigned int tag_len, unsigned int remaining) > { > int len = FFMIN(tag_len, remaining); > char *buf, key[5] = {0}; > +int ret; > > if (len == UINT_MAX) > -return; > +return AVERROR_INVALIDDATA; > > buf = av_malloc(len+1); > if (!buf) > -return; > -if (len != avio_read(s->pb, buf, len)) > -return; > +return AVERROR(ENOMEM); > + > +ret = avio_read(s->pb, buf, len); > +if (ret < 0) > +return ret; > +if (len != ret) > +return AVERROR_INVALIDDATA; > buf[len] = 0; > AV_WL32(key, tag); > -av_dict_set(&s->metadata, key, buf, AV_DICT_DONT_STRDUP_VAL); > +return av_dict_set(&s->metadata, key, buf, AV_DICT_DONT_STRDUP_VAL); > } > > static const AVMetadataConv vqf_metadata_conv[] = { > @@ -165,7 +170,9 @@ static int vqf_read_header(AVFormatContext *s) > avio_skip(s->pb, FFMIN(len, header_size)); > break; > default: > -add_metadata(s, chunk_tag, len, header_size); > +ret = add_metadata(s, chunk_tag, len, header_size); > +if (ret < 0) > +return ret; > break; > } > > -- LGTM regarding my review comments. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 1/2] avfilter/vf_addroi: Add missing NULL termination to addroi_var_names[]()
On 2025-01-05 05:44 +0100, Michael Niedermayer wrote: > Fixes: out of array read > > Found-by: Elias Myllymäki > Signed-off-by: Michael Niedermayer > --- > libavfilter/vf_addroi.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/libavfilter/vf_addroi.c b/libavfilter/vf_addroi.c > index de857eced44..d6765e9d8cb 100644 > --- a/libavfilter/vf_addroi.c > +++ b/libavfilter/vf_addroi.c > @@ -39,6 +39,7 @@ enum { > static const char *const addroi_var_names[] = { > "iw", > "ih", > +NULL, > }; > > typedef struct AddROIContext { > -- LGTM Thanks, Alexander P.S. It's a bit funny how we talk in allmost all filters about variables because these are called constants when it comes down to the av_expr_parse_and_eval call. Guess it's a point of view thing. From filter POV they can be variable, from the POV of the single expression evaluation they are constant :) ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] configure: Include quotes around pkg_version
On 2024-12-21 19:29 -0500, J Shiff wrote: > On Sat, Dec 21, 2024 at 5:44 PM Alexander Strasser via ffmpeg-devel > wrote: > > > > On 2024-12-16 16:19 -0500, Joe Schiffler wrote: > > > Since $pkg_version includes spaces, builds can fail in some MSYS > > > environments. > > > > Could you show what the pkg_version with spaces was in your case? > > The value of pkg_version would be: `aom >= 2.0.0` Ok, thanks for coming back to this! What is still strange about it: What changed and where? These values for pkg_version should come up on every platform and AFAICT it works just fine for me and many others. Didn't spot any relevant changes in ffmpeg configure on a quick look. Would be better to understand why it fails only in some environments and not others. Alexander > However, this was because aom was the first package included in the build. > If I disabled aom, then the next package (dav1d) would give a similar > error, and so on. > > I get this error message found in ffbuild/config.log: > `Can't find >=.pc in any of` ... > > The message should be: > `Can't find aom.pc in any of` ... > > The ellipsis represents the value of the PKG_CONFIG_PATH environment variable. ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 2/5] lavc/container_fifo: move to lavu and make public
On 2024-12-15 22:20 +0100, Alexander Strasser via ffmpeg-devel wrote: > On 2024-12-11 15:05 +0100, Anton Khirnov wrote: > > This can be useful in other places, e.g. it can replace objpool in > > fftools. > > > > The API is modified in the following nontrivial ways: > > * opaque pointers can be passed through to all user callbacks > > * read and write were previously separate callbacks in order to > > accomodate the caller wishing to write a new reference to the FIFO and > > keep the original one; the two callbacks are now merged into one, and > > a flags argument is added that allows to request such behaviour on a > > per-call basis > > * new peek and drain functions > > --- > > doc/APIchanges | 5 +- > > libavcodec/Makefile| 2 +- > > libavcodec/container_fifo.h| 89 -- > > libavcodec/hevc/hevcdec.c | 10 +- > > libavcodec/hevc/hevcdec.h | 2 +- > > libavcodec/hevc/refs.c | 4 +- > > libavutil/Makefile | 2 + > > {libavcodec => libavutil}/container_fifo.c | 116 ++ > > libavutil/container_fifo.h | 130 + > > 9 files changed, 215 insertions(+), 145 deletions(-) > > delete mode 100644 libavcodec/container_fifo.h > > rename {libavcodec => libavutil}/container_fifo.c (51%) > > create mode 100644 libavutil/container_fifo.h > > > > diff --git a/doc/APIchanges b/doc/APIchanges > > index 13789fcea4..5d75b6077d 100644 > > --- a/doc/APIchanges > > +++ b/doc/APIchanges > > @@ -2,10 +2,13 @@ The last version increases of all libraries were on > > 2024-03-07 > > > > API changes, most recent first: > > > > -2024-12-xx - xx - lavu 59.50.100 - refstruct.h > > +2024-12-xx - xx - lavu 59.50.100 - refstruct.h container_fifo.h > >Add a new public header refstruct.h with new API for > >reference-counted objects. > > > > + Add a new public header container_fifo.h with new API for > > + a FIFO of container objects (e.g. AVFrame or AVPacket). > > I see this was already pushed. > > I wanted to comment mainly because of the naming. Didn't deeply > check the series as a whole, but AFAICS it looks legit. > > I find the "container" part of the naming consusing, especially in > a multimedia project. > > Didn't yet have brilliant ideas. > Some suggestions to get started follow in no particular order: > > * objpool_fifo > * reusable_obj_fifo > * refstruct_fifo Polite ping. Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-devel] Pausing the heated discussions
Hi all! I'm unhappy with what ensued here on the FFmpeg development mailing list; especially in the recent months. With the current culminations, and the stress and influx of mails it caused for all subscribers espescially in this for many of us rather busy time of the family year, I would like to see a pause of all personal attacks and project political mails until at least 2025-01-15 UTC. Of course I would ideally like to see no more personal attacks in the future, but that hasn't worked out so far, so I expect at least some outliers will unfortunately turn up once discussions start again. I hope for collaboration from you all and support of the newly elected Community Committee (CC). Wish all of you a happy new year (later or now for all of you that are already in 2025)! Best regards, Alexander ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".