[FFmpeg-devel] [PATCH v2] avformat/vpcc: fix VP9 metadata in FLV and RTMP
James Almer
jamrial at gmail.com
Sun Sep 3 21:49:29 EEST 2023
On 9/3/2023 1:45 PM, aler9 wrote:
> I looked again at your previous comment and you suggested to explicitly
> mention that this patch will affect FLV too, which i did in the title.
>
> I didn't see any request to change the code. Do you have any suggestion
> regarding the code?
I see the change in the commit message that i had missed, so nevermind.
>
>
>
> Il giorno dom 3 set 2023 alle ore 18:17 James Almer <jamrial at gmail.com> ha
> scritto:
>
>> On 9/3/2023 1:15 PM, aler9 wrote:
>>> sorry, to git add what?
>>
>> You say you integrated my comment, but the contents of the patch are
>> exactly the same.
>>
>>>
>>> Il giorno dom 3 set 2023 alle ore 18:02 James Almer <jamrial at gmail.com>
>> ha
>>> scritto:
>>>
>>>> On 9/3/2023 1:00 PM, Alessandro Ros wrote:
>>>>> I integrated James A. comment and fixed patch format.
>>>>
>>>> I think you forgot to git add.
>>>>
>>>>>
>>>>> In order to send VP9 tracks with FLV or RTMP, the enhanced RTMP
>>>>> specification tells that VPCodecConfigurationRecord, a.k.a. vpcC
>>>>> ISO-BMFF box, must be inserted into a metadata message. However, the
>>>>> function responsible for generating vpcCs currently returns invalid
>>>>> boxes, that are lacking the Version and Flag fields, inherited from
>>>>> FullBox. For some reason, both flags were being added manually in
>>>>> movenc. This patch fixes the issue.
>>>>>
>>>>> Signed-off-by: Alessandro Ros <aler9.dev at gmail.com>
>>>>> ---
>>>>> libavformat/movenc.c | 3 ---
>>>>> libavformat/vpcc.c | 2 ++
>>>>> 2 files changed, 2 insertions(+), 3 deletions(-)
>>>>>
>>>>> diff --git a/libavformat/movenc.c b/libavformat/movenc.c
>>>>> index 7ef6cef46a..696ae5a6c9 100644
>>>>> --- a/libavformat/movenc.c
>>>>> +++ b/libavformat/movenc.c
>>>>> @@ -1441,10 +1441,7 @@ static int mov_write_vpcc_tag(AVFormatContext
>> *s,
>>>> AVIOContext *pb, MOVTrack *tra
>>>>>
>>>>> avio_wb32(pb, 0);
>>>>> ffio_wfourcc(pb, "vpcC");
>>>>> - avio_w8(pb, 1); /* version */
>>>>> - avio_wb24(pb, 0); /* flags */
>>>>> ff_isom_write_vpcc(s, pb, track->vos_data, track->vos_len,
>>>> track->par);
>>>>> -
>>>>> return update_size(pb, pos);
>>>>> }
>>>>>
>>>>> diff --git a/libavformat/vpcc.c b/libavformat/vpcc.c
>>>>> index ea66959abf..256407dd6d 100644
>>>>> --- a/libavformat/vpcc.c
>>>>> +++ b/libavformat/vpcc.c
>>>>> @@ -208,6 +208,8 @@ int ff_isom_write_vpcc(AVFormatContext *s,
>>>> AVIOContext *pb,
>>>>> if (ret < 0)
>>>>> return ret;
>>>>>
>>>>> + avio_w8(pb, 1); /* version */
>>>>> + avio_wb24(pb, 0); /* flags */
>>>>> avio_w8(pb, vpcc.profile);
>>>>> avio_w8(pb, vpcc.level);
>>>>> avio_w8(pb, (vpcc.bitdepth << 4) | (vpcc.chroma_subsampling <<
>> 1)
>>>> | vpcc.full_range_flag);
Will apply soon unless someone objects.
More information about the ffmpeg-devel
mailing list