summaryrefslogtreecommitdiff
path: root/pjmedia
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2011-10-06 06:37:46 +0000
committerNanang Izzuddin <nanang@teluu.com>2011-10-06 06:37:46 +0000
commit56a567ffe9bbe46f17caa83faf943e095254d9d9 (patch)
tree31a843f29d1801dd61e4b34c6a5bbe05c889d9c6 /pjmedia
parent1659aded24d74cbe7dc255bfdcb3d53d87867aca (diff)
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: http://svn.pjsip.org/repos/pjproject/trunk@3795 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia')
-rw-r--r--pjmedia/include/pjmedia/vid_codec.h5
-rw-r--r--pjmedia/src/pjmedia-codec/ffmpeg_codecs.c12
2 files changed, 13 insertions, 4 deletions
diff --git a/pjmedia/include/pjmedia/vid_codec.h b/pjmedia/include/pjmedia/vid_codec.h
index fbb169bb..4726d2b2 100644
--- a/pjmedia/include/pjmedia/vid_codec.h
+++ b/pjmedia/include/pjmedia/vid_codec.h
@@ -126,6 +126,11 @@ typedef struct pjmedia_vid_codec_param
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 94610068..e0886b02 100644
--- a/pjmedia/src/pjmedia-codec/ffmpeg_codecs.c
+++ b/pjmedia/src/pjmedia-codec/ffmpeg_codecs.c
@@ -341,9 +341,11 @@ static pj_status_t h264_preopen(ffmpeg_private *ff)
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 @@ static pj_status_t h263_preopen(ffmpeg_private *ff)
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;
}