Rockbox open source high quality audio player as a Music Player Daemon
mpris rockbox mpd libadwaita audio rust zig deno
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

pcmbuf: remove pcmbuf_sampr

Change-Id: I5da91acbf8a3e23446d38b9e62d4e1c67d41aba9

mojyack cfb01cfd 498a9fff

+11 -24
+2 -1
apps/codec_thread.c
··· 26 26 #include "kernel.h" 27 27 #include "codecs.h" 28 28 #include "codec_thread.h" 29 + #include "pcm_mixer.h" 29 30 #include "pcmbuf.h" 30 31 #include "audio_thread.h" 31 32 #include "playback.h" ··· 518 519 codec_queue_ack(Q_CODEC_RUN); 519 520 520 521 trigger_cpu_boost(); 521 - dsp_configure(ci.dsp, DSP_SET_OUT_FREQUENCY, pcmbuf_get_frequency()); 522 + dsp_configure(ci.dsp, DSP_SET_OUT_FREQUENCY, mixer_get_frequency()); 522 523 523 524 if (!encoder) 524 525 {
+9 -17
apps/pcmbuf.c
··· 69 69 chunks */ 70 70 71 71 /* Return data level in 1/4-second increments */ 72 - #define DATA_LEVEL(quarter_secs) (pcmbuf_sampr * (quarter_secs)) 72 + static inline unsigned int data_level(int quarter_secs) 73 + { 74 + return mixer_get_frequency() * quarter_secs; 75 + } 73 76 74 77 /* Number of bytes played per second */ 75 - #define BYTERATE (pcmbuf_sampr * PCMBUF_SAMPLE_SIZE) 78 + #define BYTERATE (mixer_get_frequency() * PCMBUF_SAMPLE_SIZE) 76 79 77 80 #if MEMORYSIZE > 2 78 81 /* Keep watermark high for large memory target - at least (2s) */ 79 82 #define PCMBUF_WATERMARK (BYTERATE * 2) 80 83 #define MIN_BUFFER_SIZE (BYTERATE * 3) 81 84 /* 1 seconds of buffer is low data */ 82 - #define LOW_DATA DATA_LEVEL(4) 85 + #define LOW_DATA data_level(4) 83 86 #else 84 87 #define PCMBUF_WATERMARK (BYTERATE / 4) /* 0.25 seconds */ 85 88 #define MIN_BUFFER_SIZE (BYTERATE * 1) ··· 109 112 static struct chunkdesc *pcmbuf_descriptors; 110 113 static unsigned int pcmbuf_desc_count; 111 114 static unsigned int position_key = 1; 112 - static unsigned int pcmbuf_sampr = 0; 113 115 114 116 static size_t chunk_ridx; 115 117 static size_t chunk_widx; ··· 482 484 if (low_latency_mode) 483 485 { 484 486 /* 1/4s latency. */ 485 - if (remaining > DATA_LEVEL(1)) 487 + if (remaining > data_level(1)) 486 488 return NULL; 487 489 } 488 490 ··· 724 726 else if (crossfade_setting != CROSSFADE_ENABLE_OFF) 725 727 { 726 728 if (crossfade_status == CROSSFADE_INACTIVE && 727 - pcmbuf_unplayed_bytes() >= DATA_LEVEL(2) && 729 + pcmbuf_unplayed_bytes() >= data_level(2) && 728 730 !low_latency_mode) 729 731 { 730 732 switch (crossfade_setting) ··· 1151 1153 size_t unplayed = pcmbuf_unplayed_bytes(); 1152 1154 1153 1155 /* Reject crossfade if less than .5s of data */ 1154 - if (unplayed < DATA_LEVEL(2)) 1156 + if (unplayed < data_level(2)) 1155 1157 { 1156 1158 logf("crossfade rejected"); 1157 1159 crossfade_cancel(); ··· 1447 1449 { 1448 1450 low_latency_mode = state; 1449 1451 } 1450 - 1451 - void pcmbuf_update_frequency(void) 1452 - { 1453 - pcmbuf_sampr = mixer_get_frequency(); 1454 - } 1455 - 1456 - unsigned int pcmbuf_get_frequency(void) 1457 - { 1458 - return pcmbuf_sampr; 1459 - }
-2
apps/pcmbuf.h
··· 80 80 /* Misc */ 81 81 bool pcmbuf_is_lowdata(void); 82 82 void pcmbuf_set_low_latency(bool state); 83 - void pcmbuf_update_frequency(void); 84 - unsigned int pcmbuf_get_frequency(void); 85 83 86 84 #endif /* PCMBUF_H */
-4
apps/playback.c
··· 3036 3036 skip_resume_adjustments = id3_get(PLAYING_ID3)->skip_resume_adjustments; 3037 3037 3038 3038 track_list_clear(TRACK_LIST_CLEAR_ALL); 3039 - pcmbuf_update_frequency(); 3040 3039 } 3041 3040 else 3042 3041 { ··· 3049 3048 pcmbuf_start_track_change(TRACK_CHANGE_MANUAL); 3050 3049 wipe_track_metadata(true); 3051 3050 } 3052 - pcmbuf_update_frequency(); 3053 3051 3054 3052 /* Set after track finish event in case skip was in progress */ 3055 3053 skip_pending = TRACK_SKIP_NONE; ··· 3071 3069 #ifndef PLATFORM_HAS_VOLUME_CHANGE 3072 3070 sound_set_volume(global_status.volume); 3073 3071 #endif 3074 - pcmbuf_update_frequency(); 3075 3072 3076 3073 /* Be sure channel is audible */ 3077 3074 pcmbuf_fade(false, true); ··· 4315 4312 mutex_init(&id3_mutex); 4316 4313 track_list_init(); 4317 4314 buffering_init(); 4318 - pcmbuf_update_frequency(); 4319 4315 #ifdef HAVE_CROSSFADE 4320 4316 /* Set crossfade setting for next buffer init which should be about... */ 4321 4317 pcmbuf_request_crossfade_enable(global_settings.crossfade);