Skip to content

Answer about Incident between MPP & FFmpeg #73

@HermanChen

Description

@HermanChen

We sincerely apologize for drawing so much attention to the MPP library; this matter should have stayed a issue among our media-framework developers. To start with, we wish to clarify that our intention was never to misappropriate FFmpeg’s code or render it proprietary. We hold deep respect for the spirit of open source and have always been committed to promoting open-source principles: We also hold deep respect for the FFmpeg pioneers on video codec technology and meant no offense.

We develop the H.265/VP9/AV1 decoders and their hardware drivers under the Apache license in MPP also with with the original goal of keeping all code open-source and ensuring ease of use for users. Regrettably, due to our insufficient experience in open-source code development the stream header parser source code had 12 files which source code were from FFmpeg libavcodec but removed the FFmpeg LGPL notices.

https://github.com/rockchip-linux/mpp/blob/develop/mpp/codec/dec/av1/av1d_codec.h
https://github.com/rockchip-linux/mpp/blob/develop/mpp/codec/dec/av1/av1d_cbs.c
https://github.com/rockchip-linux/mpp/blob/develop/mpp/codec/dec/av1/av1d_cbs.h
https://github.com/rockchip-linux/mpp/blob/develop/mpp/codec/dec/av1/av1d_parser2_syntax.c
https://github.com/rockchip-linux/mpp/blob/develop/mpp/codec/dec/h265/h265d_codec.h
https://github.com/rockchip-linux/mpp/blob/develop/mpp/codec/dec/h265/h265d_parser.c
https://github.com/rockchip-linux/mpp/blob/develop/mpp/codec/dec/h265/h265d_ps.c
https://github.com/rockchip-linux/mpp/blob/develop/mpp/codec/dec/vp9/vp9d_codec.h
https://github.com/rockchip-linux/mpp/blob/develop/mpp/codec/dec/vp9/vp9d_parser.c
https://github.com/rockchip-linux/mpp/blob/develop/mpp/codec/dec/vp9/vp9data.h
https://github.com/rockchip-linux/mpp/blob/develop/mpp/codec/dec/vp9/vpx_rac.c
https://github.com/rockchip-linux/mpp/blob/develop/mpp/codec/dec/vp9/vpx_rac.h

This issue remained unresolved for an extended period. To ensure full transparency, we would like to elaborate on the handling process as follows.

On February 24, 2024, issue #530 (rockchip-linux/mpp#530) was opened. We responded promptly with respect and immediately initiated preparations for a fix. But after studying the license details, we realised that simply restoring the LGPL headers would convert the entire MPP library to LGPL-licensed code. While this is acceptable for dynamically linked libraries, it would mandate that any project statically linking MPP also adopt the LGPL license. To avoid this mixed-license scenario, we decided to develop a brand-new parser.

Unfortunately, we underestimated the complexity and effort required for this task, and ongoing day-to-day work commitments continuously interfered with progress. Consequently, the development work came to a standstill, and the issue remained unresolved for an unreasonably long time. We sincerely apologize to the open-source community, FFmpeg, and all affected users for this prolonged delay.

To rectify the non-compliant behavior and address the issue comprehensively, we have implemented the following concrete measures:

  • a) Submitted a counter-notification to Github and formally committed to resolving this issue on December 29, 2025..
  • b) Published a patch that restores the LGPL statements on the three FFmpeg codec parser files, which is now available for review by FFmpeg members: fff87da
  • c) Re-started the development of the replacement parser, so that MPP can return to a pure Apache licence.

Again we acknowledge the error that removing FFmpeg LGPL license while using the FFmpeg code and also appologize for the long delay of fixing it.
Thanks for all the supervision and feedback from the open-source community. We will complete the remaining work and restore the MPP library as the community expected.

In accordance with GitHub’s policies, if FFmpeg accepts our counter-notification, the MPP repository will be restored within 10 to 14 days. While the main repository is down, this personal repo can serve as a temporary mirror for anyone who needs to keep using the code.

Thanks again for your attention — we‘re heading back to writing code.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions