This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit d205b2fd0fcbc8512bfd4c83d14780dc11ec1074
Author:     Timo Rothenpieler <[email protected]>
AuthorDate: Sat Oct 24 21:11:01 2026 +0200
Commit:     Timo Rothenpieler <[email protected]>
CommitDate: Sat Oct 24 20:55:29 2026 +0000

    avfilter/vsrc_gfxcapture: use AV_NOPTS_VALUE as default for pts fields
---
 libavfilter/vsrc_gfxcapture_winrt.cpp | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/libavfilter/vsrc_gfxcapture_winrt.cpp 
b/libavfilter/vsrc_gfxcapture_winrt.cpp
index 0e30cdf9ee..26d73b8b40 100644
--- a/libavfilter/vsrc_gfxcapture_winrt.cpp
+++ b/libavfilter/vsrc_gfxcapture_winrt.cpp
@@ -162,12 +162,12 @@ struct GfxCaptureContextCpp {
     AVHWFramesContext *frames_ctx { nullptr };
     AVD3D11VAFramesContext *frames_hwctx { nullptr };
 
-    int64_t first_pts { 0 };
-    int64_t last_pts { 0 };
+    int64_t first_pts { AV_NOPTS_VALUE };
+    int64_t last_pts { AV_NOPTS_VALUE };
 
     // dup_frames: last output frame and the QPC time (100 ns units) the next 
repeat is due
     AVFrame *last_frame { nullptr };
-    int64_t next_pts { 0 };
+    int64_t next_pts { AV_NOPTS_VALUE };
 };
 
 template <typename T>
@@ -1471,12 +1471,12 @@ static int output_frame(AVFilterLink *outlink, AVFrame 
*frame)
     GfxCaptureContextCpp *ctx = CCTX(outlink->src->priv)->ctx;
 
     // a captured frame can carry a time slightly before an already sent repeat
-    if (ctx->last_pts && frame->pts <= ctx->last_pts)
+    if (ctx->last_pts != AV_NOPTS_VALUE && frame->pts <= ctx->last_pts)
         frame->pts = ctx->last_pts + 1;
 
     ctx->last_pts = frame->pts;
 
-    if (!ctx->first_pts)
+    if (ctx->first_pts == AV_NOPTS_VALUE)
         ctx->first_pts = frame->pts;
     frame->pts -= ctx->first_pts;
 
@@ -1606,13 +1606,15 @@ static int gfxcapture_activate(AVFilterContext *avctx)
         std::unique_lock frame_lock(wgctx->frame_arrived_mutex);
 
         if (wgctx->window_closed && wgctx->frame_seq == last_seq) {
-            ff_outlink_set_status(outlink, AVERROR_EOF, ctx->last_pts - 
ctx->first_pts + 1);
+            ff_outlink_set_status(outlink, AVERROR_EOF,
+                                  ctx->last_pts == AV_NOPTS_VALUE ? 
AV_NOPTS_VALUE
+                                                                  : 
ctx->last_pts - ctx->first_pts + 1);
             break;
         }
 
         int64_t timeout = TIMESPAN_RES64;
         if (cctx->dup_frames) {
-            if (!ctx->next_pts)
+            if (ctx->next_pts == AV_NOPTS_VALUE)
                 ctx->next_pts = qpc_now() + dup_interval(cctx);
             timeout = av_clip64(ctx->next_pts - qpc_now(), 0, TIMESPAN_RES64);
         }

-- 
To stop receiving notification emails like this one, please contact
[email protected].
_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to