diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2007-12-29 19:46:35 +0000 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2007-12-29 19:46:35 +0000 |
commit | a222f27c4a17ed8f9809cda7861fe5f23d4cc0c1 (patch) | |
tree | d393a23d83549f99772bb156e59ffb88725148b6 /apps/plugins/mpegplayer/decode.c | |
parent | 1d0f6b90ff43776e55b4b9f062c9bea3f99aa768 (diff) | |
download | rockbox-a222f27c4a17ed8f9809cda7861fe5f23d4cc0c1.tar.gz rockbox-a222f27c4a17ed8f9809cda7861fe5f23d4cc0c1.zip |
mpegplayer: Make playback engine fully seekable and frame-accurate and split into logical parts. Be sure to have all current features work. Actual UI for seeking will be added soon. Recommended GOP size is about 15-30 frames depending on target or seeking can be slow with really long GOPs (nature of MPEG video). More refined encoding recommendations for a particular player should be posted soon.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15977 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/mpegplayer/decode.c')
-rw-r--r-- | apps/plugins/mpegplayer/decode.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/apps/plugins/mpegplayer/decode.c b/apps/plugins/mpegplayer/decode.c index fac724c48c..2176cad601 100644 --- a/apps/plugins/mpegplayer/decode.c +++ b/apps/plugins/mpegplayer/decode.c | |||
@@ -497,8 +497,8 @@ mpeg2dec_t * mpeg2_init (void) | |||
497 | 497 | ||
498 | mpeg2_idct_init (); | 498 | mpeg2_idct_init (); |
499 | 499 | ||
500 | mpeg2dec = (mpeg2dec_t *)mpeg2_malloc(sizeof (mpeg2dec_t), | 500 | mpeg2dec = (mpeg2dec_t *)mpeg2_bufalloc(sizeof (mpeg2dec_t), |
501 | MPEG2_ALLOC_MPEG2DEC); | 501 | MPEG2_ALLOC_MPEG2DEC); |
502 | if (mpeg2dec == NULL) | 502 | if (mpeg2dec == NULL) |
503 | return NULL; | 503 | return NULL; |
504 | 504 | ||
@@ -509,8 +509,8 @@ mpeg2dec_t * mpeg2_init (void) | |||
509 | rb->memset (mpeg2dec->decoder.DCTblock, 0, 64 * sizeof (int16_t)); | 509 | rb->memset (mpeg2dec->decoder.DCTblock, 0, 64 * sizeof (int16_t)); |
510 | rb->memset (mpeg2dec->quantizer_matrix, 0, 4 * 64 * sizeof (uint8_t)); | 510 | rb->memset (mpeg2dec->quantizer_matrix, 0, 4 * 64 * sizeof (uint8_t)); |
511 | 511 | ||
512 | mpeg2dec->chunk_buffer = (uint8_t *)mpeg2_malloc(BUFFER_SIZE + 4, | 512 | mpeg2dec->chunk_buffer = (uint8_t *)mpeg2_bufalloc(BUFFER_SIZE + 4, |
513 | MPEG2_ALLOC_CHUNK); | 513 | MPEG2_ALLOC_CHUNK); |
514 | 514 | ||
515 | mpeg2dec->sequence.width = (unsigned)-1; | 515 | mpeg2dec->sequence.width = (unsigned)-1; |
516 | mpeg2_reset (mpeg2dec, 1); | 516 | mpeg2_reset (mpeg2dec, 1); |
@@ -521,6 +521,9 @@ mpeg2dec_t * mpeg2_init (void) | |||
521 | void mpeg2_close (mpeg2dec_t * mpeg2dec) | 521 | void mpeg2_close (mpeg2dec_t * mpeg2dec) |
522 | { | 522 | { |
523 | mpeg2_header_state_init (mpeg2dec); | 523 | mpeg2_header_state_init (mpeg2dec); |
524 | #if 0 | ||
525 | /* These are dedicated buffers in rockbox */ | ||
524 | mpeg2_free (mpeg2dec->chunk_buffer); | 526 | mpeg2_free (mpeg2dec->chunk_buffer); |
525 | mpeg2_free (mpeg2dec); | 527 | mpeg2_free (mpeg2dec); |
528 | #endif | ||
526 | } | 529 | } |