summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libcinepak/xine_decoder.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/libcinepak/xine_decoder.c b/src/libcinepak/xine_decoder.c
index 0bf774f73..78147ca22 100644
--- a/src/libcinepak/xine_decoder.c
+++ b/src/libcinepak/xine_decoder.c
@@ -136,7 +136,7 @@ static void cinepak_decode_vectors (cvid_frame_t *frame, cvid_strip_t *strip,
for (x=strip->x1; x < strip->x2; x+=4) {
if ((chunk_id & 0x0100) && !(mask >>= 1)) {
if ((data + 4) > eod)
- break;
+ return;
flag = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3];
data += 4;
@@ -146,7 +146,7 @@ static void cinepak_decode_vectors (cvid_frame_t *frame, cvid_strip_t *strip,
if (!(chunk_id & 0x0100) || (flag & mask)) {
if (!(chunk_id & 0x0200) && !(mask >>= 1)) {
if ((data + 4) > eod)
- break;
+ return;
flag = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3];
data += 4;
@@ -155,7 +155,7 @@ static void cinepak_decode_vectors (cvid_frame_t *frame, cvid_strip_t *strip,
if ((chunk_id & 0x0200) || (~flag & mask)) {
if (data >= eod)
- break;
+ return;
codebook = &strip->v1_codebook[*data++];
iy[0][0] = codebook->y0; iy[0][1] = codebook->y0;
@@ -176,7 +176,7 @@ static void cinepak_decode_vectors (cvid_frame_t *frame, cvid_strip_t *strip,
} else if (flag & mask) {
if ((data + 4) > eod)
- break;
+ return;
codebook = &strip->v4_codebook[*data++];
iy[0][0] = codebook->y0; iy[0][1] = codebook->y1;
@@ -442,8 +442,6 @@ static void cvid_reset (video_decoder_t *this_gen)
{
cvid_decoder_t *this = (cvid_decoder_t *) this_gen;
- cinepak_reset (&this->frame);
-
this->size = 0;
}