diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2024-06-10 07:19:01 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2024-06-20 18:58:39 +0200 |
commit | c1097556c734a418354fa23c403e0237a5e93bb5 (patch) | |
tree | 27bbc83e70cfd4b08a9242ccbe4abc45935430ec /libavcodec | |
parent | 18b059f208f779f10ca1f5699e8054a647610632 (diff) | |
download | ffmpeg-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')
-rw-r--r-- | libavcodec/h261dec.c | 27 |
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); } |