aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/h261dec.c
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2024-06-10 07:19:01 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2024-06-20 18:58:39 +0200
commitc1097556c734a418354fa23c403e0237a5e93bb5 (patch)
tree27bbc83e70cfd4b08a9242ccbe4abc45935430ec /libavcodec/h261dec.c
parent18b059f208f779f10ca1f5699e8054a647610632 (diff)
downloadffmpeg-c1097556c734a418354fa23c403e0237a5e93bb5.tar.gz
avcodec/h261dec: Simplify decoding GOB header
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@outlook.com>
Diffstat (limited to 'libavcodec/h261dec.c')
-rw-r--r--libavcodec/h261dec.c27
1 files changed, 1 insertions, 26 deletions
diff --git a/libavcodec/h261dec.c b/libavcodec/h261dec.c
index 2038afc591..f1c1e1a48a 100644
--- a/libavcodec/h261dec.c
+++ b/libavcodec/h261dec.c
@@ -166,31 +166,6 @@ static int h261_decode_gob_header(H261DecContext *h)
}
/**
- * 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);
}