Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: "\"zhilizhao(赵志立)\"" <quinkblack@foxmail.com>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] movenc: add write_btrt option
Date: Fri, 8 Apr 2022 10:47:15 +0800
Message-ID: <tencent_02213FC156BD9D02E0645BDE3551812A3409@qq.com> (raw)
In-Reply-To: <CAEu79Sa=L+wF-u6t4uSYfkAJKcKEMwzeuEpExsN0SeBGSuD9WA@mail.gmail.com>



> On Apr 8, 2022, at 4:36 AM, Jan Ekström <jeebjp@gmail.com> wrote:
> 
> On Thu, Apr 7, 2022 at 11:42 AM Eran Kornblau <eran.kornblau@kaltura.com> wrote:
>> 
>>> 
>>> 
>>> -----Original Message-----
>>> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of "zhilizhao(???)"
>>> Sent: Wednesday, 6 April 2022 11:46
>>> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
>>> Subject: Re: [FFmpeg-devel] movenc: add write_btrt option
>>> 
>>>> On Apr 3, 2022, at 1:07 PM, Eran Kornblau <eran.kornblau@kaltura.com> wrote:
>>>> 
>>>> Trying my luck in a new thread…
>>>> 
>>>> This patch is in continuation to this discussion –
>>>> https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fffmp
>>>> eg.org%2Fpipermail%2Fffmpeg-devel%2F2022-March%2F294623.html&amp;data=
>>>> 04%7C01%7C%7Cb9907958f97048f5645708da17a9f3c8%7C0c503748de3f4e2597e268
>>>> 19d53a42b6%7C1%7C0%7C637848315958196733%7CUnknown%7CTWFpbGZsb3d8eyJWIj
>>>> oiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&am
>>>> p;sdata=flQc21b5EVWTy%2Bkmw%2FncIWzdLqUxY5XFislPRs5Ij6o%3D&amp;reserve
>>>> d=0
>>>> 
>>>> supports forcing or disabling the writing of the btrt atom.
>>>> the default behavior is to write the atom only for mp4 mode.
>>>> ---
>>>> libavformat/movenc.c | 30 +++++++++++++++++++-----------
>>>> libavformat/movenc.h |  1 +
>>>> 2 files changed, 20 insertions(+), 11 deletions(-)
>>>> 
>>>> diff --git a/libavformat/movenc.c b/libavformat/movenc.c index
>>>> 4c868919ae..b75f1c6909 100644
>>>> --- a/libavformat/movenc.c
>>>> +++ b/libavformat/movenc.c
>>>> 
>>> […]
>>>> 
>>>> -    if (track->mode == MODE_MP4 &&
>>>> -            ((ret = mov_write_btrt_tag(pb, track)) < 0))
>>>> -        return ret;
>>>> +    if ((mov->write_btrt == -1 && track->mode == MODE_MP4) || mov->write_btrt == 1) {
>>>> +        if ((ret = mov_write_btrt_tag(pb, track)) < 0) {
>>>> +            return ret;
>>>> +        }
>>>> +    }
>>> 
>>> I prefer to handle the auto mode (mov->write_btrt == -1) in a single place, so we don’t need to change multiple lines if the condition changed, e.g., enable btrt for MODE_MOV. Please correct me if I’m wrong, mov_init() has all of the contexts to overwrite mov->write_btrt.
>>> 
>> Makes sense, thanks for the feedback!
>> Updated patch attached
>> 
>> Eran
> 
> Generally speaking I am not against this patch. Would have possibly
> came up with something similar myself in case the actual output of
> libavformat would have caused issues, which surprisingly enough it
> wasn't.
> 
> I know you have just copied the logic from tmcd or so, but I think the
> -1 logic is unnecessary. We don't need to force writing of this
> structure no matter what, so you either have it enabled (by default),
> or disabled. If additional formats such as QTFF have since added the
> btrt box into their specification, that doesn't need forcing, but
> rather addition of it into the logic later (if you wanted forcing then
> you'd have to deal with strict_std_compliance being
> unofficial/experimental or higher etc, and if this was not set -
> warning the user that a not officially defined functionality was being
> written into the container and exiting with AVERROR_EXPERIMENTAL).
> 
> Additionally, I thought new options go to the end of the AVOption
> array, but then saw 1dddb930aaf0cadaa19f86e81225c9c352745262 where
> James added "crf" into the middle of an array... so I guess since it's
> an array and not a struct the location no longer matters as much?
> ┐(´д`)┌ Although the struct integer should definitely go to the end of
> it, otherwise you are breaking existing offsets? Although thankfully,
> the struct isn't externally exposed so someone else could chime in
> regarding this, I am unfortunately quite tired throughout this week :P
> .

The order of options and the offset of fields in private struct have no
effect on ABI. I take these into consideration:
1. Readability. Related options and fields should be put at the same
   place.
2. Memory footprint. Reduce struct padding.

> 
> Jan
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

  reply	other threads:[~2022-04-08  2:47 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-03  5:07 Eran Kornblau
2022-04-06  8:46 ` "zhilizhao(赵志立)"
2022-04-07  8:42   ` Eran Kornblau
2022-04-07 10:34     ` "zhilizhao(赵志立)"
2022-04-07 20:36     ` Jan Ekström
2022-04-08  2:47       ` "zhilizhao(赵志立)" [this message]
2022-04-08 10:48         ` Jan Ekström
2022-04-10  6:03           ` Eran Kornblau
2022-04-17  6:47             ` Eran Kornblau
2022-04-25 11:25               ` Eran Kornblau
2022-05-02  9:33                 ` Eran Kornblau
2022-05-02  9:41                   ` Gyan Doshi
2022-05-02 13:05     ` "zhilizhao(赵志立)"

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=tencent_02213FC156BD9D02E0645BDE3551812A3409@qq.com \
    --to=quinkblack@foxmail.com \
    --cc=ffmpeg-devel@ffmpeg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git