sdp: Add a framesize attribute to H.263 SDP descriptions
authorMartin Storsjö <martin@martin.st>
Mon, 20 Dec 2010 20:46:40 +0000 (20:46 +0000)
committerMartin Storsjö <martin@martin.st>
Mon, 20 Dec 2010 20:46:40 +0000 (20:46 +0000)
While not mentioned in RFC 4629, this is required for H.263 in
3GPP TS 26.234. It is in practice required for playback with
Android stagefright and on Samsung bada phones.

Originally committed as revision 26062 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/sdp.c

index 35cbabc..872e76c 100644 (file)
@@ -314,7 +314,14 @@ static char *sdp_write_media_attributes(char *buff, int size, AVCodecContext *c,
             break;
         case CODEC_ID_H263:
         case CODEC_ID_H263P:
-            av_strlcatf(buff, size, "a=rtpmap:%d H263-2000/90000\r\n", payload_type);
+            /* a=framesize is required by 3GPP TS 26.234 (PSS). It
+             * actually specifies the maximum video size, but we only know
+             * the current size. This is required for playback on Android
+             * stagefright and on Samsung bada. */
+            av_strlcatf(buff, size, "a=rtpmap:%d H263-2000/90000\r\n"
+                                    "a=framesize:%d %d-%d\r\n",
+                                    payload_type,
+                                    payload_type, c->width, c->height);
             break;
         case CODEC_ID_MPEG4:
             if (c->extradata_size) {