mirror of https://github.com/FFmpeg/FFmpeg.git
Compare commits
9 Commits
a45d30a675
...
20051ed3af
| Author | SHA1 | Date |
|---|---|---|
|
|
20051ed3af | |
|
|
62d43ba2e3 | |
|
|
e8213f766f | |
|
|
7d65ce7763 | |
|
|
26dee5b43e | |
|
|
71ff349cc1 | |
|
|
2e12b3251d | |
|
|
3fac2d8593 | |
|
|
36896af64a |
|
|
@ -29101,7 +29101,7 @@ The filter accepts the following options.
|
|||
|
||||
@table @option
|
||||
@item s
|
||||
Set denoising strength for all components. Default is 1.0. Must be in range [1.0, 100.0].
|
||||
Set denoising strength for all components. Default is 1.0. Must be in range [0.0, 100.0].
|
||||
|
||||
@item p
|
||||
Set patch size for all planes. Default is 7. Must be odd number in range [0, 99].
|
||||
|
|
@ -29110,17 +29110,16 @@ Set patch size for all planes. Default is 7. Must be odd number in range [0, 99]
|
|||
Set research size. Default is 15. Must be odd number in range [0, 99].
|
||||
|
||||
@item t
|
||||
Set parallelism. Default is 36. Must be a number in the range [1, 168].
|
||||
Larger values may speed up processing, at the cost of more VRAM.
|
||||
Lower values will slow it down, reducing VRAM usage.
|
||||
Only supported on GPUs with atomic float operations (RDNA3+, Ampere+).
|
||||
Set parallelism. Default is 8. Must be a number in the range [1, 64].
|
||||
Larger values will use more VRAM but may not result in greater speed.
|
||||
The optimal value is hardware and input dependent.
|
||||
|
||||
@item s0
|
||||
@item s1
|
||||
@item s2
|
||||
@item s3
|
||||
Set denoising strength for a specific component. Default is @var{1}, equal to @option{s}.
|
||||
Must be odd number in range [1, 100].
|
||||
Set denoising strength for a specific component. Default is @var{1.0}, equal to @option{s}.
|
||||
Must be in range [0.0, 100.0]. 0.0 disables denoising in that component.
|
||||
|
||||
@item p0
|
||||
@item p1
|
||||
|
|
|
|||
|
|
@ -605,7 +605,7 @@ static int init_profile(AVCodecContext *avctx,
|
|||
enc->tile_cols, framerate);
|
||||
if (level) {
|
||||
av_log(avctx, AV_LOG_VERBOSE, "Using level %s.\n", level->name);
|
||||
enc->seq_level_idx = ff_vk_av1_level_to_vk(level->level_idx);
|
||||
enc->seq_level_idx = level->level_idx;
|
||||
} else {
|
||||
av_log(avctx, AV_LOG_VERBOSE, "Stream will not conform to "
|
||||
"any normal level, using level 7.3 by default.\n");
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -8546,6 +8546,28 @@ static int shift_data(AVFormatContext *s)
|
|||
return ff_format_shift_data(s, mov->reserved_header_pos, moov_size);
|
||||
}
|
||||
|
||||
static void mov_write_mdat_size(AVFormatContext *s)
|
||||
{
|
||||
MOVMuxContext *mov = s->priv_data;
|
||||
AVIOContext *pb = s->pb;
|
||||
|
||||
/* Write size of mdat tag */
|
||||
if (mov->mdat_size + 8 <= UINT32_MAX) {
|
||||
avio_seek(pb, mov->mdat_pos, SEEK_SET);
|
||||
avio_wb32(pb, mov->mdat_size + 8);
|
||||
if (mov->flags & FF_MOV_FLAG_HYBRID_FRAGMENTED)
|
||||
ffio_wfourcc(pb, "mdat"); // overwrite the original moov into a mdat
|
||||
} else {
|
||||
/* overwrite 'wide' placeholder atom */
|
||||
avio_seek(pb, mov->mdat_pos - 8, SEEK_SET);
|
||||
/* special value: real atom size will be 64 bit value after
|
||||
* tag field */
|
||||
avio_wb32(pb, 1);
|
||||
ffio_wfourcc(pb, "mdat");
|
||||
avio_wb64(pb, mov->mdat_size + 16);
|
||||
}
|
||||
}
|
||||
|
||||
static int mov_write_trailer(AVFormatContext *s)
|
||||
{
|
||||
MOVMuxContext *mov = s->priv_data;
|
||||
|
|
@ -8605,21 +8627,9 @@ static int mov_write_trailer(AVFormatContext *s)
|
|||
|
||||
moov_pos = avio_tell(pb);
|
||||
|
||||
/* Write size of mdat tag */
|
||||
if (mov->mdat_size + 8 <= UINT32_MAX) {
|
||||
avio_seek(pb, mov->mdat_pos, SEEK_SET);
|
||||
avio_wb32(pb, mov->mdat_size + 8);
|
||||
if (mov->flags & FF_MOV_FLAG_HYBRID_FRAGMENTED)
|
||||
ffio_wfourcc(pb, "mdat"); // overwrite the original moov into a mdat
|
||||
} else {
|
||||
/* overwrite 'wide' placeholder atom */
|
||||
avio_seek(pb, mov->mdat_pos - 8, SEEK_SET);
|
||||
/* special value: real atom size will be 64 bit value after
|
||||
* tag field */
|
||||
avio_wb32(pb, 1);
|
||||
ffio_wfourcc(pb, "mdat");
|
||||
avio_wb64(pb, mov->mdat_size + 16);
|
||||
}
|
||||
if (!(mov->flags & FF_MOV_FLAG_HYBRID_FRAGMENTED))
|
||||
mov_write_mdat_size(s);
|
||||
|
||||
avio_seek(pb, mov->reserved_moov_size > 0 ? mov->reserved_header_pos : moov_pos, SEEK_SET);
|
||||
|
||||
if (mov->flags & FF_MOV_FLAG_FASTSTART) {
|
||||
|
|
@ -8647,6 +8657,15 @@ static int mov_write_trailer(AVFormatContext *s)
|
|||
if ((res = mov_write_moov_tag(pb, mov, s)) < 0)
|
||||
return res;
|
||||
}
|
||||
|
||||
if (mov->flags & FF_MOV_FLAG_HYBRID_FRAGMENTED) {
|
||||
// With hybrid fragmentation, only write the mdat size (hiding
|
||||
// the original moov and all the fragments within the mdat)
|
||||
// after we've successfully written the complete moov, to avoid
|
||||
// risk for an unreadable file if writing the final moov fails.
|
||||
mov_write_mdat_size(s);
|
||||
}
|
||||
|
||||
res = 0;
|
||||
} else {
|
||||
mov_auto_flush_fragment(s, 1);
|
||||
|
|
|
|||
Loading…
Reference in New Issue