* [FFmpeg-devel] [PATCH 2/3] avformat/hls: Show error info when read key file failed @ 2025-04-23 12:59 Zhao Zhili 2025-04-24 2:24 ` Steven Liu 2025-04-24 3:08 ` Marvin Scholz 0 siblings, 2 replies; 8+ messages in thread From: Zhao Zhili @ 2025-04-23 12:59 UTC (permalink / raw) To: ffmpeg-devel; +Cc: Zhao Zhili From: Zhao Zhili <zhilizhao@tencent.com> --- libavformat/hls.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/libavformat/hls.c b/libavformat/hls.c index 6623c80309..45c1b283c9 100644 --- a/libavformat/hls.c +++ b/libavformat/hls.c @@ -1353,16 +1353,18 @@ static int open_input(HLSContext *c, struct playlist *pls, struct segment *seg, if (seg->key_type == KEY_AES_128 || seg->key_type == KEY_SAMPLE_AES) { if (strcmp(seg->key, pls->key_url)) { AVIOContext *pb = NULL; - if (open_url(pls->parent, &pb, seg->key, &c->avio_opts, NULL, NULL) == 0) { + + ret = open_url(pls->parent, &pb, seg->key, &c->avio_opts, NULL, NULL); + if (ret >= 0) { ret = avio_read(pb, pls->key, sizeof(pls->key)); if (ret != sizeof(pls->key)) { - av_log(pls->parent, AV_LOG_ERROR, "Unable to read key file %s\n", - seg->key); + av_log(pls->parent, AV_LOG_ERROR, "Unable to read key file %s, %s\n", + seg->key, av_err2str(ret)); } ff_format_io_close(pls->parent, &pb); } else { - av_log(pls->parent, AV_LOG_ERROR, "Unable to open key file %s\n", - seg->key); + av_log(pls->parent, AV_LOG_ERROR, "Unable to open key file %s, %s\n", + seg->key, av_err2str(ret)); } av_strlcpy(pls->key_url, seg->key, sizeof(pls->key_url)); } -- 2.46.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/3] avformat/hls: Show error info when read key file failed 2025-04-23 12:59 [FFmpeg-devel] [PATCH 2/3] avformat/hls: Show error info when read key file failed Zhao Zhili @ 2025-04-24 2:24 ` Steven Liu 2025-04-24 2:51 ` Zhao Zhili 2025-04-24 3:08 ` Marvin Scholz 1 sibling, 1 reply; 8+ messages in thread From: Steven Liu @ 2025-04-24 2:24 UTC (permalink / raw) To: FFmpeg development discussions and patches; +Cc: Steven Liu, Zhao Zhili > On Apr 23, 2025, at 20:59, Zhao Zhili <quinkblack-at-foxmail.com@ffmpeg.org> wrote: Hi Zhili, > > From: Zhao Zhili <zhilizhao@tencent.com> > > --- > libavformat/hls.c | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) > > diff --git a/libavformat/hls.c b/libavformat/hls.c > index 6623c80309..45c1b283c9 100644 > --- a/libavformat/hls.c > +++ b/libavformat/hls.c > @@ -1353,16 +1353,18 @@ static int open_input(HLSContext *c, struct playlist *pls, struct segment *seg, > if (seg->key_type == KEY_AES_128 || seg->key_type == KEY_SAMPLE_AES) { > if (strcmp(seg->key, pls->key_url)) { > AVIOContext *pb = NULL; > - if (open_url(pls->parent, &pb, seg->key, &c->avio_opts, NULL, NULL) == 0) { > + > + ret = open_url(pls->parent, &pb, seg->key, &c->avio_opts, NULL, NULL); > + if (ret >= 0) { > ret = avio_read(pb, pls->key, sizeof(pls->key)); > if (ret != sizeof(pls->key)) { > - av_log(pls->parent, AV_LOG_ERROR, "Unable to read key file %s\n", > - seg->key); > + av_log(pls->parent, AV_LOG_ERROR, "Unable to read key file %s, %s\n", > + seg->key, av_err2str(ret)); > } > ff_format_io_close(pls->parent, &pb); > } else { > - av_log(pls->parent, AV_LOG_ERROR, "Unable to open key file %s\n", > - seg->key); > + av_log(pls->parent, AV_LOG_ERROR, "Unable to open key file %s, %s\n", > + seg->key, av_err2str(ret)); > } Why not jump to cleanup immediately after an output error? Thanks Steven _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/3] avformat/hls: Show error info when read key file failed 2025-04-24 2:24 ` Steven Liu @ 2025-04-24 2:51 ` Zhao Zhili 2025-04-25 8:05 ` Martin Storsjö 0 siblings, 1 reply; 8+ messages in thread From: Zhao Zhili @ 2025-04-24 2:51 UTC (permalink / raw) To: FFmpeg development discussions and patches Cc: Steven Liu, Martin Storsjö > On Apr 24, 2025, at 10:24, Steven Liu <lq@chinaffmpeg.org> wrote: > > >> On Apr 23, 2025, at 20:59, Zhao Zhili <quinkblack-at-foxmail.com@ffmpeg.org> wrote: > Hi Zhili, >> >> From: Zhao Zhili <zhilizhao@tencent.com> >> >> --- >> libavformat/hls.c | 12 +++++++----- >> 1 file changed, 7 insertions(+), 5 deletions(-) >> >> diff --git a/libavformat/hls.c b/libavformat/hls.c >> index 6623c80309..45c1b283c9 100644 >> --- a/libavformat/hls.c >> +++ b/libavformat/hls.c >> @@ -1353,16 +1353,18 @@ static int open_input(HLSContext *c, struct playlist *pls, struct segment *seg, >> if (seg->key_type == KEY_AES_128 || seg->key_type == KEY_SAMPLE_AES) { >> if (strcmp(seg->key, pls->key_url)) { >> AVIOContext *pb = NULL; >> - if (open_url(pls->parent, &pb, seg->key, &c->avio_opts, NULL, NULL) == 0) { >> + >> + ret = open_url(pls->parent, &pb, seg->key, &c->avio_opts, NULL, NULL); >> + if (ret >= 0) { >> ret = avio_read(pb, pls->key, sizeof(pls->key)); >> if (ret != sizeof(pls->key)) { >> - av_log(pls->parent, AV_LOG_ERROR, "Unable to read key file %s\n", >> - seg->key); >> + av_log(pls->parent, AV_LOG_ERROR, "Unable to read key file %s, %s\n", >> + seg->key, av_err2str(ret)); >> } >> ff_format_io_close(pls->parent, &pb); >> } else { >> - av_log(pls->parent, AV_LOG_ERROR, "Unable to open key file %s\n", >> - seg->key); >> + av_log(pls->parent, AV_LOG_ERROR, "Unable to open key file %s, %s\n", >> + seg->key, av_err2str(ret)); >> } > Why not jump to cleanup immediately after an output error? Because I don't know why not return error when the code is added in 84465f21 since 2011, and not changed since then. I'm worried return error might trigger unknown bugs. Cc Martin. Is there some reason not to error out in this case? Does that reason still hold now? > > Thanks > Steven > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/3] avformat/hls: Show error info when read key file failed 2025-04-24 2:51 ` Zhao Zhili @ 2025-04-25 8:05 ` Martin Storsjö 0 siblings, 0 replies; 8+ messages in thread From: Martin Storsjö @ 2025-04-25 8:05 UTC (permalink / raw) To: Zhao Zhili; +Cc: Steven Liu, FFmpeg development discussions and patches On Thu, 24 Apr 2025, Zhao Zhili wrote: >> On Apr 24, 2025, at 10:24, Steven Liu <lq@chinaffmpeg.org> wrote: >> >> >>> On Apr 23, 2025, at 20:59, Zhao Zhili <quinkblack-at-foxmail.com@ffmpeg.org> wrote: >> Hi Zhili, >>> >>> From: Zhao Zhili <zhilizhao@tencent.com> >>> >>> --- >>> libavformat/hls.c | 12 +++++++----- >>> 1 file changed, 7 insertions(+), 5 deletions(-) >>> >>> diff --git a/libavformat/hls.c b/libavformat/hls.c >>> index 6623c80309..45c1b283c9 100644 >>> --- a/libavformat/hls.c >>> +++ b/libavformat/hls.c >>> @@ -1353,16 +1353,18 @@ static int open_input(HLSContext *c, struct playlist *pls, struct segment *seg, >>> if (seg->key_type == KEY_AES_128 || seg->key_type == KEY_SAMPLE_AES) { >>> if (strcmp(seg->key, pls->key_url)) { >>> AVIOContext *pb = NULL; >>> - if (open_url(pls->parent, &pb, seg->key, &c->avio_opts, NULL, NULL) == 0) { >>> + >>> + ret = open_url(pls->parent, &pb, seg->key, &c->avio_opts, NULL, NULL); >>> + if (ret >= 0) { >>> ret = avio_read(pb, pls->key, sizeof(pls->key)); >>> if (ret != sizeof(pls->key)) { >>> - av_log(pls->parent, AV_LOG_ERROR, "Unable to read key file %s\n", >>> - seg->key); >>> + av_log(pls->parent, AV_LOG_ERROR, "Unable to read key file %s, %s\n", >>> + seg->key, av_err2str(ret)); >>> } >>> ff_format_io_close(pls->parent, &pb); >>> } else { >>> - av_log(pls->parent, AV_LOG_ERROR, "Unable to open key file %s\n", >>> - seg->key); >>> + av_log(pls->parent, AV_LOG_ERROR, "Unable to open key file %s, %s\n", >>> + seg->key, av_err2str(ret)); >>> } >> Why not jump to cleanup immediately after an output error? > > Because I don't know why not return error when the code is added in 84465f21 since 2011, and not > changed since then. I'm worried return error might trigger unknown bugs. > > Cc Martin. Is there some reason not to error out in this case? Does that reason still hold now? I really don't remember if there was any specific reason for not wanting to error out directly at that point - I wouldn't think so. So feel free to add that if it makes sense; it's most likely an oversight. // Martin _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/3] avformat/hls: Show error info when read key file failed 2025-04-23 12:59 [FFmpeg-devel] [PATCH 2/3] avformat/hls: Show error info when read key file failed Zhao Zhili 2025-04-24 2:24 ` Steven Liu @ 2025-04-24 3:08 ` Marvin Scholz 2025-04-24 3:54 ` [FFmpeg-devel] [PATCH v2 " Zhao Zhili 2025-04-24 4:04 ` [FFmpeg-devel] [PATCH " Zhao Zhili 1 sibling, 2 replies; 8+ messages in thread From: Marvin Scholz @ 2025-04-24 3:08 UTC (permalink / raw) To: FFmpeg development discussions and patches On 23 Apr 2025, at 14:59, Zhao Zhili wrote: > From: Zhao Zhili <zhilizhao@tencent.com> > > --- > libavformat/hls.c | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) > > diff --git a/libavformat/hls.c b/libavformat/hls.c > index 6623c80309..45c1b283c9 100644 > --- a/libavformat/hls.c > +++ b/libavformat/hls.c > @@ -1353,16 +1353,18 @@ static int open_input(HLSContext *c, struct playlist *pls, struct segment *seg, > if (seg->key_type == KEY_AES_128 || seg->key_type == KEY_SAMPLE_AES) { > if (strcmp(seg->key, pls->key_url)) { > AVIOContext *pb = NULL; > - if (open_url(pls->parent, &pb, seg->key, &c->avio_opts, NULL, NULL) == 0) { > + > + ret = open_url(pls->parent, &pb, seg->key, &c->avio_opts, NULL, NULL); > + if (ret >= 0) { > ret = avio_read(pb, pls->key, sizeof(pls->key)); > if (ret != sizeof(pls->key)) { > - av_log(pls->parent, AV_LOG_ERROR, "Unable to read key file %s\n", > - seg->key); > + av_log(pls->parent, AV_LOG_ERROR, "Unable to read key file %s, %s\n", > + seg->key, av_err2str(ret)); The check here is just checking if the size matches the expected size, lets say it just reads 1 byte instead if 10, av_err2str(ret) called with 1 in this example wont give you anything meaningful and even more unhelpful than the previous message. You should check that ret is actually negative, else you should probably report that the file ended unexpectedly, printing the expected size and amount that was actually read. (Also unrelated to this patch but this ret is eventually returned by the function with a possibly positive value in this case which seems wrong...) > } > ff_format_io_close(pls->parent, &pb); > } else { > - av_log(pls->parent, AV_LOG_ERROR, "Unable to open key file %s\n", > - seg->key); > + av_log(pls->parent, AV_LOG_ERROR, "Unable to open key file %s, %s\n", > + seg->key, av_err2str(ret)); > } > av_strlcpy(pls->key_url, seg->key, sizeof(pls->key_url)); > } > -- > 2.46.0 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 8+ messages in thread
* [FFmpeg-devel] [PATCH v2 2/3] avformat/hls: Show error info when read key file failed 2025-04-24 3:08 ` Marvin Scholz @ 2025-04-24 3:54 ` Zhao Zhili 2025-04-24 17:13 ` Marvin Scholz 2025-04-24 4:04 ` [FFmpeg-devel] [PATCH " Zhao Zhili 1 sibling, 1 reply; 8+ messages in thread From: Zhao Zhili @ 2025-04-24 3:54 UTC (permalink / raw) To: ffmpeg-devel; +Cc: Zhao Zhili From: Zhao Zhili <zhilizhao@tencent.com> --- libavformat/hls.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/libavformat/hls.c b/libavformat/hls.c index 6623c80309..6139b8525e 100644 --- a/libavformat/hls.c +++ b/libavformat/hls.c @@ -1353,16 +1353,22 @@ static int open_input(HLSContext *c, struct playlist *pls, struct segment *seg, if (seg->key_type == KEY_AES_128 || seg->key_type == KEY_SAMPLE_AES) { if (strcmp(seg->key, pls->key_url)) { AVIOContext *pb = NULL; - if (open_url(pls->parent, &pb, seg->key, &c->avio_opts, NULL, NULL) == 0) { + + ret = open_url(pls->parent, &pb, seg->key, &c->avio_opts, NULL, NULL); + if (ret >= 0) { ret = avio_read(pb, pls->key, sizeof(pls->key)); if (ret != sizeof(pls->key)) { - av_log(pls->parent, AV_LOG_ERROR, "Unable to read key file %s\n", - seg->key); + if (ret < 0) + av_log(pls->parent, AV_LOG_ERROR, "Unable to read key file %s, %s\n", + seg->key, av_err2str(ret)); + else + av_log(pls->parent, AV_LOG_ERROR, "Unable to read key file %s, read bytes %d != %zu\n", + seg->key, ret, sizeof(pls->key)); } ff_format_io_close(pls->parent, &pb); } else { - av_log(pls->parent, AV_LOG_ERROR, "Unable to open key file %s\n", - seg->key); + av_log(pls->parent, AV_LOG_ERROR, "Unable to open key file %s, %s\n", + seg->key, av_err2str(ret)); } av_strlcpy(pls->key_url, seg->key, sizeof(pls->key_url)); } -- 2.46.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH v2 2/3] avformat/hls: Show error info when read key file failed 2025-04-24 3:54 ` [FFmpeg-devel] [PATCH v2 " Zhao Zhili @ 2025-04-24 17:13 ` Marvin Scholz 0 siblings, 0 replies; 8+ messages in thread From: Marvin Scholz @ 2025-04-24 17:13 UTC (permalink / raw) To: FFmpeg development discussions and patches On 24 Apr 2025, at 5:54, Zhao Zhili wrote: > From: Zhao Zhili <zhilizhao@tencent.com> > > --- > libavformat/hls.c | 16 +++++++++++----- > 1 file changed, 11 insertions(+), 5 deletions(-) > > diff --git a/libavformat/hls.c b/libavformat/hls.c > index 6623c80309..6139b8525e 100644 > --- a/libavformat/hls.c > +++ b/libavformat/hls.c > @@ -1353,16 +1353,22 @@ static int open_input(HLSContext *c, struct playlist *pls, struct segment *seg, > if (seg->key_type == KEY_AES_128 || seg->key_type == KEY_SAMPLE_AES) { > if (strcmp(seg->key, pls->key_url)) { > AVIOContext *pb = NULL; > - if (open_url(pls->parent, &pb, seg->key, &c->avio_opts, NULL, NULL) == 0) { > + > + ret = open_url(pls->parent, &pb, seg->key, &c->avio_opts, NULL, NULL); > + if (ret >= 0) { > ret = avio_read(pb, pls->key, sizeof(pls->key)); > if (ret != sizeof(pls->key)) { > - av_log(pls->parent, AV_LOG_ERROR, "Unable to read key file %s\n", > - seg->key); > + if (ret < 0) > + av_log(pls->parent, AV_LOG_ERROR, "Unable to read key file %s, %s\n", > + seg->key, av_err2str(ret)); > + else > + av_log(pls->parent, AV_LOG_ERROR, "Unable to read key file %s, read bytes %d != %zu\n", > + seg->key, ret, sizeof(pls->key)); > } > ff_format_io_close(pls->parent, &pb); > } else { > - av_log(pls->parent, AV_LOG_ERROR, "Unable to open key file %s\n", > - seg->key); > + av_log(pls->parent, AV_LOG_ERROR, "Unable to open key file %s, %s\n", > + seg->key, av_err2str(ret)); > } > av_strlcpy(pls->key_url, seg->key, sizeof(pls->key_url)); > } > -- > 2.46.0 LGTM > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/3] avformat/hls: Show error info when read key file failed 2025-04-24 3:08 ` Marvin Scholz 2025-04-24 3:54 ` [FFmpeg-devel] [PATCH v2 " Zhao Zhili @ 2025-04-24 4:04 ` Zhao Zhili 1 sibling, 0 replies; 8+ messages in thread From: Zhao Zhili @ 2025-04-24 4:04 UTC (permalink / raw) To: FFmpeg development discussions and patches > On Apr 24, 2025, at 11:08, Marvin Scholz <epirat07@gmail.com> wrote: > > > On 23 Apr 2025, at 14:59, Zhao Zhili wrote: > >> From: Zhao Zhili <zhilizhao@tencent.com> >> >> --- >> libavformat/hls.c | 12 +++++++----- >> 1 file changed, 7 insertions(+), 5 deletions(-) >> >> diff --git a/libavformat/hls.c b/libavformat/hls.c >> index 6623c80309..45c1b283c9 100644 >> --- a/libavformat/hls.c >> +++ b/libavformat/hls.c >> @@ -1353,16 +1353,18 @@ static int open_input(HLSContext *c, struct playlist *pls, struct segment *seg, >> if (seg->key_type == KEY_AES_128 || seg->key_type == KEY_SAMPLE_AES) { >> if (strcmp(seg->key, pls->key_url)) { >> AVIOContext *pb = NULL; >> - if (open_url(pls->parent, &pb, seg->key, &c->avio_opts, NULL, NULL) == 0) { >> + >> + ret = open_url(pls->parent, &pb, seg->key, &c->avio_opts, NULL, NULL); >> + if (ret >= 0) { >> ret = avio_read(pb, pls->key, sizeof(pls->key)); >> if (ret != sizeof(pls->key)) { >> - av_log(pls->parent, AV_LOG_ERROR, "Unable to read key file %s\n", >> - seg->key); >> + av_log(pls->parent, AV_LOG_ERROR, "Unable to read key file %s, %s\n", >> + seg->key, av_err2str(ret)); > > The check here is just checking if the size matches the expected size, lets say it just > reads 1 byte instead if 10, av_err2str(ret) called with 1 in this example wont give you > anything meaningful and even more unhelpful than the previous message. > > You should check that ret is actually negative, else you should probably report that the file > ended unexpectedly, printing the expected size and amount that was actually read. Alright, fixed in v2. https://ffmpeg.org/pipermail/ffmpeg-devel/2025-April/342706.html > > (Also unrelated to this patch but this ret is eventually returned by the function with a possibly > positive value in this case which seems wrong...) This doesn’t happen now since the code doesn't error out when read key failed. I guess for key type SAMPLE_AES, audio track can be in clear, while the video track can be partially encrypted. There is a check at line 1408 which should be ret >= 0, but > 0 doesn’t happen in real. 1408 if (ret == 0 && !is_http && seg->url_offset) { > >> } >> ff_format_io_close(pls->parent, &pb); >> } else { >> - av_log(pls->parent, AV_LOG_ERROR, "Unable to open key file %s\n", >> - seg->key); >> + av_log(pls->parent, AV_LOG_ERROR, "Unable to open key file %s, %s\n", >> + seg->key, av_err2str(ret)); >> } >> av_strlcpy(pls->key_url, seg->key, sizeof(pls->key_url)); >> } >> -- >> 2.46.0 >> >> _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> >> To unsubscribe, visit link above, or email >> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-04-25 8:06 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2025-04-23 12:59 [FFmpeg-devel] [PATCH 2/3] avformat/hls: Show error info when read key file failed Zhao Zhili 2025-04-24 2:24 ` Steven Liu 2025-04-24 2:51 ` Zhao Zhili 2025-04-25 8:05 ` Martin Storsjö 2025-04-24 3:08 ` Marvin Scholz 2025-04-24 3:54 ` [FFmpeg-devel] [PATCH v2 " Zhao Zhili 2025-04-24 17:13 ` Marvin Scholz 2025-04-24 4:04 ` [FFmpeg-devel] [PATCH " Zhao Zhili
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git