Close #1381:
 - Added 'ignore_fmtp' field in pjmedia_vid_codec_param to allow application to omit SDP fmtp in codec param without risking video size and frame rate param being overridden with default values.
 - Updated sample app vid_streamutil.c to use that field, which currently not supplying SDP fmtp to video codec.




git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3795 74dad513-b988-da41-8d7b-12977e46ad98
diff --git a/pjmedia/include/pjmedia/vid_codec.h b/pjmedia/include/pjmedia/vid_codec.h
index fbb169b..4726d2b 100644
--- a/pjmedia/include/pjmedia/vid_codec.h
+++ b/pjmedia/include/pjmedia/vid_codec.h
@@ -126,6 +126,11 @@
     pjmedia_format      dec_fmt;        /**< Decoded format	            */
     pjmedia_codec_fmtp  dec_fmtp;       /**< Decoder fmtp params	    */
 
+    pj_bool_t		ignore_fmtp;	/**< Ignore fmtp params. If set to
+					     PJ_TRUE, the codec will apply
+					     format settings specified in
+					     enc_fmt and dec_fmt only.	    */
+
 } pjmedia_vid_codec_param;
 
 
diff --git a/pjmedia/src/pjmedia-codec/ffmpeg_codecs.c b/pjmedia/src/pjmedia-codec/ffmpeg_codecs.c
index 9461006..e0886b0 100644
--- a/pjmedia/src/pjmedia-codec/ffmpeg_codecs.c
+++ b/pjmedia/src/pjmedia-codec/ffmpeg_codecs.c
@@ -341,9 +341,11 @@
 	return status;
 
     /* Apply SDP fmtp to format in codec param */
-    status = pjmedia_vid_codec_h264_apply_fmtp(&ff->param);
-    if (status != PJ_SUCCESS)
-	return status;
+    if (!ff->param.ignore_fmtp) {
+	status = pjmedia_vid_codec_h264_apply_fmtp(&ff->param);
+	if (status != PJ_SUCCESS)
+	    return status;
+    }
 
     if (ff->param.dir & PJMEDIA_DIR_ENCODING) {
 	AVCodecContext *ctx = ff->enc_ctx;
@@ -448,7 +450,9 @@
 	return status;
 
     /* Apply fmtp settings to codec param */
-    status = pjmedia_vid_codec_h263_apply_fmtp(&ff->param);
+    if (!ff->param.ignore_fmtp) {
+	status = pjmedia_vid_codec_h263_apply_fmtp(&ff->param);
+    }
 
     return status;
 }
diff --git a/pjsip-apps/src/samples/vid_streamutil.c b/pjsip-apps/src/samples/vid_streamutil.c
index fd75bfb..9d125bd 100644
--- a/pjsip-apps/src/samples/vid_streamutil.c
+++ b/pjsip-apps/src/samples/vid_streamutil.c
@@ -708,7 +708,7 @@
             /* Create capture */
             status = pjmedia_vid_dev_default_param(
 					pool,
-					0,//PJMEDIA_VID_DEFAULT_CAPTURE_DEV,
+					PJMEDIA_VID_DEFAULT_CAPTURE_DEV,
 					&vpp.vidparam);
             if (status != PJ_SUCCESS)
 	        goto on_exit;
@@ -726,7 +726,7 @@
             /* Create renderer */
             status = pjmedia_vid_dev_default_param(
 					pool,
-					1,//PJMEDIA_VID_DEFAULT_RENDER_DEV,
+					PJMEDIA_VID_DEFAULT_RENDER_DEV,
 					&vpp.vidparam);
             if (status != PJ_SUCCESS)
 	        goto on_exit;
@@ -741,6 +741,9 @@
         }
     }
 
+    /* Set to ignore fmtp */
+    codec_param.ignore_fmtp = PJ_TRUE;
+
     /* Create stream based on program arguments */
     status = create_stream(pool, med_endpt, codec_info, &codec_param,
                            dir, rx_pt, tx_pt, local_port, &remote_addr, 
@@ -795,7 +798,7 @@
         vpp.active = PJ_FALSE;
         status = pjmedia_vid_dev_default_param(
 				pool,
-				1,//PJMEDIA_VID_DEFAULT_RENDER_DEV,
+				PJMEDIA_VID_DEFAULT_RENDER_DEV,
 				&vpp.vidparam);
         if (status != PJ_SUCCESS)
 	    goto on_exit;