## GstAudioClock GstAudioClock — Helper object for implementing audio clocks |

## Functions

GstClockTime | (*GstAudioClockGetTimeFunc) ()
GstClock * | gst_audio_clock_new ()
GstClockTime | gst_audio_clock_adjust ()
GstClockTime | gst_audio_clock_get_time ()
void | gst_audio_clock_reset ()
void | gst_audio_clock_invalidate ()

## Types and Values

struct | GstAudioClock

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── GstObject
                ╰── GstClock
                    ╰── GstSystemClock
                        ╰── GstAudioClock

## Includes

    #include <gst/audio/gstaudioclock.h>

## Description

GstAudioClock makes it easy for elements to implement a GstClock, they simply need to provide a function that returns the current clock time.

This object is internally used to implement the clock in GstAudioBaseSink.

## Functions

### GstAudioClockGetTimeFunc ()

    GstClockTime
    (*GstAudioClockGetTimeFunc) (GstClock *clock,
                                 gpointer user_data);

This function will be called whenever the current clock time needs to be calculated. If this function returns GST_CLOCK_TIME_NONE, the last reported time will be returned by the clock.

#### Parameters

clock | the GstAudioClock |
user_data | user data |

#### Returns

the current time or GST_CLOCK_TIME_NONE if the previous time should be used.

### gst_audio_clock_new ()

    GstClock *
    gst_audio_clock_new (const gchar *name,
                         GstAudioClockGetTimeFunc func,
                         gpointer user_data,
                         GDestroyNotify destroy_notify);

Create a new GstAudioClock instance. Whenever the clock time should be calculated it will call `func` with `user_data` . When `func` returns GST_CLOCK_TIME_NONE, the clock will return the last reported time.

#### Parameters

name | the name of the clock |
func | a function |
user_data | user data |
destroy_notify | GDestroyNotify for `user_data` |

#### Returns

a new GstAudioClock casted to a GstClock.

[transfer full]

### gst_audio_clock_adjust ()

    GstClockTime
    gst_audio_clock_adjust (GstAudioClock *clock,
                            GstClockTime time);

Adjust `time` with the internal offset of the audio clock.

#### Parameters

clock | a GstAudioClock |
time | a GstClockTime |

#### Returns

`time` adjusted with the internal offset.

### gst_audio_clock_get_time ()

    GstClockTime
    gst_audio_clock_get_time (GstAudioClock *clock);

Report the time as returned by the GstAudioClockGetTimeFunc without applying any offsets.

#### Parameters

clock | a GstAudioClock |

#### Returns

the time as reported by the time function of the audio clock

### gst_audio_clock_reset ()

    void
    gst_audio_clock_reset (GstAudioClock *clock,
                           GstClockTime time);

Inform `clock` that future calls to GstAudioClockGetTimeFunc will return values starting from `time` . The clock will update an internal offset to make sure that future calls to internal_time will return an increasing result as required by the GstClock object.

#### Parameters

clock | a GstAudioClock |
time | a GstClockTime |

### gst_audio_clock_invalidate ()

    void
    gst_audio_clock_invalidate (GstAudioClock *clock);

Invalidate the clock function. Call this function when the provided GstAudioClockGetTimeFunc cannot be called anymore, for example, when the user_data becomes invalid.

After calling this function, `clock` will return the last returned time for the rest of its lifetime.

#### Parameters

clock | a GstAudioClock |

## Types and Values

### struct GstAudioClock

    struct GstAudioClock;

Opaque GstAudioClock.

## See Also

GstAudioBaseSink, GstSystemClock