avcodec/cbs_mpeg2: Remove redundant counter
Use -1 as the position in ff_cbs_insert_unit_data() which implicitly reuses frag->nb_units as the counter. Also switch to a do-while-loop, as it is more natural than a for-loop now that the counter is gone. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
parent
2f299c0b8b
commit
d64e27f521
@ -148,7 +148,8 @@ static int cbs_mpeg2_split_fragment(CodedBitstreamContext *ctx,
|
|||||||
CodedBitstreamUnitType unit_type;
|
CodedBitstreamUnitType unit_type;
|
||||||
uint32_t start_code = -1;
|
uint32_t start_code = -1;
|
||||||
size_t unit_size;
|
size_t unit_size;
|
||||||
int err, i, final = 0;
|
int err;
|
||||||
|
int final = 0;
|
||||||
|
|
||||||
start = avpriv_find_start_code(frag->data, frag->data + frag->data_size,
|
start = avpriv_find_start_code(frag->data, frag->data + frag->data_size,
|
||||||
&start_code);
|
&start_code);
|
||||||
@ -157,7 +158,7 @@ static int cbs_mpeg2_split_fragment(CodedBitstreamContext *ctx,
|
|||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0;; i++) {
|
do {
|
||||||
unit_type = start_code & 0xff;
|
unit_type = start_code & 0xff;
|
||||||
|
|
||||||
if (start == frag->data + frag->data_size) {
|
if (start == frag->data + frag->data_size) {
|
||||||
@ -185,16 +186,13 @@ static int cbs_mpeg2_split_fragment(CodedBitstreamContext *ctx,
|
|||||||
final = 1;
|
final = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = ff_cbs_insert_unit_data(frag, i, unit_type, (uint8_t*)start,
|
err = ff_cbs_insert_unit_data(frag, -1, unit_type, (uint8_t*)start,
|
||||||
unit_size, frag->data_ref);
|
unit_size, frag->data_ref);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
if (final)
|
|
||||||
break;
|
|
||||||
|
|
||||||
start = end;
|
start = end;
|
||||||
}
|
} while (!final);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user