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]