Hi there, I wrote an email with the same problem a while ago.
> On 02 Mar 2016, at 22:17, <[email protected]> <[email protected]> wrote: > > Hello, > > I've been tasked with building FFMPEG with Cisco's OpenH264. I'm doing this > on Ubuntu Linux 64. > > My understanding is that all I need is > > > configure --enable-libopenh264 > > make > > I have 2 questions: > > 1) The building process proceeded almost flawlessly, until I hit the errors > below. Can anybody suggest a workaround? > > 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 > > avformat_alloc_output_context2 (&oc,NULL,"mp4",NULL); > oc->oformat->video_codec = AV_CODEC_ID_H264; > > 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? > > Thanks. > > Here are the errors: > > libavcodec/libopenh264enc.c:54:85: error: Ç SM_AUTO_SLICE Ç undeclared here > (not in a function) > { "slice_mode", "set slice mode", OFFSET(slice_mode), AV_OPT_TYPE_INT, { > .i64 = SM_AUTO_SLICE }, SM_SINGLE_SLICE, SM_RESERVED, VE, "slice_mode" }, > > ^ > libavcodec/libopenh264enc.c:56:87: error: Ç SM_ROWMB_SLICE Ç undeclared > here (not in a function) > { "rowmb", "one slice per row of macroblocks", 0, AV_OPT_TYPE_CONST, > { .i64 = SM_ROWMB_SLICE }, 0, 0, VE, "slice_mode" }, > > ^ > libavcodec/libopenh264enc.c:58:68: error: Ç SM_DYN_SLICE Ç undeclared here > (not in a function) > { "dyn", "Dynamic slicing", 0, AV_OPT_TYPE_CONST, { .i64 = > SM_DYN_SLICE }, 0, 0, VE, "slice_mode" }, > ^ > libavcodec/libopenh264enc.c:198:28: error: Ç SSpatialLayerConfig Ç has no > member named Ç sSliceCfg Ç > param.sSpatialLayers[0].sSliceCfg.uiSliceMode = > s->slice_mode; > ^ > libavcodec/libopenh264enc.c:198:38: error: request for member Ç uiSliceMode > Ç in something not a structure or union > param.sSpatialLayers[0].sSliceCfg.uiSliceMode = > s->slice_mode; > ^ > libavcodec/libopenh264enc.c:199:28: error: Ç SSpatialLayerConfig Ç has no > member named Ç sSliceCfg Ç > param.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceNum = > avctx->slices; > ^ > libavcodec/libopenh264enc.c:199:38: error: request for member Ç > sSliceArgument Ç in something not a structure or union > param.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceNum = > avctx->slices; > ^ > libavcodec/libopenh264enc.c:199:53: error: request for member Ç uiSliceNum Ç > in something not a structure or union > param.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceNum = > avctx->slices; > ^ > libavcodec/libopenh264enc.c:204:36: error: Ç SSpatialLayerConfig Ç has no > member named Ç sSliceCfg Ç > > param.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceSizeConstraint = > s->max_nal_size; > ^ > libavcodec/libopenh264enc.c:204:46: error: request for member Ç > sSliceArgument Ç in something not a structure or union > > param.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceSizeConstraint = > s->max_nal_size; > ^ > libavcodec/libopenh264enc.c:204:61: error: request for member Ç > uiSliceSizeConstraint Ç in something not a structure or union > > param.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceSizeConstraint = > s->max_nal_size; Carl Eugen’s suggestion was to downgrade OpenH264. Here’s the original quote: Google suggests to downgrade your openh264 version. The alternative is to send a patch to fix the issue in FFmpeg. Carl Eugen
_______________________________________________ Libav-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/libav-user
