<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi there,<div class=""><br class=""></div><div class="">I wrote an email with the same problem a while ago.</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 02 Mar 2016, at 22:17, <<a href="mailto:muller@vki.com" class="">muller@vki.com</a>> <<a href="mailto:muller@vki.com" class="">muller@vki.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><div style="background-color: rgb(255, 255, 255); font-family: HelveticaNeue-Light, 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class=""><div class="">  Hello,</div><div id="yui_3_16_0_1_1456951391037_3901" class=""><br class=""></div><div id="yui_3_16_0_1_1456951391037_3812" dir="ltr" class="">I've been tasked with building FFMPEG with Cisco's OpenH264. I'm doing this on Ubuntu Linux 64.</div><div id="yui_3_16_0_1_1456951391037_3802" dir="ltr" class=""><br class=""></div><div id="yui_3_16_0_1_1456951391037_3798" dir="ltr" class="">My understanding is that all I need is</div><div id="yui_3_16_0_1_1456951391037_3800" dir="ltr" class=""><br class=""></div><div id="yui_3_16_0_1_1456951391037_3799" dir="ltr" class="">> configure --enable-libopenh264</div><div id="yui_3_16_0_1_1456951391037_3832" dir="ltr" class="">> make</div><div dir="ltr" class=""><br class=""></div><div id="yui_3_16_0_1_1456951391037_3940" dir="ltr" class="">I have 2 questions:</div><div id="yui_3_16_0_1_1456951391037_3821" dir="ltr" class=""><br class=""></div><div id="yui_3_16_0_1_1456951391037_3834" dir="ltr" class="">1) The building process proceeded almost flawlessly, until I hit the errors below. Can anybody suggest a workaround?</div><div id="yui_3_16_0_1_1456951391037_3911" dir="ltr" class=""><br class=""></div><div id="yui_3_16_0_1_1456951391037_3925" dir="ltr" class="">2) I did NOT use either --enable-gpl or --enable-nonfree. I had been using libx264 up to now but want to make sure I will be using Cisco's OpenH264. The way I select H264 is with the code</div><div id="yui_3_16_0_1_1456951391037_3957" dir="ltr" class=""><br class=""></div><div id="yui_3_16_0_1_1456951391037_3958" dir="ltr" class="">      avformat_alloc_output_context2 (&oc,NULL,"mp4",NULL);<br id="yui_3_16_0_1_1456951391037_3956" class="">      oc->oformat->video_codec = AV_CODEC_ID_H264;</div><div id="yui_3_16_0_1_1456951391037_3959" dir="ltr" class=""><br class=""></div><div dir="ltr" class="">This has been working just fine. Once I enable openh264 can I still use the line above to select H264, or is the enumerated type above strictly for libx264? If so, what change should I make to use openh264?</div><div dir="ltr" class=""><br class=""></div><div id="yui_3_16_0_1_1456951391037_3970" dir="ltr" class="">Thanks.</div><div dir="ltr" class=""><br class=""></div><div dir="ltr" class="">Here are the errors:</div><div dir="ltr" class=""><br class=""></div><div id="yui_3_16_0_1_1456951391037_3886" dir="ltr" class="">libavcodec/libopenh264enc.c:54:85: error:  Ç SM_AUTO_SLICE Ç  undeclared here (not in a function)<br id="yui_3_16_0_1_1456951391037_3839" class="">     { "slice_mode", "set slice mode", OFFSET(slice_mode), AV_OPT_TYPE_INT, { .i64 = SM_AUTO_SLICE }, SM_SINGLE_SLICE, SM_RESERVED, VE, "slice_mode" },<br id="yui_3_16_0_1_1456951391037_3840" class="">                                                                                     ^<br id="yui_3_16_0_1_1456951391037_3841" class="">libavcodec/libopenh264enc.c:56:87: error:  Ç SM_ROWMB_SLICE Ç  undeclared here (not in a function)<br id="yui_3_16_0_1_1456951391037_3842" class="">         { "rowmb", "one slice per row of macroblocks", 0, AV_OPT_TYPE_CONST, { .i64 = SM_ROWMB_SLICE }, 0, 0, VE, "slice_mode" },<br id="yui_3_16_0_1_1456951391037_3843" class="">                                                                                       ^<br id="yui_3_16_0_1_1456951391037_3844" class="">libavcodec/libopenh264enc.c:58:68: error:  Ç SM_DYN_SLICE Ç  undeclared here (not in a function)<br id="yui_3_16_0_1_1456951391037_3845" class="">         { "dyn", "Dynamic slicing", 0, AV_OPT_TYPE_CONST, { .i64 = SM_DYN_SLICE }, 0, 0, VE, "slice_mode" },<br id="yui_3_16_0_1_1456951391037_3846" class="">                                                                    ^<br id="yui_3_16_0_1_1456951391037_3851" class="">libavcodec/libopenh264enc.c:198:28: error:  Ç SSpatialLayerConfig Ç  has no member named  Ç sSliceCfg Ç<br id="yui_3_16_0_1_1456951391037_3852" class="">     param.sSpatialLayers[0].sSliceCfg.uiSliceMode               = s->slice_mode;<br id="yui_3_16_0_1_1456951391037_3853" class="">                            ^<br id="yui_3_16_0_1_1456951391037_3854" class="">libavcodec/libopenh264enc.c:198:38: error: request for member  Ç uiSliceMode Ç  in something not a structure or union<br id="yui_3_16_0_1_1456951391037_3855" class="">     param.sSpatialLayers[0].sSliceCfg.uiSliceMode               = s->slice_mode;<br id="yui_3_16_0_1_1456951391037_3856" class="">                                      ^<br id="yui_3_16_0_1_1456951391037_3857" class="">libavcodec/libopenh264enc.c:199:28: error:  Ç SSpatialLayerConfig Ç  has no member named  Ç sSliceCfg Ç<br id="yui_3_16_0_1_1456951391037_3861" class="">     param.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceNum = avctx->slices;<br id="yui_3_16_0_1_1456951391037_3862" class="">                            ^<br id="yui_3_16_0_1_1456951391037_3863" class="">libavcodec/libopenh264enc.c:199:38: error: request for member  Ç sSliceArgument Ç  in something not a structure or union<br id="yui_3_16_0_1_1456951391037_3864" class="">     param.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceNum = avctx->slices;<br id="yui_3_16_0_1_1456951391037_3865" class="">                                      ^<br id="yui_3_16_0_1_1456951391037_3866" class="">libavcodec/libopenh264enc.c:199:53: error: request for member  Ç uiSliceNum Ç  in something not a structure or union<br id="yui_3_16_0_1_1456951391037_3867" class="">     param.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceNum = avctx->slices;<br id="yui_3_16_0_1_1456951391037_3868" class="">                                                     ^<br id="yui_3_16_0_1_1456951391037_3869" class="">libavcodec/libopenh264enc.c:204:36: error:  Ç SSpatialLayerConfig Ç  has no member named  Ç sSliceCfg Ç<br id="yui_3_16_0_1_1456951391037_3876" class="">             param.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceSizeConstraint = s->max_nal_size;<br id="yui_3_16_0_1_1456951391037_3877" class="">                                    ^<br id="yui_3_16_0_1_1456951391037_3878" class="">libavcodec/libopenh264enc.c:204:46: error: request for member  Ç sSliceArgument Ç  in something not a structure or union<br id="yui_3_16_0_1_1456951391037_3879" class="">             param.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceSizeConstraint = s->max_nal_size;<br id="yui_3_16_0_1_1456951391037_3880" class="">                                              ^<br id="yui_3_16_0_1_1456951391037_3881" class="">libavcodec/libopenh264enc.c:204:61: error: request for member  Ç uiSliceSizeConstraint Ç  in something not a structure or union<br id="yui_3_16_0_1_1456951391037_3882" class="">             param.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceSizeConstraint = s->max_nal_size;</div></div></div></div></blockquote><br class=""></div><div><br class=""></div><div>Carl Eugen’s suggestion was to downgrade OpenH264.</div><div>Here’s the original quote:</div><div><br class=""></div><div><span class="Apple-tab-span" style="white-space:pre">      </span>Google suggests to downgrade your openh264 version.<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">       </span>The alternative is to send a patch to fix the issue <br class=""><span class="Apple-tab-span" style="white-space:pre">      </span>in FFmpeg.<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>Carl Eugen</div><div><br class=""></div><div class=""><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span><span><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class=""><div class=""></div></span></div>
</span></span></span></span></div>
<br class=""></div></body></html>