amanpreet7 commited on
Commit
3897efb
·
verified ·
1 Parent(s): 8358b2c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -14
app.py CHANGED
@@ -281,6 +281,17 @@ def process_video(api, drive_service, video_file):
281
  bvh_path, bvh_data = download_and_save_bvh(bvh_url, bvh_filename or "motion_capture.bvh")
282
 
283
  if bvh_path and bvh_data:
 
 
 
 
 
 
 
 
 
 
 
284
  progress_bar.progress(1.0)
285
  progress_text.text("Complete!")
286
 
@@ -296,7 +307,7 @@ def process_video(api, drive_service, video_file):
296
 
297
  # Save the BVH data to session state for download
298
  st.session_state['bvh_data'] = bvh_data
299
- st.session_state['bvh_filename'] = bvh_filename or "motion_capture.bvh"
300
 
301
  # Generate a unique timestamp for this result
302
  st.session_state['bvh_timestamp'] = int(time.time())
@@ -304,7 +315,7 @@ def process_video(api, drive_service, video_file):
304
  return {
305
  'bvh_data': bvh_data,
306
  'bvh_path': bvh_path,
307
- 'bvh_filename': bvh_filename or "motion_capture.bvh",
308
  'timestamp': st.session_state['bvh_timestamp']
309
  }
310
 
@@ -416,20 +427,18 @@ def main():
416
  st.markdown('<h3 class="section-title">Processing Options</h3>', unsafe_allow_html=True)
417
 
418
  if st.button("Start Motion Capture", key="start_capture_button"):
 
 
 
 
 
 
 
 
419
  result = process_video(api, drive_service, st.session_state['uploaded_file'])
420
 
421
- if result and 'bvh_data' in result:
422
- # The BVH file has already been downloaded and deleted from Drive
423
- # Now just offer it for download to the user
424
- with download_container:
425
- st.download_button(
426
- label="Download BVH",
427
- data=result['bvh_data'],
428
- file_name=result['bvh_filename'],
429
- mime="application/octet-stream",
430
- key=f"download_new_{result['timestamp']}"
431
- )
432
- else:
433
  st.error("Failed to generate BVH file.")
434
 
435
  # If BVH data is in session state (from a previous run), offer it for download
 
281
  bvh_path, bvh_data = download_and_save_bvh(bvh_url, bvh_filename or "motion_capture.bvh")
282
 
283
  if bvh_path and bvh_data:
284
+ # Generate a timestamp for unique filenames
285
+ timestamp_str = time.strftime("%Y%m%d_%H%M%S")
286
+
287
+ # Create a filename with timestamp
288
+ if bvh_filename:
289
+ # Extract the base name without extension
290
+ base_name, ext = os.path.splitext(bvh_filename)
291
+ timestamped_filename = f"{base_name}_{timestamp_str}{ext}"
292
+ else:
293
+ timestamped_filename = f"motion_capture_{timestamp_str}.bvh"
294
+
295
  progress_bar.progress(1.0)
296
  progress_text.text("Complete!")
297
 
 
307
 
308
  # Save the BVH data to session state for download
309
  st.session_state['bvh_data'] = bvh_data
310
+ st.session_state['bvh_filename'] = timestamped_filename
311
 
312
  # Generate a unique timestamp for this result
313
  st.session_state['bvh_timestamp'] = int(time.time())
 
315
  return {
316
  'bvh_data': bvh_data,
317
  'bvh_path': bvh_path,
318
+ 'bvh_filename': timestamped_filename,
319
  'timestamp': st.session_state['bvh_timestamp']
320
  }
321
 
 
427
  st.markdown('<h3 class="section-title">Processing Options</h3>', unsafe_allow_html=True)
428
 
429
  if st.button("Start Motion Capture", key="start_capture_button"):
430
+ # Clear previous BVH data when starting a new process
431
+ if 'bvh_data' in st.session_state:
432
+ del st.session_state['bvh_data']
433
+ if 'bvh_filename' in st.session_state:
434
+ del st.session_state['bvh_filename']
435
+ if 'bvh_timestamp' in st.session_state:
436
+ del st.session_state['bvh_timestamp']
437
+
438
  result = process_video(api, drive_service, st.session_state['uploaded_file'])
439
 
440
+ # No need to create a download button here as it will be created by the code below
441
+ if not result or 'bvh_data' not in result:
 
 
 
 
 
 
 
 
 
 
442
  st.error("Failed to generate BVH file.")
443
 
444
  # If BVH data is in session state (from a previous run), offer it for download