/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set et sw=2 ts=2: */ /*************************************************************************** * lrtp_profiles.h * * Mon Sep 9 13:29:04 CEST 2013 * Copyright 2013 Bent Bisballe Nyeng * deva@aasimon.org ****************************************************************************/ /* * This file is part of lrtp. * * lrtp is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * lrtp is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with lrtp; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef __LRTP_LRTP_PROFILES_H__ #define __LRTP_LRTP_PROFILES_H__ // List of known RTP profiles: typedef enum { PROFILE_RAW = 0, // Dummy profile, for test PROFILE_L16 = 1, PROFILE_AMRWB = 2, PROFILE_OPUS = 3, PROFILE_JPEG = 4, } lrtp_profile_id_t; // No more options. #define OPTION_END 0 // Options relating to all profiles: /** * This option is used to set the custom processFinishedHandler * It takes two arguments, the first being a function pointer of the type: * void (*process_finished)(struct lrtp_profile_t *profile, * const char *frame, size_t framesize, * void *ptr); * * the second argument is the value of ptr, passed on to the callback function. * See rtp_profile.h for further details. */ #define OPTION_SET_PROCESS_FINISHED_HANDLER 1000 // Raw profile options: #define OPTION_RAW_PKG_SIZE 2000 // Integer argument. // Number of bytes per rtp packet. // Default is 100 // L16 (Linear 16 bit PCM) profile options: #define OPTION_L16_SAMPLES_PER_CHANNEL_PER_PACKET 3000 // Integer argument. // Maximum number of // samples per channel // in each packet. // Default is 1024. #define OPTION_L16_CHANNELS 3001 // Integer argument. // Number of channels. // Default is 1 (mono) #define OPTION_L16_LITTLE_ENDIAN 3002 // Boolean argument // If true, samples are converted to big // endian (network order) before // transmission. // Default: false // AMR-WB profile options: #define OPTION_AMRWB_FRAME_TYPE_INDEX 4000 // Integer argument. // Frame type index according to // Table 1a in "3GPP TS 26.201" // Default is 8: AMR-WB 23.85 kbit/s // Opus profile options: // None // Jpeg profile options: #endif/*__LRTP_LRTP_PROFILES_H__*/