Skip to content

Commit 98d7f11

Browse files
committed
feat: support print gop size
1 parent d8f4d42 commit 98d7f11

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

avdump.go

+12-3
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ type frameInfo struct {
1919
}
2020

2121
var (
22-
prevAFrame frameInfo
23-
prevVFrame frameInfo
22+
prevAFrame frameInfo
23+
prevVFrame frameInfo
24+
prevKeyNumber int = 0
2425
)
2526

2627
/**
@@ -73,11 +74,19 @@ func dumpVideoFrame(decodeCtx *avcodec.Context, packet *avcodec.Packet) {
7374
}
7475

7576
// process image
77+
pictType := avutil.AvGetPictureTypeChar(avutil.AvPictureType(frame.PictureType()))
7678
log.Printf("frame: media_type=video, stream_index=%d, key_frame=%d, pts=%d (diff=%d), pkt_dts=%d (diff=%d), pkt_duration=%d, pkt_pts=%d (diff=%d), frame_rate=%d, pict_type=%s, coded_pict_number=%d, display_pict_number=%d",
7779
packet.StreamIndex(), frame.KeyFrame(), frame.Pts(), frame.Pts()-prevVFrame.pts,
7880
frame.PktDts(), frame.PktDts()-prevVFrame.pktDts, packet.Duration(),
7981
packet.Pts(), packet.Pts()-prevVFrame.pktPts, decodeCtx.GetFrameRateInt(),
80-
avutil.AvGetPictureTypeChar(avutil.AvPictureType(frame.PictureType())), frame.CodedPictureNumber(), frame.DisplayPictureNumber())
82+
pictType, frame.CodedPictureNumber(), frame.DisplayPictureNumber())
83+
84+
if frame.KeyFrame() == 1 && pictType == "I" {
85+
gopSize := frame.CodedPictureNumber() - prevKeyNumber
86+
prevKeyNumber = frame.CodedPictureNumber()
87+
log.Printf("frame: media_type=video, stream_index=%d, gop_size=%d", packet.StreamIndex(), gopSize)
88+
}
89+
8190
prevVFrame.pts = frame.Pts()
8291
prevVFrame.pktDts = frame.PktDts()
8392
prevVFrame.pktPts = packet.Pts()

0 commit comments

Comments
 (0)