[FFmpeg-devel] [PATCH 51/57] avcodec/h261dec: Simplify decoding GOB header
Andreas Rheinhardt
andreas.rheinhardt at outlook.com
Wed Jun 12 16:48:47 EEST 2024
h261_resync() can be completely removed, because
h261_decode_gob_header() checks for a GOB header itself if
gob_start_code_skipped is zero.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
libavcodec/h261dec.c | 27 +--------------------------
1 file changed, 1 insertion(+), 26 deletions(-)
diff --git a/libavcodec/h261dec.c b/libavcodec/h261dec.c
index 2038afc591..f1c1e1a48a 100644
--- a/libavcodec/h261dec.c
+++ b/libavcodec/h261dec.c
@@ -165,31 +165,6 @@ static int h261_decode_gob_header(H261DecContext *h)
return 0;
}
-/**
- * Decode the group of blocks / video packet header.
- * @return <0 if no resync found
- */
-static int h261_resync(H261DecContext *h)
-{
- MpegEncContext *const s = &h->s;
- int ret;
-
- if (h->gob_start_code_skipped) {
- ret = h261_decode_gob_header(h);
- if (ret >= 0)
- return 0;
- } else {
- if (show_bits(&s->gb, 15) == 0) {
- ret = h261_decode_gob_header(h);
- if (ret >= 0)
- return 0;
- }
- // OK, it is not where it is supposed to be ...
- }
-
- return -1;
-}
-
/**
* Decode skipped macroblocks.
* @return 0
@@ -626,7 +601,7 @@ static int h261_decode_frame(AVCodecContext *avctx, AVFrame *pict,
s->mb_y = 0;
while (h->gob_number < (s->mb_height == 18 ? 12 : 5)) {
- if (h261_resync(h) < 0)
+ if (h261_decode_gob_header(h) < 0)
break;
h261_decode_gob(h);
}
--
2.40.1
More information about the ffmpeg-devel
mailing list