summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/export/mpeg.h2
-rw-r--r--firmware/mpeg.c23
2 files changed, 8 insertions, 17 deletions
diff --git a/firmware/export/mpeg.h b/firmware/export/mpeg.h
index 9b7388c544..69bacc5c7b 100644
--- a/firmware/export/mpeg.h
+++ b/firmware/export/mpeg.h
@@ -85,7 +85,7 @@ void mpeg_record(char *filename);
85void mpeg_set_recording_options(int frequency, int quality, 85void mpeg_set_recording_options(int frequency, int quality,
86 int source, int channel_mode); 86 int source, int channel_mode);
87void mpeg_set_recording_gain(int left, int right, int mic); 87void mpeg_set_recording_gain(int left, int right, int mic);
88unsigned long mpeg_num_recorded_frames(void); 88unsigned long mpeg_recorded_time(void);
89unsigned long mpeg_num_recorded_bytes(void); 89unsigned long mpeg_num_recorded_bytes(void);
90#endif 90#endif
91void mpeg_get_debugdata(struct mpeg_debug *dbgdata); 91void mpeg_get_debugdata(struct mpeg_debug *dbgdata);
diff --git a/firmware/mpeg.c b/firmware/mpeg.c
index d86b51fbd3..0518dd24e0 100644
--- a/firmware/mpeg.c
+++ b/firmware/mpeg.c
@@ -482,8 +482,8 @@ static int lowest_watermark_level; /* Debug value to observe the buffer
482#ifdef HAVE_MAS3587F 482#ifdef HAVE_MAS3587F
483static bool is_recording; /* We are recording */ 483static bool is_recording; /* We are recording */
484static bool stop_pending; 484static bool stop_pending;
485unsigned long record_start_frame; /* Frame number where 485unsigned long record_start_time; /* Value of current_tick when recording
486 recording started */ 486 was started */
487static bool saving; /* We are saving the buffer to disk */ 487static bool saving; /* We are saving the buffer to disk */
488#endif 488#endif
489 489
@@ -2133,7 +2133,6 @@ static void init_playback(void)
2133void mpeg_record(char *filename) 2133void mpeg_record(char *filename)
2134{ 2134{
2135 num_rec_bytes = 0; 2135 num_rec_bytes = 0;
2136 is_recording = true;
2137 queue_post(&mpeg_queue, MPEG_RECORD, (void*)filename); 2136 queue_post(&mpeg_queue, MPEG_RECORD, (void*)filename);
2138} 2137}
2139 2138
@@ -2155,9 +2154,10 @@ static void start_recording(void)
2155 2154
2156 sleep(20); 2155 sleep(20);
2157 2156
2158 /* Read the current frame */ 2157 /* Store the current time */
2159 mas_readmem(MAS_BANK_D0, 0xfd0, &record_start_frame, 1); 2158 record_start_time = current_tick;
2160 2159
2160 is_recording = true;
2161 stop_pending = false; 2161 stop_pending = false;
2162 saving = false; 2162 saving = false;
2163} 2163}
@@ -2182,21 +2182,12 @@ static void stop_recording(void)
2182 drain_dma_buffer(); 2182 drain_dma_buffer();
2183} 2183}
2184 2184
2185unsigned long mpeg_num_recorded_frames(void) 2185unsigned long mpeg_recorded_time(void)
2186{ 2186{
2187 unsigned long val;
2188
2189 if(is_recording) 2187 if(is_recording)
2190 { 2188 return current_tick - record_start_time;
2191 /* Read the current frame */
2192 mas_readmem(MAS_BANK_D0, 0xfd0, &val, 1);
2193
2194 return val - record_start_frame;
2195 }
2196 else 2189 else
2197 {
2198 return 0; 2190 return 0;
2199 }
2200} 2191}
2201 2192
2202unsigned long mpeg_num_recorded_bytes(void) 2193unsigned long mpeg_num_recorded_bytes(void)