summaryrefslogtreecommitdiff
path: root/apps/plugins/mpegplayer/decode.c
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2007-12-29 19:46:35 +0000
committerMichael Sevakis <jethead71@rockbox.org>2007-12-29 19:46:35 +0000
commita222f27c4a17ed8f9809cda7861fe5f23d4cc0c1 (patch)
treed393a23d83549f99772bb156e59ffb88725148b6 /apps/plugins/mpegplayer/decode.c
parent1d0f6b90ff43776e55b4b9f062c9bea3f99aa768 (diff)
downloadrockbox-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.c11
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)
521void mpeg2_close (mpeg2dec_t * mpeg2dec) 521void 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}