Skip to content

codec: rav1e: use opaque pointer for storing pts

Tristan Matthews requested to merge tmatth/vlc:rav1e/debug-27730 into master

Before on:

SEQ=${SEQ:-/home/tmatth/Videos/akiyo_qcif.y4m}

/big-repos/vlc/vlc -vvvvvv \
        -I "dummy" ${SEQ} \
        --rawvid-chroma=I420 \
        --rawvid-fps=30 \
        --sout="#transcode{vcodec=av10,venc=rav1e}:std{access=file,mux=avformat,dst='test-video-rav1e.ivf'}" \
        vlc://quit

PTS was always 1.

With this change, it's the same as from codec/aom.c:

[00007f9b00394910] rav1e encoder warning: PTS 1
[00007f9b00394910] rav1e encoder warning: PTS 33334
[00007f9b00394910] rav1e encoder warning: PTS 66667
[00007f9b00394910] rav1e encoder warning: PTS 100001
...
[00007f9b00394910] rav1e encoder warning: PTS 9800001
[00007f9b00394910] rav1e encoder warning: PTS 9833334
[00007f9b00394910] rav1e encoder warning: PTS 9866667
[00007f9b00394910] rav1e encoder warning: PTS 9900001
[00007f9b00394910] rav1e encoder warning: PTS 9933334
[00007f9b00394910] rav1e encoder warning: PTS 9966667

vs.

[00007f30d8396f60] aom encoder warning: PTS: 1
[00007f30d8396f60] aom encoder warning: PTS: 33334
[00007f30d8396f60] aom encoder warning: PTS: 66667
[00007f30d8396f60] aom encoder warning: PTS: 100001
...
[00007f30d8396f60] aom encoder warning: PTS: 9800001
[00007f30d8396f60] aom encoder warning: PTS: 9833334
[00007f30d8396f60] aom encoder warning: PTS: 9866667
[00007f30d8396f60] aom encoder warning: PTS: 9900001
[00007f30d8396f60] aom encoder warning: PTS: 9933334
[00007f30d8396f60] aom encoder warning: PTS: 9966667

N.B. Needed this temporary workaround to avoid #27730 (closed):

diff --git a/modules/stream_out/transcode/pcr_helper.c b/modules/stream_out/transcode/pcr_helper.c
index 2f404b0faa..e810c093c6 100644
--- a/modules/stream_out/transcode/pcr_helper.c
+++ b/modules/stream_out/transcode/pcr_helper.c
@@ -158,7 +158,6 @@ int transcode_track_pcr_helper_SignalEnteringFrame(transcode_track_pcr_helper_t
 vlc_tick_t transcode_track_pcr_helper_SignalLeavingFrame(transcode_track_pcr_helper_t *pcr_helper,
                                                          const vlc_frame_t *frame)
 {
-    assert(!vlc_list_is_empty(&pcr_helper->delayed_frames_data));
 
     pcr_helper->last_dts_output = frame->i_dts;
 
Edited by Tristan Matthews

Merge request reports