diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/export/mpeg.h | 2 | ||||
-rw-r--r-- | firmware/mpeg.c | 23 |
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); | |||
85 | void mpeg_set_recording_options(int frequency, int quality, | 85 | void mpeg_set_recording_options(int frequency, int quality, |
86 | int source, int channel_mode); | 86 | int source, int channel_mode); |
87 | void mpeg_set_recording_gain(int left, int right, int mic); | 87 | void mpeg_set_recording_gain(int left, int right, int mic); |
88 | unsigned long mpeg_num_recorded_frames(void); | 88 | unsigned long mpeg_recorded_time(void); |
89 | unsigned long mpeg_num_recorded_bytes(void); | 89 | unsigned long mpeg_num_recorded_bytes(void); |
90 | #endif | 90 | #endif |
91 | void mpeg_get_debugdata(struct mpeg_debug *dbgdata); | 91 | void 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 |
483 | static bool is_recording; /* We are recording */ | 483 | static bool is_recording; /* We are recording */ |
484 | static bool stop_pending; | 484 | static bool stop_pending; |
485 | unsigned long record_start_frame; /* Frame number where | 485 | unsigned long record_start_time; /* Value of current_tick when recording |
486 | recording started */ | 486 | was started */ |
487 | static bool saving; /* We are saving the buffer to disk */ | 487 | static bool saving; /* We are saving the buffer to disk */ |
488 | #endif | 488 | #endif |
489 | 489 | ||
@@ -2133,7 +2133,6 @@ static void init_playback(void) | |||
2133 | void mpeg_record(char *filename) | 2133 | void 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 | ||
2185 | unsigned long mpeg_num_recorded_frames(void) | 2185 | unsigned 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 | ||
2202 | unsigned long mpeg_num_recorded_bytes(void) | 2193 | unsigned long mpeg_num_recorded_bytes(void) |