Mercurial > libavcodec.hg
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 { |