Skip to content
Snippets Groups Projects
Commit 34bbc81d authored by Tim Walker's avatar Tim Walker Committed by Vittorio Giovara
Browse files

lavf: simplify ff_hevc_annexb2mp4_buf

Use ff_hevc_annexb2mp4 instead of duplicating
its functionality, and update the documentation
to match the new behavior.
parent 4a856239
No related branches found
No related tags found
No related merge requests found
......@@ -1066,52 +1066,15 @@ int ff_hevc_annexb2mp4_buf(const uint8_t *buf_in, uint8_t **buf_out,
int *size, int filter_ps, int *ps_count)
{
AVIOContext *pb;
int num_ps = 0, ret = 0;
uint8_t *buf, *end, *start = NULL;
if (!filter_ps) {
ret = ff_avc_parse_nal_units_buf(buf_in, buf_out, size);
goto end;
}
int ret;
ret = avio_open_dyn_buf(&pb);
if (ret < 0)
goto end;
ret = ff_avc_parse_nal_units_buf(buf_in, &start, size);
if (ret < 0)
goto end;
buf = start;
end = start + *size;
while (end - buf > 4) {
uint32_t len = FFMIN(AV_RB32(buf), end - buf - 4);
uint8_t type = (buf[4] >> 1) & 0x3f;
buf += 4;
switch (type) {
case NAL_VPS:
case NAL_SPS:
case NAL_PPS:
num_ps++;
break;
default:
avio_wb32(pb, len);
avio_write(pb, buf, len);
break;
}
buf += len;
}
return ret;
ret = ff_hevc_annexb2mp4(pb, buf_in, *size, filter_ps, ps_count);
*size = avio_close_dyn_buf(pb, buf_out);
end:
free(start);
if (ps_count)
*ps_count = num_ps;
return ret;
}
......
......@@ -71,8 +71,8 @@ int ff_hevc_annexb2mp4(AVIOContext *pb, const uint8_t *buf_in,
* or to discard them (non-zero)
* @param ps_count address of the variable where the number of discarded
* parameter set NAL units shall be written, may be NULL
* @return 0 in case of success, a negative value corresponding to an AVERROR
* code in case of failure
* @return the amount (in bytes) of data written in case of success, a negative
* value corresponding to an AVERROR code in case of failure
*/
int ff_hevc_annexb2mp4_buf(const uint8_t *buf_in, uint8_t **buf_out,
int *size, int filter_ps, int *ps_count);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment