/usr/include/pjmedia/vid_codec_util.h is in libpjproject-dev 2.1.0.0.ast20130823-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 | /* $Id: vid_codec_util.h 3715 2011-08-19 09:35:25Z nanang $ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __PJMEDIA_VID_CODEC_UTIL_H__
#define __PJMEDIA_VID_CODEC_UTIL_H__
/**
* @file vid_codec_util.h
* @brief Video codec utilities.
*/
#include <pjmedia/vid_codec.h>
#include <pjmedia/sdp_neg.h>
PJ_BEGIN_DECL
/**
* Definition of H.263 parameters.
*/
typedef struct pjmedia_vid_codec_h263_fmtp
{
unsigned mpi_cnt; /**< # of parsed MPI param */
struct mpi {
pjmedia_rect_size size; /**< Picture size/resolution */
unsigned val; /**< MPI value */
} mpi[32]; /**< Minimum Picture Interval parameter */
} pjmedia_vid_codec_h263_fmtp;
/**
* Parse SDP fmtp of H.263.
*
* @param fmtp The H.263 SDP fmtp to be parsed.
* @param h263_fmtp The parsing result.
*
* @return PJ_SUCCESS on success.
*/
PJ_DECL(pj_status_t) pjmedia_vid_codec_h263_parse_fmtp(
const pjmedia_codec_fmtp *fmtp,
pjmedia_vid_codec_h263_fmtp *h263_fmtp);
/**
* Parse, negotiate, and apply the encoding and decoding SDP fmtp of H.263
* in the specified codec parameter.
*
* @param param The codec parameter.
*
* @return PJ_SUCCESS on success.
*/
PJ_DECL(pj_status_t) pjmedia_vid_codec_h263_apply_fmtp(
pjmedia_vid_codec_param *param);
/**
* Definition of H.264 parameters.
*/
typedef struct pjmedia_vid_codec_h264_fmtp
{
/* profile-level-id */
pj_uint8_t profile_idc; /**< Profile ID */
pj_uint8_t profile_iop; /**< Profile constraints bits */
pj_uint8_t level; /**< Level */
/* packetization-mode */
pj_uint8_t packetization_mode; /**< Packetization mode */
/* max-mbps, max-fs, max-cpb, max-dpb, and max-br */
unsigned max_mbps; /**< Max macroblock processing rate */
unsigned max_fs; /**< Max frame size (in macroblocks) */
unsigned max_cpb; /**< Max coded picture buffer size */
unsigned max_dpb; /**< Max decoded picture buffer size */
unsigned max_br; /**< Max video bit rate */
/* sprop-parameter-sets, in NAL units */
pj_size_t sprop_param_sets_len; /**< Parameter set length */
pj_uint8_t sprop_param_sets[256]; /**< Parameter set (SPS & PPS),
in NAL unit bitstream */
} pjmedia_vid_codec_h264_fmtp;
/**
* Parse SDP fmtp of H.264.
*
* @param fmtp The H.264 SDP fmtp to be parsed.
* @param h264_fmtp The parsing result.
*
* @return PJ_SUCCESS on success.
*/
PJ_DECL(pj_status_t) pjmedia_vid_codec_h264_parse_fmtp(
const pjmedia_codec_fmtp *fmtp,
pjmedia_vid_codec_h264_fmtp *h264_fmtp);
/**
* Match H.264 format in the SDP media offer and answer. This will compare
* H.264 identifier parameters in SDP fmtp, i.e: "profile-level-id" and
* "packetization-mode" fields. For better interoperability, when the option
* #PJMEDIA_SDP_NEG_FMT_MATCH_ALLOW_MODIFY_ANSWER is set, this function
* may update the answer so the parameters in the answer match to ones
* in the offer.
*
* @param pool The memory pool.
* @param offer The SDP media offer.
* @param o_fmt_idx Index of the H.264 format in the SDP media offer.
* @param answer The SDP media answer.
* @param a_fmt_idx Index of the H.264 format in the SDP media answer.
* @param option The format matching option, see
* #pjmedia_sdp_neg_fmt_match_flag.
*
* @return PJ_SUCCESS when the formats in offer and answer match.
*/
PJ_DECL(pj_status_t) pjmedia_vid_codec_h264_match_sdp(
pj_pool_t *pool,
pjmedia_sdp_media *offer,
unsigned o_fmt_idx,
pjmedia_sdp_media *answer,
unsigned a_fmt_idx,
unsigned option);
/**
* Parse and apply the encoding and decoding SDP fmtp of H.264 in the
* specified codec parameter. This will validate size and fps to conform
* to H.264 level specified in SDP fmtp "profile-level-id".
*
* @param param The codec parameter.
*
* @return PJ_SUCCESS on success.
*/
PJ_DECL(pj_status_t) pjmedia_vid_codec_h264_apply_fmtp(
pjmedia_vid_codec_param *param);
PJ_END_DECL
#endif /* __PJMEDIA_VID_CODEC_UTIL_H__ */
|