The patchset that was merged into libav is now available in ffmpeg as well: https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/omx.c
You can compile ffmpeg from the master branch with --enable-omx --enable-omx-rpi Aman On Thu, Jun 16, 2016 at 2:16 AM, Amancio Hasty <aha...@gmail.com> wrote: > > > On May 9, 2016, at 7:55 AM, Amancio Hasty <aha...@gmail.com> wrote: > > > > Hi, > > > > So what is the next step? > > > > If you want testers I suggest posting to ccrisan’s motionpie mailing > list. > > Cheers > > Amancio > > > > > >> On Mar 31, 2016, at 7:27 PM, Amancio Hasty <aha...@gmail.com> wrote: > >> > >> I am not a lawyer… > >> > >> > >> I updated the patch. vc264.c now has a the copyright notice embedded in > >> a volatile global so if a binary is compiled against vc264.o , the > copyright notice > >> can be displayed by: > >> strings ffmpeg | grep -i copyright > >> > >> LICENSE.md has been updated to include Broadcom’s copyright notice. > >> > >> A distribution of a binary that includes vc264.o should include > LICENSE.md and if > >> that is missing, the copyright notice can be displayed via the shell > >> command ‘strings’ . > >> > >> Amancio > >> <c-0001-added-support-for-hardware-assist-H264-video-encodin.patch> > >>> On Mar 22, 2016, at 12:12 PM, Lou Logan <l...@lrcd.com> wrote: > >>> > >>> On Mon, 21 Mar 2016 20:07:01 -0700, Amancio Hasty wrote: > >>> > >>>> From 874a72eec2a78f4935fea091003e534b5f8d5413 Mon Sep 17 00:00:00 2001 > >>>> From: Amancio Hasty <aha...@gmail.com> > >>>> Date: Mon, 21 Mar 2016 18:56:05 -0700 > >>>> Subject: [PATCH] added support for hardware assist H264 video > encoding for > >>>> the Raspberry Pi > >>>> > >>>> --- > >>>> configure | 12 ++ > >>>> libavcodec/Makefile | 1 + > >>>> libavcodec/allcodecs.c | 2 + > >>>> libavcodec/vc264.c | 387 > +++++++++++++++++++++++++++++++++++++++++++++++++ > >>>> 4 files changed, 402 insertions(+) > >>>> create mode 100644 libavcodec/vc264.c > >>>> > >>> [...] > >>>> diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c > >>>> index 2a25d66..3c7bd9b 100644 > >>>> --- a/libavcodec/allcodecs.c > >>>> +++ b/libavcodec/allcodecs.c > >>>> @@ -74,6 +74,7 @@ void avcodec_register_all(void) > >>>> initialized = 1; > >>>> > >>> > >>> Nit: Whitespace on the line above should be removed. > >>> > >>> [...] > >>>> --- /dev/null > >>>> +++ b/libavcodec/vc264.c > >>>> @@ -0,0 +1,387 @@ > >>>> +/* H.264 hardware assist video encoding code taken from > >>>> + * raspberry's os : > >>>> + * /opt/vc/src/hello_pi/hello_encode/encode.c > >>>> + */ > >>>> + > >>>> +/* > >>>> +Copyright (c) 2012, Broadcom Europe Ltd > >>>> +Copyright (c) 2012, Kalle Vahlman <zuh@iki> > >>>> + Tuomas Kulve <tuo...@kulve.fi> > >>>> +All rights reserved. > >>>> + > >>>> +Redistribution and use in source and binary forms, with or without > >>>> +modification, are permitted provided that the following conditions > are met: > >>>> +* Redistributions of source code must retain the above copyright > >>>> + notice, this list of conditions and the following disclaimer. > >>>> + * Redistributions in binary form must reproduce the above > copyright > >>>> + notice, this list of conditions and the following disclaimer > in the > >>>> + documentation and/or other materials provided with the > distribution. > >>>> + * Neither the name of the copyright holder nor the > >>>> + names of its contributors may be used to endorse or promote > products > >>>> + derived from this software without specific prior written > permission. > >>>> + > >>>> +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS > "AS IS" AND > >>>> +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, > THE IMPLIED > >>>> +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE > ARE > >>>> +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS > BE LIABLE FOR ANY > >>>> +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL > DAMAGES > >>>> +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR > SERVICES; > >>>> +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER > CAUSED AND > >>>> +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, > OR TORT > >>>> +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE > USE OF THIS > >>>> +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > >>> > >>> I wonder if any of the above legalese is compatible. Granted, I see a > >>> similar paragraph in "libavformat/aadec.c". > >>> > >>>> + * ffmpeg driver for hardware assist video H.264 encoding using > Broadcom's GPU > >>>> + * Copyright (C) 2016 Amancio Hasty aha...@gmail.com > >>>> + * > >>>> + * > >>>> + * This file is part of FFmpeg. > >>>> + * > >>>> + * FFmpeg is free software; you can redistribute it and/or > >>>> + * modify it under the terms of the GNU Lesser General Public > >>>> + * License as published by the Free Software Foundation; either > >>>> + * version 2.1 of the License, or (at your option) any later version. > >>>> + * > >>>> + * FFmpeg is distributed in the hope that it will be useful, > >>>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of > >>>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > >>>> + * Lesser General Public License for more details. > >>>> + * > >>>> + * You should have received a copy of the GNU Lesser General Public > >>>> + * License along with FFmpeg; if not, write to the Free Software > >>>> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA > 02110-1301 USA > >>>> + * > >>>> + */ > >>>> + > >>>> + > >>>> +/** > >>>> + * @ file vc264.c > >>>> + * Broadcom bm2865's Visual Core hardware assist h264 using > >>>> + openMax interface to the GPU. > >>>> + > >>>> +*/ > >>>> + > >>>> +#include <stdio.h> > >>>> +#include <stdlib.h> > >>>> +#include <string.h> > >>>> +#define OMX_SKIP64BIT > >>>> +#include "bcm_host.h" > >>>> +#include "ilclient.h" > >>>> +#include "avcodec.h" > >>>> +#include "internal.h" > >>>> + > >>>> +typedef struct VC264Context { > >>>> + OMX_VIDEO_PARAM_PORTFORMATTYPE format; > >>>> + OMX_PARAM_PORTDEFINITIONTYPE def; > >>>> + COMPONENT_T *video_encode; > >>>> + COMPONENT_T *list[5]; > >>>> + OMX_BUFFERHEADERTYPE *buf; > >>>> + OMX_BUFFERHEADERTYPE *out; > >>>> + ILCLIENT_T *client; > >>>> + OMX_VIDEO_PARAM_BITRATETYPE bitrateType; > >>>> + int width; > >>>> + int height; > >>>> + int bit_rate; > >>>> +} VC264Context; > >>>> + > >>>> + > >>>> +static int vc264_init(AVCodecContext *avctx) { > >>>> + > >>>> + > >>>> + > >>>> + OMX_ERRORTYPE r; > >>>> + int error; > >>>> + > >>>> + > >>>> + > >>>> + VC264Context *vc = avctx->priv_data; > >>>> + > >>>> + vc->width = avctx->width; > >>>> + vc->height = avctx->height; > >>>> + vc->bit_rate = avctx->bit_rate; > >>>> + printf("vc264: bit rate %d \n", avctx->bit_rate); > >>>> +#if FF_API_CODED_FRAME > >>>> +FF_DISABLE_DEPRECATION_WARNINGS > >>>> + > >>>> + avctx->coded_frame = av_frame_alloc(); > >>>> + avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I; > >>>> +FF_ENABLE_DEPRECATION_WARNINGS > >>>> +#endif > >>>> + > >>>> + > >>>> + memset(&vc->list, 0, sizeof(vc->list)); > >>>> + bcm_host_init(); > >>>> + if ((vc->client = ilclient_init()) == NULL) { > >>>> + return -3; > >>>> + } > >>>> + error = OMX_Init(); > >>>> + > >>>> + if (error != OMX_ErrorNone) { > >>>> + ilclient_destroy(vc->client); > >>>> + av_log(avctx,AV_LOG_ERROR,"in vc264_init OMX_Init failed "); > >>>> + return -4; > >>>> + } > >>>> + > >>>> + // create video_encode > >>>> + r = ilclient_create_component(vc->client, &vc->video_encode, > (char *) "video_encode", > >>>> + ILCLIENT_DISABLE_ALL_PORTS | > >>>> + ILCLIENT_ENABLE_INPUT_BUFFERS | > >>>> + ILCLIENT_ENABLE_OUTPUT_BUFFERS); > >>> > >>> Tabs should be converted to spaces. There are many instances of tabs > >>> being used in this patch. > >>> > >>> Others will have to provide a more technical review (not to mention > >>> possible additions docs, Changelog, MAINTAINERS, and > >>> libavcodec/version.h). > >>> _______________________________________________ > >>> ffmpeg-devel mailing list > >>> ffmpeg-devel@ffmpeg.org > >>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > >> > > > > Any thoughts on how we may proceed forward? > > Thank You, > Amancio > > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel