X-Git-Url: https://git.piment-noir.org/?p=deb_ffmpeg.git;a=blobdiff_plain;f=ffmpeg%2Flibavformat%2Frtpenc.c;fp=ffmpeg%2Flibavformat%2Frtpenc.c;h=c608dfb46af27e06ca1daebd582e16dcda7cd1d4;hp=9c587d2dc5d11f054f1be435d8458bd04a19a040;hb=f6fa7814ccfe3e76514b36cf04f5cd3cb657c8cf;hpb=2ba45a602cbfa7b771effba9b11bb4245c21bc00 diff --git a/ffmpeg/libavformat/rtpenc.c b/ffmpeg/libavformat/rtpenc.c index 9c587d2..c608dfb 100644 --- a/ffmpeg/libavformat/rtpenc.c +++ b/ffmpeg/libavformat/rtpenc.c @@ -53,6 +53,7 @@ static int is_supported(enum AVCodecID id) case AV_CODEC_ID_H263: case AV_CODEC_ID_H263P: case AV_CODEC_ID_H264: + case AV_CODEC_ID_HEVC: case AV_CODEC_ID_MPEG1VIDEO: case AV_CODEC_ID_MPEG2VIDEO: case AV_CODEC_ID_MPEG4: @@ -200,6 +201,15 @@ static int rtp_write_header(AVFormatContext *s1) s->nal_length_size = (st->codec->extradata[4] & 0x03) + 1; } break; + case AV_CODEC_ID_HEVC: + /* Only check for the standardized hvcC version of extradata, keeping + * things simple and similar to the avcC/H264 case above, instead + * of trying to handle the pre-standardization versions (as in + * libavcodec/hevc.c). */ + if (st->codec->extradata_size > 21 && st->codec->extradata[0] == 1) { + s->nal_length_size = (st->codec->extradata[21] & 0x03) + 1; + } + break; case AV_CODEC_ID_VORBIS: case AV_CODEC_ID_THEORA: if (!s->max_frames_per_packet) s->max_frames_per_packet = 15; @@ -577,6 +587,9 @@ static int rtp_write_packet(AVFormatContext *s1, AVPacket *pkt) case AV_CODEC_ID_H263P: ff_rtp_send_h263(s1, pkt->data, size); break; + case AV_CODEC_ID_HEVC: + ff_rtp_send_hevc(s1, pkt->data, size); + break; case AV_CODEC_ID_VORBIS: case AV_CODEC_ID_THEORA: ff_rtp_send_xiph(s1, pkt->data, size);