522 |
BitstreamShowBits(bs, 8) != VIDOBJLAY_TYPE_MAIN && |
BitstreamShowBits(bs, 8) != VIDOBJLAY_TYPE_MAIN && |
523 |
BitstreamShowBits(bs, 8) != VIDOBJLAY_TYPE_ACE && |
BitstreamShowBits(bs, 8) != VIDOBJLAY_TYPE_ACE && |
524 |
BitstreamShowBits(bs, 8) != VIDOBJLAY_TYPE_ART_SIMPLE && |
BitstreamShowBits(bs, 8) != VIDOBJLAY_TYPE_ART_SIMPLE && |
525 |
|
BitstreamShowBits(bs, 8) != VIDOBJLAY_TYPE_ASP && |
526 |
BitstreamShowBits(bs, 8) != 0) // BUGGY DIVX |
BitstreamShowBits(bs, 8) != 0) // BUGGY DIVX |
527 |
{ |
{ |
528 |
DPRINTF(DPRINTF_ERROR,"video_object_type_indication %i not supported ", |
DPRINTF(DPRINTF_ERROR,"video_object_type_indication %i not supported ", |
1069 |
BitstreamSkip(bs, 8); |
BitstreamSkip(bs, 8); |
1070 |
} |
} |
1071 |
|
|
1072 |
DPRINTF(DPRINTF_STARTCODE, "<user_data>: %s\n", tmp); |
DPRINTF(DPRINTF_STARTCODE, "<user_data>: %s", tmp); |
1073 |
|
|
1074 |
/* divx detection */ |
/* divx detection */ |
1075 |
i = sscanf(tmp, "DivX%dBuild%d%c", &version, &build, &packed); |
i = sscanf(tmp, "DivX%dBuild%d%c", &version, &build, &packed); |
1130 |
static const unsigned int vol_id = 0; |
static const unsigned int vol_id = 0; |
1131 |
int vol_ver_id=1; |
int vol_ver_id=1; |
1132 |
int profile = 0x03; /* simple profile/level 3 */ |
int profile = 0x03; /* simple profile/level 3 */ |
1133 |
|
int vol_type_ind=VIDOBJLAY_TYPE_SIMPLE; |
1134 |
|
|
1135 |
if ( (pParam->vol_flags & XVID_QUARTERPEL) || |
if ( (pParam->vol_flags & XVID_QUARTERPEL) || |
1136 |
(pParam->vol_flags & XVID_GMC) || |
(pParam->vol_flags & XVID_GMC) || |
1137 |
(pParam->vol_flags & XVID_REDUCED_ENABLE)) |
(pParam->vol_flags & XVID_REDUCED_ENABLE)) |
1138 |
vol_ver_id = 2; |
vol_ver_id = 2; |
1139 |
|
|
1140 |
if ((pParam->vol_flags & XVID_REDUCED_ENABLE)) |
if ((pParam->vol_flags & XVID_REDUCED_ENABLE)) { |
1141 |
profile = 0x93; /* advanced realtime simple profile/level 3 */ |
profile = 0x93; /* advanced realtime simple profile/level 3 */ |
1142 |
|
vol_type_ind = VIDOBJLAY_TYPE_ART_SIMPLE; |
1143 |
|
} |
1144 |
|
|
1145 |
if ((pParam->vol_flags & XVID_QUARTERPEL) || |
if ((pParam->vol_flags & XVID_QUARTERPEL) || |
1146 |
(pParam->vol_flags & XVID_GMC)) |
(pParam->vol_flags & XVID_GMC)) { |
1147 |
profile = 0xf3; /* advanced simple profile/level 2 */ |
profile = 0xf3; /* advanced simple profile/level 2 */ |
1148 |
|
vol_type_ind = VIDOBJLAY_TYPE_ASP; |
1149 |
|
} |
1150 |
|
|
1151 |
// visual_object_sequence_start_code |
// visual_object_sequence_start_code |
1152 |
// BitstreamPad(bs); |
// BitstreamPad(bs); |
1210 |
|
|
1211 |
WRITE_MARKER(); |
WRITE_MARKER(); |
1212 |
|
|
1213 |
|
if (pParam->fincr>0) { |
1214 |
BitstreamPutBit(bs, 1); // fixed_vop_rate = 1 |
BitstreamPutBit(bs, 1); // fixed_vop_rate = 1 |
1215 |
BitstreamPutBits(bs, pParam->fincr, log2bin(pParam->fbase)); // fixed_vop_time_increment |
BitstreamPutBits(bs, pParam->fincr, log2bin(pParam->fbase)); // fixed_vop_time_increment |
1216 |
|
}else{ |
1217 |
|
BitstreamPutBit(bs, 0); // fixed_vop_rate = 0 |
1218 |
|
} |
1219 |
|
|
1220 |
WRITE_MARKER(); |
WRITE_MARKER(); |
1221 |
BitstreamPutBits(bs, pParam->width, 13); // width |
BitstreamPutBits(bs, pParam->width, 13); // width |