You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: _cmfc_settings.rs
    path of file: ./repos/aws-sdk-rust/sdk/mediaconvert/src/types
    
    the code of the file until where you have to start completion: // Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// These settings relate to the fragmented MP4 container for the segments in your CMAF outputs.
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct CmfcSettings {
    /// Specify this setting only when your output will be consumed by a downstream repackaging workflow that is sensitive to very small duration differences between video and audio. For this situation, choose Match video duration. In all other cases, keep the default value, Default codec duration. When you choose Match video duration, MediaConvert pads the ou
    
    pub fn build(self) -> crate::types::CmfcSettings {
        crate::types::CmfcSettings {
            audio_duration: self.audio_duration,
            audio_group_id: self.audio_group_id,
            audio_rendition_sets: self.audio_rendition_sets,
            audio_track_type: self.audio_track_type,
            descriptive_video_service_flag: self.descriptive_video_service_flag,
            i_frame_only_manifest: self.i_frame_only_manifest,
            klv_metadata: self.klv_metadata,
            manifest_metadata_signaling: self.manifest_metadata_signaling,
            scte35_esam: self.scte35_esam,
            scte35_source: self.scte35_source,
            timed_metadata: self.timed_metadata,
            timed_metadata_box_version: self.timed_metadata_box_version,
            timed_metadata_scheme_id_uri: self.timed_metadata_scheme_id_uri,
            timed_metadata_value: self.timed_metadata_value,
        }
    }