1131 |
profile = 0xf3; /* advanced simple profile/level 2 */ |
profile = 0xf3; /* advanced simple profile/level 2 */ |
1132 |
|
|
1133 |
// visual_object_sequence_start_code |
// visual_object_sequence_start_code |
1134 |
BitstreamPad(bs); |
// BitstreamPad(bs); |
1135 |
|
/* no padding here, anymore. You have to make sure that you are |
1136 |
|
byte aligned, and that always 1-8 padding bits have been written */ |
1137 |
|
|
1138 |
BitstreamPutBits(bs, VISOBJSEQ_START_CODE, 32); |
BitstreamPutBits(bs, VISOBJSEQ_START_CODE, 32); |
1139 |
BitstreamPutBits(bs, profile, 8); |
BitstreamPutBits(bs, profile, 8); |
1140 |
|
|
1149 |
BitstreamPutBits(bs, VIDOBJ_START_CODE|(vo_id&0x5), 32); |
BitstreamPutBits(bs, VIDOBJ_START_CODE|(vo_id&0x5), 32); |
1150 |
|
|
1151 |
// video_object_layer_start_code & vol_id |
// video_object_layer_start_code & vol_id |
1152 |
|
BitstreamPad(bs); |
1153 |
BitstreamPutBits(bs, VIDOBJLAY_START_CODE|(vol_id&0x4), 32); |
BitstreamPutBits(bs, VIDOBJLAY_START_CODE|(vol_id&0x4), 32); |
1154 |
|
|
1155 |
BitstreamPutBit(bs, 0); // random_accessible_vol |
BitstreamPutBit(bs, 0); // random_accessible_vol |
1283 |
{ |
{ |
1284 |
uint32_t i; |
uint32_t i; |
1285 |
|
|
1286 |
BitstreamPad(bs); |
// BitstreamPad(bs); |
1287 |
|
/* no padding here, anymore. You have to make sure that you are |
1288 |
|
byte aligned, and that always 1-8 padding bits have been written */ |
1289 |
|
|
1290 |
BitstreamPutBits(bs, VOP_START_CODE, 32); |
BitstreamPutBits(bs, VOP_START_CODE, 32); |
1291 |
|
|
1292 |
BitstreamPutBits(bs, frame->coding_type, 2); |
BitstreamPutBits(bs, frame->coding_type, 2); |
1333 |
int k; |
int k; |
1334 |
for (k=0;k<2;k++) |
for (k=0;k<2;k++) |
1335 |
{ |
{ |
|
if (pParam->m_quarterpel) |
|
|
bs_put_spritetrajectory(bs, frame->warp.duv[k].x/2 ); // du[k] |
|
|
else |
|
1336 |
bs_put_spritetrajectory(bs, frame->warp.duv[k].x ); // du[k] |
bs_put_spritetrajectory(bs, frame->warp.duv[k].x ); // du[k] |
1337 |
WRITE_MARKER(); |
WRITE_MARKER(); |
1338 |
|
|
|
if (pParam->m_quarterpel) |
|
|
bs_put_spritetrajectory(bs, frame->warp.duv[k].y/2 ); // dv[k] |
|
|
else |
|
1339 |
bs_put_spritetrajectory(bs, frame->warp.duv[k].y ); // dv[k] |
bs_put_spritetrajectory(bs, frame->warp.duv[k].y ); // dv[k] |
1340 |
WRITE_MARKER(); |
WRITE_MARKER(); |
1341 |
|
|
1349 |
} |
} |
1350 |
} |
} |
1351 |
} |
} |
|
/* GMC is halfpel in bitstream, even though GMC_MV was pseudo-qpel (2*halfpel) */ |
|
|
|
|
|
// no support for brightness_change! |
|
1352 |
} |
} |
1353 |
|
|
1354 |
|
|