Browse Source

If the video stream is H.264 with MP4 syntax, store the NAL lenght size in

the RTP muxer context (it will be used later for splitting frames in NALs)

Originally committed as revision 23625 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/n0.8
Luca Abeni 15 years ago
parent
commit
8b889b3480
2 changed files with 13 additions and 0 deletions
  1. +7
    -0
      libavformat/rtpenc.c
  2. +6
    -0
      libavformat/rtpenc.h

+ 7
- 0
libavformat/rtpenc.c View File

@@ -131,6 +131,13 @@ static int rtp_write_header(AVFormatContext *s1)
s->max_payload_size = n * TS_PACKET_SIZE;
s->buf_ptr = s->buf;
break;
case CODEC_ID_H264:
/* check for H.264 MP4 syntax */
if (st->codec->extradata_size > 0 && st->codec->extradata &&
st->codec->extradata[0] == 1) {
s->nal_length_size = (st->codec->extradata[4] & 0x03) + 1;
}
break;
case CODEC_ID_AMR_NB:
case CODEC_ID_AMR_WB:
if (!s->max_frames_per_packet)


+ 6
- 0
libavformat/rtpenc.h View File

@@ -50,6 +50,12 @@ struct RTPMuxContext {
uint8_t *buf_ptr;

int max_frames_per_packet;

/**
* Number of bytes used for H.264 NAL length, if the MP4 syntax is used
* (1, 2 or 4)
*/
int nal_length_size;
};

typedef struct RTPMuxContext RTPMuxContext;


Loading…
Cancel
Save