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 com.avpkit.mediatool.IMediaGenerator;
023
024/**
025 * An abstract implementation of {@link IStreamEvent}, but does not declare
026 * {@link IStreamEvent}.
027 * @author aclarke
028 *
029 */
030public abstract class AStreamMixin extends AEventMixin
031{
032  private final Integer mStreamIndex;
033
034  /**
035   * Create an {@link AStreamMixin}.
036   * @param source the source.
037   * @param streamIndex the stream index, or null if unknown.
038   */
039  public AStreamMixin(IMediaGenerator source, Integer streamIndex)
040  {
041    super(source);
042    mStreamIndex = streamIndex;
043  }
044
045  /**
046   * Implementation of {@link IStreamEvent#getStreamIndex()}.
047   * @see com.avpkit.mediatool.event.IStreamEvent#getStreamIndex()
048   */
049  public Integer getStreamIndex()
050  {
051    return mStreamIndex;
052  }
053}