diff --git a/crates/lib/media/src/decode_basic_audio_info.rs b/crates/lib/media/src/decode_basic_audio_info.rs index d3ef2bd40f..aa879d3533 100644 --- a/crates/lib/media/src/decode_basic_audio_info.rs +++ b/crates/lib/media/src/decode_basic_audio_info.rs @@ -7,6 +7,7 @@ use symphonia::core::probe::Hint; pub struct BasicAudioInfo { pub duration_millis: Option, + pub codec_name: Option, } pub fn decode_basic_audio_info( @@ -55,7 +56,16 @@ pub fn decode_basic_audio_info( duration_millis + frac_millis }); + let codec_registry = symphonia::default::get_codecs(); + + let maybe_codec_name = format.default_track() + .map(|track| track.codec_params.codec) + .map(|codec_type| codec_registry.get_codec(codec_type)) + .flatten() + .map(|codec_descriptor| codec_descriptor.short_name.to_string()); + Ok(BasicAudioInfo { duration_millis: maybe_track_duration, + codec_name: maybe_codec_name, }) } diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_uploads/upload_audio.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_uploads/upload_audio.rs index 21cdb36ff3..d288201e37 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_uploads/upload_audio.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_uploads/upload_audio.rs @@ -166,6 +166,7 @@ pub async fn upload_audio_handler( }; let mut maybe_duration_millis = None; + let mut maybe_codec_name = None; if let Some(mimetype) = maybe_mimetype.as_deref() { match mimetype { @@ -215,6 +216,7 @@ pub async fn upload_audio_handler( })?; maybe_duration_millis = basic_info.duration_millis; + maybe_codec_name = basic_info.codec_name; } _ => {} } @@ -228,7 +230,7 @@ pub async fn upload_audio_handler( original_file_size_bytes: 0, maybe_original_duration_millis: maybe_duration_millis, maybe_original_mime_type: maybe_mimetype, - maybe_original_audio_encoding: None, + maybe_original_audio_encoding: maybe_codec_name.as_deref(), maybe_original_video_encoding: None, maybe_original_frame_width: None, maybe_original_frame_height: None,