1 /*****************************************************************************
2 * Copyright © 2010-2014 VideoLAN
4 * Authors: Jean-Baptiste Kempf <jb@videolan.org>
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU Lesser General Public License as published by
8 * the Free Software Foundation; either version 2.1 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public License
17 * along with this program; if not, write to the Free Software Foundation,
18 * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
19 *****************************************************************************/
28 # include <vlc_common.h>
29 # include <vlc_codec.h>
31 /* Parse the SPS/PPS Metadata and convert it to annex b format */
32 int convert_sps_pps( decoder_t *p_dec, const uint8_t *p_buf,
33 uint32_t i_buf_size, uint8_t *p_out_buf,
34 uint32_t i_out_buf_size, uint32_t *p_sps_pps_size,
35 uint32_t *p_nal_size);
37 /* Convert H.264 NAL format to annex b in-place */
38 struct H264ConvertState {
43 void convert_h264_to_annexb( uint8_t *p_buf, uint32_t i_len,
45 struct H264ConvertState *state );
47 /* Get level and Profile */
48 bool h264_get_profile_level(const es_format_t *p_fmt, size_t *p_profile,
49 size_t *p_level, size_t *p_nal_size);
51 #endif /* H264_NAL_H */