--- bitstream.c 2003/02/22 08:49:45 1.39.2.1 +++ bitstream.c 2003/03/26 10:39:53 1.39.2.4 @@ -521,7 +521,8 @@ BitstreamShowBits(bs, 8) != VIDOBJLAY_TYPE_CORE && BitstreamShowBits(bs, 8) != VIDOBJLAY_TYPE_MAIN && BitstreamShowBits(bs, 8) != VIDOBJLAY_TYPE_ACE && - BitstreamShowBits(bs, 8) != VIDOBJLAY_TYPE_ART_SIMPLE && + BitstreamShowBits(bs, 8) != VIDOBJLAY_TYPE_ART_SIMPLE && + BitstreamShowBits(bs, 8) != VIDOBJLAY_TYPE_ASP && BitstreamShowBits(bs, 8) != 0) // BUGGY DIVX { DPRINTF(DPRINTF_ERROR,"video_object_type_indication %i not supported ", @@ -1068,7 +1069,7 @@ BitstreamSkip(bs, 8); } - DPRINTF(DPRINTF_STARTCODE, ": %s\n", tmp); + DPRINTF(DPRINTF_STARTCODE, ": %s", tmp); /* divx detection */ i = sscanf(tmp, "DivX%dBuild%d%c", &version, &build, &packed); @@ -1204,8 +1205,12 @@ WRITE_MARKER(); - BitstreamPutBit(bs, 1); // fixed_vop_rate = 1 - BitstreamPutBits(bs, pParam->fincr, log2bin(pParam->fbase)); // fixed_vop_time_increment + if (pParam->fincr>0) { + BitstreamPutBit(bs, 1); // fixed_vop_rate = 1 + BitstreamPutBits(bs, pParam->fincr, log2bin(pParam->fbase)); // fixed_vop_time_increment + }else{ + BitstreamPutBit(bs, 0); // fixed_vop_rate = 0 + } WRITE_MARKER(); BitstreamPutBits(bs, pParam->width, 13); // width