#include "libavutil/avstring.h"
#include "libavcodec/get_bits.h"
#include "avformat.h"
-#include "mpegts.h"
-#include <unistd.h>
#include "network.h"
#include <assert.h>
char *attr, char *value)
{
AVCodecContext *codec = stream->codec;
- assert(codec->codec_id == CODEC_ID_H264);
+ assert(codec->codec_id == AV_CODEC_ID_H264);
assert(h264_data != NULL);
if (!strcmp(attr, "packetization-mode")) {
*/
if (h264_data->packetization_mode > 1)
av_log(codec, AV_LOG_ERROR,
- "Interleaved RTP mode is not supported yet.");
+ "Interleaved RTP mode is not supported yet.\n");
} else if (!strcmp(attr, "profile-level-id")) {
if (strlen(value) == 6) {
char buffer[3];
FF_INPUT_BUFFER_PADDING_SIZE);
if (!dest) {
av_log(codec, AV_LOG_ERROR,
- "Unable to allocate memory for extradata!");
+ "Unable to allocate memory for extradata!\n");
return AVERROR(ENOMEM);
}
if (codec->extradata_size) {
codec->extradata_size += sizeof(start_sequence) + packet_size;
}
}
- av_log(codec, AV_LOG_DEBUG, "Extradata set to %p (size: %d)!",
+ av_log(codec, AV_LOG_DEBUG, "Extradata set to %p (size: %d)!\n",
codec->extradata, codec->extradata_size);
}
return 0;
// return 0 on packet, no more left, 1 on packet, 1 on partial packet
static int h264_handle_packet(AVFormatContext *ctx, PayloadContext *data,
AVStream *st, AVPacket *pkt, uint32_t *timestamp,
- const uint8_t *buf, int len, int flags)
+ const uint8_t *buf, int len, uint16_t seq,
+ int flags)
{
uint8_t nal;
uint8_t type;
case 30: // undefined
case 31: // undefined
default:
- av_log(ctx, AV_LOG_ERROR, "Undefined type (%d)", type);
+ av_log(ctx, AV_LOG_ERROR, "Undefined type (%d)\n", type);
result = AVERROR_INVALIDDATA;
break;
}
av_free(data);
}
+static int h264_init(AVFormatContext *s, int st_index, PayloadContext *data)
+{
+ if (st_index < 0)
+ return 0;
+ s->streams[st_index]->need_parsing = AVSTREAM_PARSE_FULL;
+ return 0;
+}
+
static int parse_h264_sdp_line(AVFormatContext *s, int st_index,
PayloadContext *h264_data, const char *line)
{
// set our parameters
codec->width = atoi(buf1);
codec->height = atoi(p + 1); // skip the -
- codec->pix_fmt = PIX_FMT_YUV420P;
} else if (av_strstart(p, "fmtp:", &p)) {
return ff_parse_fmtp(stream, h264_data, p, sdp_parse_fmtp_config_h264);
} else if (av_strstart(p, "cliprect:", &p)) {
RTPDynamicProtocolHandler ff_h264_dynamic_handler = {
.enc_name = "H264",
.codec_type = AVMEDIA_TYPE_VIDEO,
- .codec_id = CODEC_ID_H264,
+ .codec_id = AV_CODEC_ID_H264,
+ .init = h264_init,
.parse_sdp_a_line = parse_h264_sdp_line,
.alloc = h264_new_context,
.free = h264_free_context,