[FFmpeg-devel] [PATCH v2 1/5] avcodec/parser: merge packets from the same frame

Michael Niedermayer michael at niedermayer.cc
Mon Mar 4 00:06:51 EET 2024


On Fri, Mar 01, 2024 at 02:39:19PM +0100, Nicolas Gaullier wrote:
> The mpegts demuxer splits packets according to its max_packet_size.
> This currently fills the AVCodecParserContext s->cur_frame_* arrays with
> kind of 'empty' entries: no pts/dts.
> This patch merges these entries, so the parser behaviour is independent
> from the demuxer settings.
> This patch is required for the following patch which will fetch 'past'
> timestamps from past cur_frames.
> 
> Signed-off-by: Nicolas Gaullier <nicolas.gaullier at cji.paris>
> ---
>  libavcodec/parser.c | 4 ++++
>  1 file changed, 4 insertions(+)

Breaks fate-seek-lavf-as


--- ./tests/ref/seek/lavf-asf	2024-02-28 23:42:14.743496132 +0100
+++ tests/data/fate/seek-lavf-asf	2024-03-03 23:06:08.850893410 +0100
@@ -1,53 +0,0 @@
-ret: 0         st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos:    693 size:   208
-ret: 0         st:-1 flags:0  ts:-1.000000
-ret: 0         st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos:    693 size:   208
-ret: 0         st:-1 flags:1  ts: 1.894167
-ret: 0         st: 1 flags:1 dts: 0.470000 pts: 0.470000 pos: 147893 size:   209
-ret: 0         st: 0 flags:0  ts: 0.788000
-ret: 0         st: 1 flags:1 dts: 0.470000 pts: 0.470000 pos: 147893 size:   209
-ret: 0         st: 0 flags:1  ts:-0.317000
-ret: 0         st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos:    693 size:   208
-ret: 0         st: 1 flags:0  ts: 2.577000
-ret: 0         st: 1 flags:1 dts: 0.993000 pts: 0.993000 pos: 330293 size:   209
-ret: 0         st: 1 flags:1  ts: 1.471000
-ret: 0         st: 1 flags:1 dts: 0.993000 pts: 0.993000 pos: 330293 size:   209
-ret: 0         st:-1 flags:0  ts: 0.365002
-ret: 0         st: 1 flags:1 dts: 0.470000 pts: 0.470000 pos: 147893 size:   209
-ret: 0         st:-1 flags:1  ts:-0.740831
-ret: 0         st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos:    693 size:   208
-ret: 0         st: 0 flags:0  ts: 2.153000
-ret: 0         st: 1 flags:1 dts: 0.941000 pts: 0.941000 pos: 301493 size:   209
-ret: 0         st: 0 flags:1  ts: 1.048000
-ret: 0         st: 1 flags:1 dts: 0.941000 pts: 0.941000 pos: 301493 size:   209
-ret: 0         st: 1 flags:0  ts:-0.058000
-ret: 0         st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos:    693 size:   208
-ret: 0         st: 1 flags:1  ts: 2.836000
-ret: 0         st: 1 flags:1 dts: 0.993000 pts: 0.993000 pos: 330293 size:   209
-ret: 0         st:-1 flags:0  ts: 1.730004
-ret: 0         st: 1 flags:1 dts: 0.941000 pts: 0.941000 pos: 301493 size:   209
-ret: 0         st:-1 flags:1  ts: 0.624171
-ret: 0         st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos:    693 size:   208
-ret: 0         st: 0 flags:0  ts:-0.482000
-ret: 0         st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos:    693 size:   208
-ret: 0         st: 0 flags:1  ts: 2.413000
-ret: 0         st: 1 flags:1 dts: 0.941000 pts: 0.941000 pos: 301493 size:   209
-ret: 0         st: 1 flags:0  ts: 1.307000
-ret: 0         st: 1 flags:1 dts: 0.993000 pts: 0.993000 pos: 330293 size:   209
-ret: 0         st: 1 flags:1  ts: 0.201000
-ret: 0         st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos:    693 size:   208
-ret: 0         st:-1 flags:0  ts:-0.904994
-ret: 0         st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos:    693 size:   208
-ret: 0         st:-1 flags:1  ts: 1.989173
-ret: 0         st: 1 flags:1 dts: 0.941000 pts: 0.941000 pos: 301493 size:   209
-ret: 0         st: 0 flags:0  ts: 0.883000
-ret: 0         st: 1 flags:1 dts: 0.470000 pts: 0.470000 pos: 147893 size:   209
-ret: 0         st: 0 flags:1  ts:-0.222000
-ret: 0         st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos:    693 size:   208
-ret: 0         st: 1 flags:0  ts: 2.672000
-ret: 0         st: 1 flags:1 dts: 0.993000 pts: 0.993000 pos: 330293 size:   209
-ret: 0         st: 1 flags:1  ts: 1.566000
-ret: 0         st: 1 flags:1 dts: 0.993000 pts: 0.993000 pos: 330293 size:   209
-ret: 0         st:-1 flags:0  ts: 0.460008
-ret: 0         st: 1 flags:1 dts: 0.470000 pts: 0.470000 pos: 147893 size:   209
-ret: 0         st:-1 flags:1  ts:-0.645825
-ret: 0         st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos:    693 size:   208
Test seek-lavf-asf failed. Look at tests/data/fate/seek-lavf-asf.err for details.
[asf @ 0x5623c91f8280] asf_read_pts failed
[asf @ 0x5623c91f8280] asf_read_pts failed
[asf @ 0x5623c91f8280] asf_read_pts failed
[asf @ 0x5623c91f8280] asf_read_pts failed
[asf @ 0x5623c91f8280] asf_read_pts failed
[asf @ 0x5623c91f8280] asf_read_pts failed
[asf @ 0x5623c91f8280] asf_read_pts failed
[asf @ 0x5623c91f8280] asf_read_pts failed
Assertion pkt->pos == asf_st->packet_pos failed at libavformat/asfdec_f.c:1478
Aborted (core dumped)
threads=1
tests/Makefile:318: recipe for target 'fate-seek-lavf-asf' failed
make: *** [fate-seek-lavf-asf] Error 134

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

When the tyrant has disposed of foreign enemies by conquest or treaty, and
there is nothing more to fear from them, then he is always stirring up
some war or other, in order that the people may require a leader. -- Plato
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20240303/3c63a6f1/attachment.sig>


More information about the ffmpeg-devel mailing list