The branch, master has been updated
       via  796b3ba63ba8eb0deba0248b30b10727920448ad (commit)
       via  e0ddb4ac828e065f4bd77c7bdb9e28c56bee952b (commit)
       via  fdb5f709b77bd1ee0136d8afa354cd8c683ae494 (commit)
       via  26f4230082dad1a6a0f2384694037562f73bb2fd (commit)
      from  f47b270b415d988437ae9eec56a761a8caf73d03 (commit)


- Log -----------------------------------------------------------------
commit 796b3ba63ba8eb0deba0248b30b10727920448ad
Author:     James Almer <[email protected]>
AuthorDate: Tue Sep 16 14:44:18 2025 -0300
Commit:     James Almer <[email protected]>
CommitDate: Tue Sep 16 15:42:03 2025 -0300

    tests/fate/prores: add a probe test
    
    Signed-off-by: James Almer <[email protected]>

diff --git a/tests/fate/prores.mak b/tests/fate/prores.mak
index 612be1a061..e3759dfb50 100644
--- a/tests/fate/prores.mak
+++ b/tests/fate/prores.mak
@@ -25,4 +25,7 @@ fate-prores-gray:      CMD = framecrc -flags +bitexact -c:a 
aac_fixed -i $(TARGE
 FATE_PRORES_METADATA_BSF += fate-prores-metadata
 fate-prores-metadata: CMD = md5 -i 
$(TARGET_SAMPLES)/prores/Sequence_1-Apple_ProRes_422_Proxy.mov -c:v copy -bsf:v 
prores_metadata=color_primaries=bt470bg:color_trc=bt709:colorspace=smpte170m 
-bitexact -f mov
 
+FATE_SAMPLES_FFMPEG_FFPROBE-$(call FRAMECRC, MOV, PRORES,) += fate-prores-probe
+fate-prores-probe: CMD = stream_demux mov 
$(TARGET_SAMPLES)/prores/Sequence_1-Apple_ProRes_422_HQ.mov "" "-c:v copy" 
"-show_frames"
+
 FATE_SAMPLES_FFMPEG-$(call DEMMUX, MOV, MOV, PRORES_METADATA_BSF) += 
$(FATE_PRORES_METADATA_BSF)
diff --git a/tests/ref/fate/prores-probe b/tests/ref/fate/prores-probe
new file mode 100644
index 0000000000..8a7808f393
--- /dev/null
+++ b/tests/ref/fate/prores-probe
@@ -0,0 +1,75 @@
+#tb 0: 1/2997
+#media_type 0: video
+#codec_id 0: prores
+#dimensions 0: 1920x1080
+#sar 0: 0/1
+0,          0,          0,      100,    91824, 0x90ea4134
+0,        100,        100,      100,    91824, 0x90ea4134
+[FRAME]
+media_type=video
+stream_index=0
+key_frame=1
+pts=0
+pts_time=0.000000
+pkt_dts=0
+pkt_dts_time=0.000000
+best_effort_timestamp=0
+best_effort_timestamp_time=0.000000
+duration=100
+duration_time=0.033367
+pkt_pos=36
+pkt_size=91824
+width=1920
+height=1080
+crop_top=0
+crop_bottom=0
+crop_left=0
+crop_right=0
+pix_fmt=yuv422p10
+sample_aspect_ratio=N/A
+pict_type=I
+interlaced_frame=1
+top_field_first=0
+lossless=0
+repeat_pict=0
+color_range=tv
+color_space=bt709
+color_primaries=unknown
+color_transfer=unknown
+chroma_location=unspecified
+alpha_mode=unspecified
+[/FRAME]
+[FRAME]
+media_type=video
+stream_index=0
+key_frame=1
+pts=100
+pts_time=0.033367
+pkt_dts=100
+pkt_dts_time=0.033367
+best_effort_timestamp=100
+best_effort_timestamp_time=0.033367
+duration=100
+duration_time=0.033367
+pkt_pos=91860
+pkt_size=91824
+width=1920
+height=1080
+crop_top=0
+crop_bottom=0
+crop_left=0
+crop_right=0
+pix_fmt=yuv422p10
+sample_aspect_ratio=N/A
+pict_type=I
+interlaced_frame=1
+top_field_first=0
+lossless=0
+repeat_pict=0
+color_range=tv
+color_space=bt709
+color_primaries=unknown
+color_transfer=unknown
+chroma_location=unspecified
+alpha_mode=unspecified
+[/FRAME]

commit e0ddb4ac828e065f4bd77c7bdb9e28c56bee952b
Author:     James Almer <[email protected]>
AuthorDate: Tue Sep 16 14:43:34 2025 -0300
Commit:     James Almer <[email protected]>
CommitDate: Tue Sep 16 15:42:03 2025 -0300

    tests/fate-run: pass threads argument to ffprobe
    
    Ensures it honors the THREADS variable if set to anything other than 1, 
which will be
    useful to detect bugs.
    
    Signed-off-by: James Almer <[email protected]>

diff --git a/tests/fate-run.sh b/tests/fate-run.sh
index 247f4e461b..6d1fe1185c 100755
--- a/tests/fate-run.sh
+++ b/tests/fate-run.sh
@@ -95,19 +95,19 @@ runecho(){
 }
 
 probefmt(){
-    run ffprobe${PROGSUF}${EXECSUF} -bitexact -show_entries format=format_name 
-print_format default=nw=1:nk=1 "$@"
+    run ffprobe${PROGSUF}${EXECSUF} -bitexact -threads $threads -show_entries 
format=format_name -print_format default=nw=1:nk=1 "$@"
 }
 
 probecodec(){
-    run ffprobe${PROGSUF}${EXECSUF} -bitexact -show_entries stream=codec_name 
-print_format default=nw=1:nk=1 "$@"
+    run ffprobe${PROGSUF}${EXECSUF} -bitexact -threads $threads -show_entries 
stream=codec_name -print_format default=nw=1:nk=1 "$@"
 }
 
 probeaudiostream(){
-    run ffprobe${PROGSUF}${EXECSUF} -bitexact -show_entries 
stream=codec_name,codec_time_base,sample_fmt,channels,channel_layout:side_data 
"$@"
+    run ffprobe${PROGSUF}${EXECSUF} -bitexact -threads $threads -show_entries 
stream=codec_name,codec_time_base,sample_fmt,channels,channel_layout:side_data 
"$@"
 }
 
 probetags(){
-    run ffprobe${PROGSUF}${EXECSUF} -bitexact -show_entries format_tags "$@"
+    run ffprobe${PROGSUF}${EXECSUF} -bitexact -threads $threads -show_entries 
format_tags "$@"
 }
 
 runlocal(){
@@ -116,28 +116,28 @@ runlocal(){
 }
 
 probeframes(){
-    run ffprobe${PROGSUF}${EXECSUF} -bitexact -show_frames "$@"
+    run ffprobe${PROGSUF}${EXECSUF} -bitexact -threads $threads -show_frames 
"$@"
 }
 
 probechapters(){
-    run ffprobe${PROGSUF}${EXECSUF} -bitexact -show_chapters "$@"
+    run ffprobe${PROGSUF}${EXECSUF} -bitexact -threads $threads -show_chapters 
"$@"
 }
 
 probe(){
-    run ffprobe${PROGSUF}${EXECSUF} -bitexact "$@"
+    run ffprobe${PROGSUF}${EXECSUF} -bitexact -threads $threads "$@"
 }
 
 probegaplessinfo(){
     filename="$1"
     shift
-    run ffprobe${PROGSUF}${EXECSUF} -bitexact -select_streams a -show_entries 
format=start_time,duration:stream=index,start_pts,duration_ts "$filename" "$@"
+    run ffprobe${PROGSUF}${EXECSUF} -bitexact -threads $threads 
-select_streams a -show_entries 
format=start_time,duration:stream=index,start_pts,duration_ts "$filename" "$@"
     pktfile1="${outdir}/${test}.pkts"
     framefile1="${outdir}/${test}.frames"
     cleanfiles="$cleanfiles $pktfile1 $framefile1"
-    run ffprobe${PROGSUF}${EXECSUF} -bitexact -select_streams a -of compact 
-count_packets -show_entries 
packet=pts,dts,duration,flags:stream=nb_read_packets "$filename" "$@" > 
"$pktfile1"
+    run ffprobe${PROGSUF}${EXECSUF} -bitexact -threads $threads 
-select_streams a -of compact -count_packets -show_entries 
packet=pts,dts,duration,flags:stream=nb_read_packets "$filename" "$@" > 
"$pktfile1"
     head -n 8 "$pktfile1"
     tail -n 9 "$pktfile1"
-    run ffprobe${PROGSUF}${EXECSUF} -bitexact -select_streams a -of compact 
-count_frames -show_entries 
frame=pts,pkt_dts,best_effort_timestamp,pkt_duration,nb_samples:stream=nb_read_frames
 "$filename" "$@" > "$framefile1"
+    run ffprobe${PROGSUF}${EXECSUF} -bitexact -threads $threads 
-select_streams a -of compact -count_frames -show_entries 
frame=pts,pkt_dts,best_effort_timestamp,pkt_duration,nb_samples:stream=nb_read_frames
 "$filename" "$@" > "$framefile1"
     head -n 8 "$framefile1"
     tail -n 9 "$framefile1"
 }
@@ -157,7 +157,7 @@ ffprobe_demux(){
     shift
     print_filename=$(basename "$filename")
     run ffprobe${PROGSUF}${EXECSUF} -print_filename "${print_filename}" \
-        -of compact -bitexact -show_format -show_streams -show_packets  \
+        -of compact -bitexact -threads $threads -show_format -show_streams 
-show_packets  \
         -show_data_hash CRC32 "$filename" "$@"
 }
 
@@ -253,7 +253,7 @@ enc_dec(){
     do_md5sum $decfile
     tests/tiny_psnr${HOSTEXECSUF} $srcfile $decfile $cmp_unit $cmp_shift
     test -z "$ffprobe_opts" || \
-        run ffprobe${PROGSUF}${EXECSUF} -bitexact $ffprobe_opts $tencfile || 
return
+        run ffprobe${PROGSUF}${EXECSUF} -bitexact -threads $threads 
$ffprobe_opts $tencfile || return
 }
 
 transcode(){
@@ -280,7 +280,7 @@ transcode(){
     ffmpeg $DEC_OPTS $final_decode -i $tencfile $ENC_OPTS $FLAGS $final_encode 
\
         -f $final_encode_muxer - || return
     test -z "$ffprobe_opts" || \
-        run ffprobe${PROGSUF}${EXECSUF} -bitexact $ffprobe_opts $tencfile || 
return
+        run ffprobe${PROGSUF}${EXECSUF} -bitexact -threads $threads 
$ffprobe_opts $tencfile || return
 }
 
 stream_demux(){
@@ -293,7 +293,7 @@ stream_demux(){
     ffmpeg $DEC_OPTS -f $src_fmt $src_opts -i $tsrcfile $ENC_OPTS $FLAGS 
$enc_opts \
         -f framecrc - || return
     test -z "$ffprobe_opts" || \
-        run ffprobe${PROGSUF}${EXECSUF} -bitexact $ffprobe_opts $tsrcfile || 
return
+        run ffprobe${PROGSUF}${EXECSUF} -bitexact -threads $threads 
$ffprobe_opts $tsrcfile || return
 }
 
 stream_remux(){
@@ -314,7 +314,7 @@ stream_remux(){
     ffmpeg $DEC_OPTS $final_decode -i $tencfile $ENC_OPTS $FLAGS $final_encode 
\
         -f framecrc - || return
     test -z "$ffprobe_opts" || \
-        run ffprobe${PROGSUF}${EXECSUF} -bitexact $ffprobe_opts $tencfile || 
return
+        run ffprobe${PROGSUF}${EXECSUF} -bitexact -threads $threads 
$ffprobe_opts $tencfile || return
 }
 
 # this function is for testing external encoders,
@@ -331,7 +331,7 @@ enc_external(){
     test "$keep" -ge 1 || cleanfiles="$cleanfiles $encfile"
 
     ffmpeg -i $srcfile $enc_opt -f $enc_fmt -y $encfile || return
-    run ffprobe${PROGSUF}${EXECSUF} -bitexact $probe_opt $encfile || return
+    run ffprobe${PROGSUF}${EXECSUF} -bitexact -threads $threads $probe_opt 
$encfile || return
 }
 
 # FIXME: There is a certain duplication between the avconv-related helper
@@ -656,10 +656,10 @@ concat(){
     awk "{gsub(/%SRCFILE%/, \"$sample\"); print}" $template > $concatfile
 
     if [ "$mode" = "md5" ]; then
-        run ffprobe${PROGSUF}${EXECSUF} -bitexact -show_streams -show_packets 
-safe 0 $extra_args $(target_path $concatfile) | tr -d '\r' > $packetfile
+        run ffprobe${PROGSUF}${EXECSUF} -bitexact -threads $threads 
-show_streams -show_packets -safe 0 $extra_args $(target_path $concatfile) | tr 
-d '\r' > $packetfile
         do_md5sum $packetfile
     else
-        run ffprobe${PROGSUF}${EXECSUF} -bitexact -show_streams -show_packets 
-of compact=p=0:nk=1 -safe 0 $extra_args $(target_path $concatfile)
+        run ffprobe${PROGSUF}${EXECSUF} -bitexact -threads $threads 
-show_streams -show_packets -of compact=p=0:nk=1 -safe 0 $extra_args 
$(target_path $concatfile)
     fi
 }
 

commit fdb5f709b77bd1ee0136d8afa354cd8c683ae494
Author:     James Almer <[email protected]>
AuthorDate: Tue Sep 16 14:41:37 2025 -0300
Commit:     James Almer <[email protected]>
CommitDate: Tue Sep 16 15:42:03 2025 -0300

    avcodec/h2645_sei: add missing ambient_viewing_environment copy in 
ff_h2645_sei_ctx_replace()
    
    Signed-off-by: James Almer <[email protected]>

diff --git a/libavcodec/h2645_sei.c b/libavcodec/h2645_sei.c
index 04432b6a8d..f3ce3da9eb 100644
--- a/libavcodec/h2645_sei.c
+++ b/libavcodec/h2645_sei.c
@@ -539,6 +539,7 @@ int ff_h2645_sei_ctx_replace(H2645SEI *dst, const H2645SEI 
*src)
     }
     dst->aom_film_grain.enable = src->aom_film_grain.enable;
 
+    dst->ambient_viewing_environment = src->ambient_viewing_environment;
     dst->mastering_display     = src->mastering_display;
     dst->content_light         = src->content_light;
 

commit 26f4230082dad1a6a0f2384694037562f73bb2fd
Author:     James Almer <[email protected]>
AuthorDate: Tue Sep 16 13:56:18 2025 -0300
Commit:     James Almer <[email protected]>
CommitDate: Tue Sep 16 15:41:50 2025 -0300

    avcodec/decode: sync initial_pict_type and intra_only_flag with thread 
worker's avctx
    
    Regression since 5acbdd2264d3b90dc11369f9e031e762f260882e, which removed
    setting both values from PerThreadContext.
    Given the pthread code calls ff_decode_receive_frame_internal() on the 
frame,
    any value set before it will be overwritten, so instead sync each thread's
    DecodeContext and let ff_decode_receive_frame_internal() handle these 
values.
    
    Fixes issue #20534.
    
    Signed-off-by: James Almer <[email protected]>

diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index ae86e270df..d8e523f327 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -2320,6 +2320,8 @@ void ff_decode_internal_sync(AVCodecContext *dst, const 
AVCodecContext *src)
     const DecodeContext *src_dc = decode_ctx(src->internal);
     DecodeContext *dst_dc = decode_ctx(dst->internal);
 
+    dst_dc->initial_pict_type = src_dc->initial_pict_type;
+    dst_dc->intra_only_flag   = src_dc->intra_only_flag;
     av_refstruct_replace(&dst_dc->lcevc, src_dc->lcevc);
 }
 
diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c
index 4ea5dd3698..abf0d5a199 100644
--- a/libavcodec/pthread_frame.c
+++ b/libavcodec/pthread_frame.c
@@ -115,10 +115,6 @@ typedef struct PerThreadContext {
     int hwaccel_threadsafe;
 
     atomic_int debug_threads;       ///< Set if the FF_DEBUG_THREADS option is 
set.
-
-    /// The following two fields have the same semantics as the DecodeContext 
field
-    int intra_only_flag;
-    enum AVPictureType initial_pict_type;
 } PerThreadContext;
 
 /**
@@ -820,13 +816,6 @@ static av_cold int init_thread(PerThreadContext *p, int 
*threads_to_free,
     AVCodecContext *copy;
     int err;
 
-    p->initial_pict_type = AV_PICTURE_TYPE_NONE;
-    if (avctx->codec_descriptor->props & AV_CODEC_PROP_INTRA_ONLY) {
-        p->intra_only_flag = AV_FRAME_FLAG_KEY;
-        if (avctx->codec_type == AVMEDIA_TYPE_VIDEO)
-            p->initial_pict_type = AV_PICTURE_TYPE_I;
-    }
-
     atomic_init(&p->state, STATE_INPUT_READY);
 
     copy = av_memdup(avctx, sizeof(*avctx));

-----------------------------------------------------------------------

Summary of changes:
 libavcodec/decode.c         |  2 ++
 libavcodec/h2645_sei.c      |  1 +
 libavcodec/pthread_frame.c  | 11 -------
 tests/fate-run.sh           | 36 +++++++++++-----------
 tests/fate/prores.mak       |  3 ++
 tests/ref/fate/prores-probe | 75 +++++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 99 insertions(+), 29 deletions(-)
 create mode 100644 tests/ref/fate/prores-probe


hooks/post-receive
-- 

_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to