001/******************************************************************************* 002 * Copyright (c) 2024, 2026, Olivier Ayache. All rights reserved. 003 * 004 * This file is part of AVPKit. 005 * 006 * AVPKit is free software: you can redistribute it and/or modify 007 * it under the terms of the GNU Lesser General Public License as published by 008 * the Free Software Foundation, either version 3 of the License, or 009 * (at your option) any later version. 010 * 011 * AVPKit is distributed in the hope that it will be useful, 012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 014 * GNU Lesser General Public License for more details. 015 * 016 * You should have received a copy of the GNU Lesser General Public License 017 * along with AVPKit. If not, see <http://www.gnu.org/licenses/>. 018 *******************************************************************************/ 019 020package com.avpkit.mediatool.event; 021 022import java.util.concurrent.TimeUnit; 023 024import com.avpkit.mediatool.IMediaGenerator; 025import com.avpkit.core.IAudioSamples; 026 027/** 028 * An implementation of {@link IAudioSamplesEvent}. 029 * 030 * @author aclarke 031 * 032 */ 033public class AudioSamplesEvent extends ARawMediaMixin implements IAudioSamplesEvent 034{ 035 /** 036 * Create an {@link AudioSamplesEvent}. 037 * @param source the source 038 * @param samples the samples (must be non null). 039 * @param streamIndex the stream index of the stream that generated 040 * these samples, or null if unknown. 041 * @throws IllegalArgumentException if samples is null. 042 */ 043 public AudioSamplesEvent (IMediaGenerator source, 044 IAudioSamples samples, 045 Integer streamIndex) 046 { 047 super(source, samples, null, samples.getTimeStamp(), TimeUnit.MICROSECONDS, streamIndex); 048 } 049 050 /** 051 * {@inheritDoc} 052 * 053 * @see com.avpkit.mediatool.event.IAudioSamplesEvent#getMediaData() 054 */ 055 @Override 056 public IAudioSamples getMediaData() 057 { 058 return (IAudioSamples) super.getMediaData(); 059 } 060 061 /** 062 * {@inheritDoc} 063 * @see com.avpkit.mediatool.event.IAudioSamplesEvent#getAudioSamples() 064 */ 065 public IAudioSamples getAudioSamples() 066 { 067 return getMediaData(); 068 } 069 070}