comparison mpeg12.c @ 2167:76334bbb5038 libavcodec

user overrideable level & profile
author michael
date Fri, 13 Aug 2004 13:59:28 +0000
parents 50779a18844c
children ccff80bb955f
comparison
equal deleted inserted replaced
2166:10d28761f78c 2167:76334bbb5038
312 312
313 if(s->codec_id == CODEC_ID_MPEG2VIDEO){ 313 if(s->codec_id == CODEC_ID_MPEG2VIDEO){
314 put_header(s, EXT_START_CODE); 314 put_header(s, EXT_START_CODE);
315 put_bits(&s->pb, 4, 1); //seq ext 315 put_bits(&s->pb, 4, 1); //seq ext
316 put_bits(&s->pb, 1, 0); //esc 316 put_bits(&s->pb, 1, 0); //esc
317 put_bits(&s->pb, 3, 4); //profile 317
318 put_bits(&s->pb, 4, 8); //level 318 if(s->avctx->profile == FF_PROFILE_UNKNOWN){
319 put_bits(&s->pb, 3, 4); //profile
320 }else{
321 put_bits(&s->pb, 3, s->avctx->profile); //profile
322 }
323
324 if(s->avctx->level == FF_LEVEL_UNKNOWN){
325 put_bits(&s->pb, 4, 8); //level
326 }else{
327 put_bits(&s->pb, 4, s->avctx->level); //level
328 }
329
319 put_bits(&s->pb, 1, s->progressive_sequence); 330 put_bits(&s->pb, 1, s->progressive_sequence);
320 put_bits(&s->pb, 2, 1); //chroma format 4:2:0 331 put_bits(&s->pb, 2, 1); //chroma format 4:2:0
321 put_bits(&s->pb, 2, 0); //horizontal size ext 332 put_bits(&s->pb, 2, 0); //horizontal size ext
322 put_bits(&s->pb, 2, 0); //vertical size ext 333 put_bits(&s->pb, 2, 0); //vertical size ext
323 put_bits(&s->pb, 12, v>>18); //bitrate ext 334 put_bits(&s->pb, 12, v>>18); //bitrate ext
1969 1980
1970 static void mpeg_decode_sequence_extension(MpegEncContext *s) 1981 static void mpeg_decode_sequence_extension(MpegEncContext *s)
1971 { 1982 {
1972 int horiz_size_ext, vert_size_ext; 1983 int horiz_size_ext, vert_size_ext;
1973 int bit_rate_ext; 1984 int bit_rate_ext;
1974 int level, profile;
1975 1985
1976 skip_bits(&s->gb, 1); /* profil and level esc*/ 1986 skip_bits(&s->gb, 1); /* profil and level esc*/
1977 profile= get_bits(&s->gb, 3); 1987 s->avctx->profile= get_bits(&s->gb, 3);
1978 level= get_bits(&s->gb, 4); 1988 s->avctx->level= get_bits(&s->gb, 4);
1979 s->progressive_sequence = get_bits1(&s->gb); /* progressive_sequence */ 1989 s->progressive_sequence = get_bits1(&s->gb); /* progressive_sequence */
1980 s->chroma_format = get_bits(&s->gb, 2); /* chroma_format 1=420, 2=422, 3=444 */ 1990 s->chroma_format = get_bits(&s->gb, 2); /* chroma_format 1=420, 2=422, 3=444 */
1981 horiz_size_ext = get_bits(&s->gb, 2); 1991 horiz_size_ext = get_bits(&s->gb, 2);
1982 vert_size_ext = get_bits(&s->gb, 2); 1992 vert_size_ext = get_bits(&s->gb, 2);
1983 s->width |= (horiz_size_ext << 12); 1993 s->width |= (horiz_size_ext << 12);
1997 s->codec_id= s->avctx->codec_id= CODEC_ID_MPEG2VIDEO; 2007 s->codec_id= s->avctx->codec_id= CODEC_ID_MPEG2VIDEO;
1998 s->avctx->sub_id = 2; /* indicates mpeg2 found */ 2008 s->avctx->sub_id = 2; /* indicates mpeg2 found */
1999 2009
2000 if(s->avctx->debug & FF_DEBUG_PICT_INFO) 2010 if(s->avctx->debug & FF_DEBUG_PICT_INFO)
2001 av_log(s->avctx, AV_LOG_DEBUG, "profile: %d, level: %d vbv buffer: %d, bitrate:%d\n", 2011 av_log(s->avctx, AV_LOG_DEBUG, "profile: %d, level: %d vbv buffer: %d, bitrate:%d\n",
2002 profile, level, s->avctx->rc_buffer_size, s->bit_rate); 2012 s->avctx->profile, s->avctx->level, s->avctx->rc_buffer_size, s->bit_rate);
2003 2013
2004 } 2014 }
2005 2015
2006 static void mpeg_decode_sequence_display_extension(Mpeg1Context *s1) 2016 static void mpeg_decode_sequence_display_extension(Mpeg1Context *s1)
2007 { 2017 {