From: Zhao Zhili <[email protected]>
---
libavformat/libsrt.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/libavformat/libsrt.c b/libavformat/libsrt.c
index edebb49edf..3a57ac53cb 100644
--- a/libavformat/libsrt.c
+++ b/libavformat/libsrt.c
@@ -90,6 +90,7 @@ typedef struct SRTContext {
int messageapi;
SRT_TRANSTYPE transtype;
int linger;
+ int tsbpd;
} SRTContext;
#define D AV_OPT_FLAG_DECODING_PARAM
@@ -140,6 +141,7 @@ static const AVOption libsrt_options[] = {
{ "live", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = SRTT_LIVE },
INT_MIN, INT_MAX, .flags = D|E, "transtype" },
{ "file", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = SRTT_FILE },
INT_MIN, INT_MAX, .flags = D|E, "transtype" },
{ "linger", "Number of seconds that the socket waits for unsent
data when closing", OFFSET(linger), AV_OPT_TYPE_INT, { .i64 = -1
}, -1, INT_MAX, .flags = D|E },
+ { "tsbpd", "Timestamp-based packet delivery",
OFFSET(tsbpd), AV_OPT_TYPE_BOOL, { .i64 = -1 },
-1, 1, .flags = D|E },
{ NULL }
};
@@ -349,7 +351,8 @@ static int libsrt_set_options_pre(URLContext *h, int fd)
#endif
(s->messageapi >= 0 && libsrt_setsockopt(h, fd, SRTO_MESSAGEAPI,
"SRTO_MESSAGEAPI", &s->messageapi, sizeof(s->messageapi)) < 0) ||
(s->payload_size >= 0 && libsrt_setsockopt(h, fd, SRTO_PAYLOADSIZE,
"SRTO_PAYLOADSIZE", &s->payload_size, sizeof(s->payload_size)) < 0) ||
- ((h->flags & AVIO_FLAG_WRITE) && libsrt_setsockopt(h, fd, SRTO_SENDER,
"SRTO_SENDER", &yes, sizeof(yes)) < 0)) {
+ ((h->flags & AVIO_FLAG_WRITE) && libsrt_setsockopt(h, fd, SRTO_SENDER,
"SRTO_SENDER", &yes, sizeof(yes)) < 0) ||
+ (s->tsbpd >= 0 && libsrt_setsockopt(h, fd, SRTO_TSBPDMODE,
"SRTO_TSBPDMODE", &s->tsbpd, sizeof(s->tsbpd)) < 0)) {
return AVERROR(EIO);
}
--
2.31.1
_______________________________________________
ffmpeg-devel mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".