The branch, master has been updated
via 9c266084fe735752dffdd77d4e791d7b80ac55d0 (commit)
via 9ab6a94195f584b0400819f8fe790afe71611076 (commit)
from fc2c030fb2b24582730ccf0e81631b297408fb94 (commit)
- Log -----------------------------------------------------------------
commit 9c266084fe735752dffdd77d4e791d7b80ac55d0
Author: James Almer <[email protected]>
AuthorDate: Wed Oct 29 12:47:11 2025 -0300
Commit: James Almer <[email protected]>
CommitDate: Sat Nov 1 12:23:19 2025 -0300
avcodec/vc1_parser: stop splitting ENDOFSEQ markers into separate packets
The decode API can handle outputting delayed frames without relying on the
parser splitting off the ENDOFSEQ marker.
Signed-off-by: James Almer <[email protected]>
diff --git a/libavcodec/vc1_parser.c b/libavcodec/vc1_parser.c
index 124a7a771f..05094d782f 100644
--- a/libavcodec/vc1_parser.c
+++ b/libavcodec/vc1_parser.c
@@ -216,7 +216,8 @@ static int vc1_parse(AVCodecParserContext *s,
if (!pic_found && (b == (VC1_CODE_FRAME & 0xFF) || b ==
(VC1_CODE_FIELD & 0xFF))) {
pic_found = 1;
}
- else if (pic_found && b != (VC1_CODE_FIELD & 0xFF) && b !=
(VC1_CODE_SLICE & 0xFF)) {
+ else if (pic_found && b != (VC1_CODE_FIELD & 0xFF) && b !=
(VC1_CODE_SLICE & 0xFF)
+ && b != (VC1_CODE_ENDOFSEQ & 0xFF)) {
next = i - 4;
pic_found = b == (VC1_CODE_FRAME & 0xFF);
break;
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 2618016a83..d6e0724326 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -30,7 +30,7 @@
#include "version_major.h"
#define LIBAVCODEC_VERSION_MINOR 17
-#define LIBAVCODEC_VERSION_MICRO 100
+#define LIBAVCODEC_VERSION_MICRO 101
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \
commit 9ab6a94195f584b0400819f8fe790afe71611076
Author: James Almer <[email protected]>
AuthorDate: Wed Oct 29 12:17:56 2025 -0300
Commit: James Almer <[email protected]>
CommitDate: Sat Nov 1 12:22:49 2025 -0300
avcodec/vc1dec: look for ENDOFSEQ markers at the end of a packet's payload
This is in preparation for the parser no longer splitting them into their
own
packets.
Signed-off-by: James Almer <[email protected]>
diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c
index 1925384ba5..6caa418134 100644
--- a/libavcodec/vc1dec.c
+++ b/libavcodec/vc1dec.c
@@ -832,8 +832,11 @@ static int vc1_decode_frame(AVCodecContext *avctx, AVFrame
*pict,
if(s->avctx->flags & AV_CODEC_FLAG_LOW_DELAY)
s->low_delay = 1;
+ if (buf_size >= 4 && AV_RB32(&buf[buf_size-4]) == VC1_CODE_ENDOFSEQ)
+ buf_size -= 4;
+
/* no supplementary picture */
- if (buf_size == 0 || (buf_size == 4 && AV_RB32(buf) == VC1_CODE_ENDOFSEQ))
{
+ if (buf_size == 0) {
/* special case for last picture */
if (s->low_delay == 0 && s->next_pic.ptr) {
if ((ret = av_frame_ref(pict, s->next_pic.ptr->f)) < 0)
-----------------------------------------------------------------------
Summary of changes:
libavcodec/vc1_parser.c | 3 ++-
libavcodec/vc1dec.c | 5 ++++-
libavcodec/version.h | 2 +-
3 files changed, 7 insertions(+), 3 deletions(-)
hooks/post-receive
--
_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]