mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
msmpeg4v2 header parser & some dump bits code behind #if 0
Originally committed as revision 368 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
dbbe89994b
commit
7f89b6fbdc
@ -670,7 +670,7 @@ static int decode012(GetBitContext *gb)
|
||||
return get_bits1(gb) + 1;
|
||||
}
|
||||
|
||||
int msmpeg4_decode_picture_header(MpegEncContext * s)
|
||||
int msmpeg4v2_decode_picture_header(MpegEncContext * s)
|
||||
{
|
||||
int code;
|
||||
|
||||
@ -681,6 +681,62 @@ int msmpeg4_decode_picture_header(MpegEncContext * s)
|
||||
|
||||
s->qscale = get_bits(&s->gb, 5);
|
||||
|
||||
if (s->pict_type == I_TYPE) {
|
||||
code = get_bits(&s->gb, 5);
|
||||
/* 0x17: one slice, 0x18: three slices */
|
||||
/* XXX: implement it */
|
||||
//printf("%d %d %d\n", code, s->slice_height, s->first_slice_line);
|
||||
if (code < 0x17)
|
||||
return -1;
|
||||
s->slice_height = s->mb_height / (code - 0x16);
|
||||
/* s->rl_chroma_table_index = decode012(&s->gb);
|
||||
s->rl_table_index = decode012(&s->gb);
|
||||
|
||||
s->dc_table_index = get_bits1(&s->gb);*/
|
||||
s->no_rounding = 1;
|
||||
} else {
|
||||
s->use_skip_mb_code = get_bits1(&s->gb);
|
||||
|
||||
/* s->rl_table_index = decode012(&s->gb);
|
||||
s->rl_chroma_table_index = s->rl_table_index;
|
||||
|
||||
s->dc_table_index = get_bits1(&s->gb);
|
||||
|
||||
s->mv_table_index = get_bits1(&s->gb);*/
|
||||
if(s->flipflop_rounding){
|
||||
s->no_rounding ^= 1;
|
||||
}else{
|
||||
s->no_rounding = 0;
|
||||
}
|
||||
// printf("%d", s->no_rounding);
|
||||
}
|
||||
|
||||
printf("%s q:%d s:%X ", s->pict_type == I_TYPE ? "I" : "P" , s->qscale,
|
||||
s->pict_type == I_TYPE ? code : s->use_skip_mb_code);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int msmpeg4_decode_picture_header(MpegEncContext * s)
|
||||
{
|
||||
int code;
|
||||
#if 0
|
||||
{
|
||||
int i;
|
||||
msmpeg4v2_decode_picture_header(s);
|
||||
for(i=0; i<s->gb.size*8; i++)
|
||||
printf("%d", get_bits1(&s->gb));
|
||||
printf("END\n");
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
s->pict_type = get_bits(&s->gb, 2) + 1;
|
||||
if (s->pict_type != I_TYPE &&
|
||||
s->pict_type != P_TYPE)
|
||||
return -1;
|
||||
|
||||
s->qscale = get_bits(&s->gb, 5);
|
||||
|
||||
if (s->pict_type == I_TYPE) {
|
||||
code = get_bits(&s->gb, 5);
|
||||
/* 0x17: one slice, 0x18: three slices */
|
||||
|
Loading…
Reference in New Issue
Block a user