* [FFmpeg-devel] [PATCH] libavformat/sdp: VPS is not a mandatory HEVC codec parameter.
@ 2025-03-26 20:50 koushd
2025-04-02 3:33 ` Koushik Dutta
0 siblings, 1 reply; 2+ messages in thread
From: koushd @ 2025-03-26 20:50 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Koushik Dutta
From: Koushik Dutta <koushd@gmail.com>
Many IP cameras do not place VPS in the SDP, and only send it
in the stream. The RTSP SDP only contains SPS/PPS.
Signed-off-by: Koushik Dutta <koushd@gmail.com>
---
libavformat/sdp.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/libavformat/sdp.c b/libavformat/sdp.c
index 28490d77f3..64fe9d61ac 100644
--- a/libavformat/sdp.c
+++ b/libavformat/sdp.c
@@ -301,7 +301,9 @@ static int extradata2psets_hevc(AVFormatContext *fmt, const AVCodecParameters *p
pos += len;
}
}
- if (!ps_pos[0] || !ps_pos[1] || !ps_pos[2])
+
+ // VPS is not mandatory
+ if (!ps_pos[1] || !ps_pos[2])
goto err;
psets = av_mallocz(MAX_PSET_SIZE);
@@ -314,6 +316,8 @@ static int extradata2psets_hevc(AVFormatContext *fmt, const AVCodecParameters *p
for (i = 0; i < 3; i++) {
pos = ps_pos[i];
+ if (!pos)
+ continue;
if (i > 0)
av_strlcat(psets, "; ", MAX_PSET_SIZE);
--
2.39.5 (Apple Git-154)
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [FFmpeg-devel] [PATCH] libavformat/sdp: VPS is not a mandatory HEVC codec parameter.
2025-03-26 20:50 [FFmpeg-devel] [PATCH] libavformat/sdp: VPS is not a mandatory HEVC codec parameter koushd
@ 2025-04-02 3:33 ` Koushik Dutta
0 siblings, 0 replies; 2+ messages in thread
From: Koushik Dutta @ 2025-04-02 3:33 UTC (permalink / raw)
To: ffmpeg-devel
Hi, is there any issue with this patch? Here's a sample SDP without
the VPS, that all hikvision cameras send during RTSP DESCRIBE. The VPS
is sent periodically as part of the stream. The sprop-sps and
sprop-pps are lost without this patch because the sprop-vps is not
present.
[rtsp @ 0x12d606fe0] SDP:
v=0
o=- 1743536797185502 1743536797185502 IN IP4 192.168.2.64
s=Media Presentation
e=NONE
b=AS:5100
t=0 0
a=control:rtsp://192.168.2.64:554/ISAPI/Streaming/channels/101/?transportmode=unicast
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:5000
a=recvonly
a=x-dimensions:3840,2160
a=control:rtsp://192.168.2.64:554/ISAPI/Streaming/channels/101/trackID=1?transportmode=unicast
a=rtpmap:96 H265/90000
a=fmtp:96 sprop-sps=QgEBAWAAAAMAsAAAAwAAAwCZoAHgIAIcWNrkkUvzcBAQEAg=;
sprop-pps=RAHA8s5wOyQ=
m=audio 0 RTP/AVP 0
c=IN IP4 0.0.0.0
b=AS:50
a=recvonly
a=control:rtsp://192.168.2.64:554/ISAPI/Streaming/channels/101/trackID=2?transportmode=unicast
a=rtpmap:0 PCMU/8000
a=Media_header:MEDIAINFO=494D4B48010200000400050010710110401F000000FA000000000000000000000000000000000000;
a=appversion:1.0
On Wed, Mar 26, 2025 at 1:51 PM <koushd@gmail.com> wrote:
>
> From: Koushik Dutta <koushd@gmail.com>
>
> Many IP cameras do not place VPS in the SDP, and only send it
> in the stream. The RTSP SDP only contains SPS/PPS.
>
> Signed-off-by: Koushik Dutta <koushd@gmail.com>
> ---
> libavformat/sdp.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/libavformat/sdp.c b/libavformat/sdp.c
> index 28490d77f3..64fe9d61ac 100644
> --- a/libavformat/sdp.c
> +++ b/libavformat/sdp.c
> @@ -301,7 +301,9 @@ static int extradata2psets_hevc(AVFormatContext *fmt, const AVCodecParameters *p
> pos += len;
> }
> }
> - if (!ps_pos[0] || !ps_pos[1] || !ps_pos[2])
> +
> + // VPS is not mandatory
> + if (!ps_pos[1] || !ps_pos[2])
> goto err;
>
> psets = av_mallocz(MAX_PSET_SIZE);
> @@ -314,6 +316,8 @@ static int extradata2psets_hevc(AVFormatContext *fmt, const AVCodecParameters *p
>
> for (i = 0; i < 3; i++) {
> pos = ps_pos[i];
> + if (!pos)
> + continue;
>
> if (i > 0)
> av_strlcat(psets, "; ", MAX_PSET_SIZE);
> --
> 2.39.5 (Apple Git-154)
>
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-04-02 3:33 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-03-26 20:50 [FFmpeg-devel] [PATCH] libavformat/sdp: VPS is not a mandatory HEVC codec parameter koushd
2025-04-02 3:33 ` Koushik Dutta
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git