Skip to content
Snippets Groups Projects
  • Sean Bright's avatar
    64906c4c
    audiohook.c: Substitute silence for unavailable audio frames · 64906c4c
    Sean Bright authored
    There are 4 scenarios to consider when capturing audio from a channel
    with an audiohook:
    
     1. There is no rx and no tx audio, so return nothing.
     2. There is rx but no tx audio, so return rx.
     3. There is tx but no rx audio, so return tx.
     4. There is rx and tx audio, so mix them and return.
    
    The file passed as the primary argument to MixMonitor will be written to
    in scenarios 2, 3, and 4. However, if you pass the r() and t() options
    to MixMonitor, a frame will only be written to the r() file if there was
    rx audio and a frame will only be written to the t() file if there was
    tx audio.
    
    If you subsequently take the r() and t() files and try to mix them, the
    sides of the conversation will 'drift' and be non-representative of the
    user experience.
    
    This patch adds a new 'S' option to MixMonitor that injects a frame of
    silence on either the r() side or the t() side of the channel so that
    when later mixed, there is no such drift.
    
    Change-Id: Ibf5ed73a811087727bd561a89a59f4447b4ee20e
    64906c4c
    History
    audiohook.c: Substitute silence for unavailable audio frames
    Sean Bright authored
    There are 4 scenarios to consider when capturing audio from a channel
    with an audiohook:
    
     1. There is no rx and no tx audio, so return nothing.
     2. There is rx but no tx audio, so return rx.
     3. There is tx but no rx audio, so return tx.
     4. There is rx and tx audio, so mix them and return.
    
    The file passed as the primary argument to MixMonitor will be written to
    in scenarios 2, 3, and 4. However, if you pass the r() and t() options
    to MixMonitor, a frame will only be written to the r() file if there was
    rx audio and a frame will only be written to the t() file if there was
    tx audio.
    
    If you subsequently take the r() and t() files and try to mix them, the
    sides of the conversation will 'drift' and be non-representative of the
    user experience.
    
    This patch adds a new 'S' option to MixMonitor that injects a frame of
    silence on either the r() side or the t() side of the channel so that
    when later mixed, there is no such drift.
    
    Change-Id: Ibf5ed73a811087727bd561a89a59f4447b4ee20e
audiohook.c 50.59 KiB