summaryrefslogtreecommitdiff
path: root/apps/plugins/mpegplayer/video_thread.c
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2008-02-01 02:25:15 +0000
committerMichael Sevakis <jethead71@rockbox.org>2008-02-01 02:25:15 +0000
commitf90cbcb652af3bf794ec61d7f7ec3de00c8b7cb2 (patch)
tree62c13ffdeb5112181897103a6a015cfc1fab98ae /apps/plugins/mpegplayer/video_thread.c
parent7e402d8202af409a0ea8f3f2676a2e6f501af05b (diff)
downloadrockbox-f90cbcb652af3bf794ec61d7f7ec3de00c8b7cb2.tar.gz
rockbox-f90cbcb652af3bf794ec61d7f7ec3de00c8b7cb2.zip
mpegplayer: Use the core DSP to process audio. Removes the sample rate restriction on audio and any mpeg audio samplerate may be used. Use the global sound settings for audio output with the option to force any one of the processing stages off. All are forced off by default. I didn't personally care to fully duplicate the Sound Settings menu which would have been needed since using the core one would affect settings globally and exactly the same configuration probably isn't desired since the CPU load for video playback is much greater. Rebalance the threading to compensate with some expense to buffering speed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16194 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/mpegplayer/video_thread.c')
-rw-r--r--apps/plugins/mpegplayer/video_thread.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/apps/plugins/mpegplayer/video_thread.c b/apps/plugins/mpegplayer/video_thread.c
index feee643d12..6508d28d1d 100644
--- a/apps/plugins/mpegplayer/video_thread.c
+++ b/apps/plugins/mpegplayer/video_thread.c
@@ -63,15 +63,21 @@ static void draw_fps(struct video_thread_data *td)
63 uint32_t start; 63 uint32_t start;
64 uint32_t clock_ticks = stream_get_ticks(&start); 64 uint32_t clock_ticks = stream_get_ticks(&start);
65 int fps = 0; 65 int fps = 0;
66 int buf_pct;
66 char str[80]; 67 char str[80];
67 68
68 clock_ticks -= start; 69 clock_ticks -= start;
69 if (clock_ticks != 0) 70 if (clock_ticks != 0)
70 fps = muldiv_uint32(CLOCK_RATE*100, td->num_drawn, clock_ticks); 71 fps = muldiv_uint32(CLOCK_RATE*100, td->num_drawn, clock_ticks);
71 72
72 rb->snprintf(str, sizeof(str), "%d.%02d %d %d ", 73 buf_pct = muldiv_uint32(100, pcm_output_used(), PCMOUT_BUFSIZE);
74
75 rb->snprintf(str, sizeof(str), "v:%d.%02d %d %d a:%02d%% %d %d ",
76 /* Video information */
73 fps / 100, fps % 100, td->num_skipped, 77 fps / 100, fps % 100, td->num_skipped,
74 td->info->display_picture->temporal_reference); 78 td->info->display_picture->temporal_reference,
79 /* Audio information */
80 buf_pct, pcm_underruns, pcm_skipped);
75 lcd_(putsxy)(0, 0, str); 81 lcd_(putsxy)(0, 0, str);
76 82
77 vo_lock(); 83 vo_lock();
@@ -277,7 +283,6 @@ static int sync_decoder(struct video_thread_data *td,
277 while (1) 283 while (1)
278 { 284 {
279 mpeg2_state_t mp2state = mpeg2_parse(td->mpeg2dec); 285 mpeg2_state_t mp2state = mpeg2_parse(td->mpeg2dec);
280 rb->yield();
281 286
282 switch (mp2state) 287 switch (mp2state)
283 { 288 {
@@ -697,7 +702,6 @@ static void video_thread(void)
697 702
698 picture_decode: 703 picture_decode:
699 mp2state = mpeg2_parse (td.mpeg2dec); 704 mp2state = mpeg2_parse (td.mpeg2dec);
700 rb->yield();
701 705
702 switch (mp2state) 706 switch (mp2state)
703 { 707 {