return size written in ff_avc_parse_nal_units

Originally committed as revision 16622 to svn://svn.ffmpeg.org/ffmpeg/trunk
pull/126/head
Baptiste Coudurier 16 years ago
parent 764551c672
commit a97772b166
  1. 5
      libavformat/avc.c
  2. 2
      libavformat/avc.h

@ -60,20 +60,23 @@ const uint8_t *ff_avc_find_startcode(const uint8_t *p, const uint8_t *end)
return end + 3; return end + 3;
} }
void ff_avc_parse_nal_units(ByteIOContext *pb, const uint8_t *buf_in, int size) int ff_avc_parse_nal_units(ByteIOContext *pb, const uint8_t *buf_in, int size)
{ {
const uint8_t *p = buf_in; const uint8_t *p = buf_in;
const uint8_t *end = p + size; const uint8_t *end = p + size;
const uint8_t *nal_start, *nal_end; const uint8_t *nal_start, *nal_end;
size = 0;
nal_start = ff_avc_find_startcode(p, end); nal_start = ff_avc_find_startcode(p, end);
while (nal_start < end) { while (nal_start < end) {
while(!*(nal_start++)); while(!*(nal_start++));
nal_end = ff_avc_find_startcode(nal_start, end); nal_end = ff_avc_find_startcode(nal_start, end);
put_be32(pb, nal_end - nal_start); put_be32(pb, nal_end - nal_start);
put_buffer(pb, nal_start, nal_end - nal_start); put_buffer(pb, nal_start, nal_end - nal_start);
size += 4 + nal_end - nal_start;
nal_start = nal_end; nal_start = nal_end;
} }
return size;
} }
static int ff_avc_parse_nal_units_buf(const uint8_t *buf_in, uint8_t **buf, int *size) static int ff_avc_parse_nal_units_buf(const uint8_t *buf_in, uint8_t **buf, int *size)

@ -25,7 +25,7 @@
#include <stdint.h> #include <stdint.h>
#include "avio.h" #include "avio.h"
void ff_avc_parse_nal_units(ByteIOContext *s, const uint8_t *buf, int size); int ff_avc_parse_nal_units(const uint8_t *buf_in, uint8_t **buf, int *size);
int ff_isom_write_avcc(ByteIOContext *pb, const uint8_t *data, int len); int ff_isom_write_avcc(ByteIOContext *pb, const uint8_t *data, int len);
const uint8_t *ff_avc_find_startcode(const uint8_t *p, const uint8_t *end); const uint8_t *ff_avc_find_startcode(const uint8_t *p, const uint8_t *end);

Loading…
Cancel
Save