diff options
author | Guenter Bartsch <guenter@users.sourceforge.net> | 2002-03-24 14:15:36 +0000 |
---|---|---|
committer | Guenter Bartsch <guenter@users.sourceforge.net> | 2002-03-24 14:15:36 +0000 |
commit | 0b1e872fa96412fdf7dc54b8f18ab34ac148e65d (patch) | |
tree | a0da29367fe2d667485a63d38c7e6e5380916a99 /src/libmpeg2 | |
parent | 6d9934d47e664e902402f49c4cf962de5627bc87 (diff) | |
download | xine-lib-0b1e872fa96412fdf7dc54b8f18ab34ac148e65d.tar.gz xine-lib-0b1e872fa96412fdf7dc54b8f18ab34ac148e65d.tar.bz2 |
scr unregister patch from Michael Roitzsch, buffer mem release fix, xmalloc_aligned cleanup - fb vo plugin needs to be fixed for this one
CVS patchset: 1626
CVS date: 2002/03/24 14:15:36
Diffstat (limited to 'src/libmpeg2')
-rw-r--r-- | src/libmpeg2/decode.c | 19 | ||||
-rw-r--r-- | src/libmpeg2/mpeg2.h | 4 |
2 files changed, 9 insertions, 14 deletions
diff --git a/src/libmpeg2/decode.c b/src/libmpeg2/decode.c index d7245afaa..b78b178d5 100644 --- a/src/libmpeg2/decode.c +++ b/src/libmpeg2/decode.c @@ -63,9 +63,11 @@ void mpeg2_init (mpeg2dec_t * mpeg2dec, } if( !mpeg2dec->chunk_buffer ) - mpeg2dec->chunk_buffer = xine_xmalloc_aligned (16, BUFFER_SIZE + 4); + mpeg2dec->chunk_buffer = xine_xmalloc_aligned (16, BUFFER_SIZE + 4, + (void**)&mpeg2dec->chunk_base); if( !mpeg2dec->picture ) - mpeg2dec->picture = xine_xmalloc_aligned (16, sizeof (picture_t)); + mpeg2dec->picture = xine_xmalloc_aligned (16, sizeof (picture_t), + (void**)&mpeg2dec->picture_base); mpeg2dec->shift = 0xffffff00; mpeg2dec->is_sequence_needed = 1; @@ -511,18 +513,11 @@ void mpeg2_flush (mpeg2dec_t * mpeg2dec) { img->scr = 0; img->bad_frame = 0; img->drawn = 1; - + img->draw(img); img->free(img); -#ifdef LOG - } else { - printf ("libmpeg2: flush called, but I have no frame to flush\n"); - - } -#else } -#endif } @@ -572,12 +567,12 @@ void mpeg2_close (mpeg2dec_t * mpeg2dec) } if ( mpeg2dec->chunk_buffer ) { - xine_free_aligned (mpeg2dec->chunk_buffer); + free (mpeg2dec->chunk_base); mpeg2dec->chunk_buffer = NULL; } if ( mpeg2dec->picture ) { - xine_free_aligned (mpeg2dec->picture); + free (mpeg2dec->picture_base); mpeg2dec->picture = NULL; } } diff --git a/src/libmpeg2/mpeg2.h b/src/libmpeg2/mpeg2.h index a0efeaac5..6e70f4bd9 100644 --- a/src/libmpeg2/mpeg2.h +++ b/src/libmpeg2/mpeg2.h @@ -25,7 +25,7 @@ typedef struct mpeg2dec_s { vo_instance_t * output; /* this is where we keep the state of the decoder */ - struct picture_s * picture; + struct picture_s * picture, *picture_base; uint32_t shift; int is_sequence_needed; @@ -37,7 +37,7 @@ typedef struct mpeg2dec_s { /* which is 224K for MP@ML streams. */ /* (we make no pretenses of decoding anything more than that) */ /* allocated in init - gcc has problems allocating such big structures */ - uint8_t * chunk_buffer; + uint8_t * chunk_buffer, *chunk_base; /* pointer to current position in chunk_buffer */ uint8_t * chunk_ptr; /* last start code ? */ |