* [FFmpeg-devel] [PATCH v4 0/3] avformat/mov: add support for 'amve' ambient viewing environment [not found] <20240204151404.28289-1-cosmin@cosmin.at> @ 2024-02-04 15:14 ` Cosmin Stejerean via ffmpeg-devel [not found] ` <20240204151404.28289-2-cosmin@cosmin.at> ` (2 subsequent siblings) 3 siblings, 0 replies; 6+ messages in thread From: Cosmin Stejerean via ffmpeg-devel @ 2024-02-04 15:14 UTC (permalink / raw) To: ffmpeg-devel; +Cc: Cosmin Stejerean From: Cosmin Stejerean <cosmin@cosmin.at> Version 4 resolves feedback from v3 by moving new side data field in packet.h to the end for ABI compatibility, bumping the minor API version for lavc, adding APIChanges entry, using -c:v in the FATE test, cleaning up formatting in avformat/movenc and renaming rescale_mdcv to rescale since it is now shared rather than mdcv specific. Cosmin Stejerean (1): tests/fate/mov: add a test for reading and writing amve box Damiano Galassi (2): avcodec: add ambient viewing environment packet side data. avformat/mov: add support for 'amve' ambient viewing environment box. As defined in ISOBMFF (ISO/IEC 14496-12) document. doc/APIchanges | 3 +++ fftools/ffprobe.c | 3 +++ libavcodec/avpacket.c | 1 + libavcodec/decode.c | 1 + libavcodec/packet.h | 9 ++++++- libavcodec/version.h | 2 +- libavformat/dump.c | 15 +++++++++++ libavformat/isom.h | 3 +++ libavformat/mov.c | 35 ++++++++++++++++++++++++ libavformat/movenc.c | 50 +++++++++++++++++++++++++++-------- tests/fate/mov.mak | 5 ++++ tests/ref/fate/mov-read-amve | 8 ++++++ tests/ref/fate/mov-write-amve | 33 +++++++++++++++++++++++ 13 files changed, 155 insertions(+), 13 deletions(-) create mode 100644 tests/ref/fate/mov-read-amve create mode 100644 tests/ref/fate/mov-write-amve -- 2.42.1 _______________________________________________ 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". ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <20240204151404.28289-2-cosmin@cosmin.at>]
* [FFmpeg-devel] [PATCH v4 1/3] avcodec: add ambient viewing environment packet side data. [not found] ` <20240204151404.28289-2-cosmin@cosmin.at> @ 2024-02-04 15:14 ` Cosmin Stejerean via ffmpeg-devel 2024-02-04 15:21 ` Marton Balint 0 siblings, 1 reply; 6+ messages in thread From: Cosmin Stejerean via ffmpeg-devel @ 2024-02-04 15:14 UTC (permalink / raw) To: ffmpeg-devel; +Cc: Cosmin Stejerean From: Damiano Galassi <damiog@gmail.com> --- doc/APIchanges | 3 +++ fftools/ffprobe.c | 3 +++ libavcodec/avpacket.c | 1 + libavcodec/decode.c | 1 + libavcodec/packet.h | 9 ++++++++- libavcodec/version.h | 2 +- 6 files changed, 17 insertions(+), 2 deletions(-) diff --git a/doc/APIchanges b/doc/APIchanges index e477ed78e0..1f5724324a 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -2,6 +2,9 @@ The last version increases of all libraries were on 2023-02-09 API changes, most recent first: +2024-02-04 - xxxxxxxxxx - lavc 60.39.100 - packet.h + Add AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT. + 2023-11-xx - xxxxxxxxxx - lavfi 9.16.100 - buffersink.h buffersrc.h Add av_buffersink_get_colorspace and av_buffersink_get_color_range. Add AVBufferSrcParameters.color_space and AVBufferSrcParameters.color_range. diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c index f33e2471cb..aa1153e709 100644 --- a/fftools/ffprobe.c +++ b/fftools/ffprobe.c @@ -2392,6 +2392,9 @@ static void print_pkt_side_data(WriterContext *w, AVContentLightMetadata *metadata = (AVContentLightMetadata *)sd->data; print_int("max_content", metadata->MaxCLL); print_int("max_average", metadata->MaxFALL); + } else if (sd->type == AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT) { + print_ambient_viewing_environment( + w, (const AVAmbientViewingEnvironment *)sd->data); } else if (sd->type == AV_PKT_DATA_DYNAMIC_HDR10_PLUS) { AVDynamicHDRPlus *metadata = (AVDynamicHDRPlus *)sd->data; print_dynamic_hdr10_plus(w, metadata); diff --git a/libavcodec/avpacket.c b/libavcodec/avpacket.c index 0f8c9b77ae..e118bbaad1 100644 --- a/libavcodec/avpacket.c +++ b/libavcodec/avpacket.c @@ -301,6 +301,7 @@ const char *av_packet_side_data_name(enum AVPacketSideDataType type) case AV_PKT_DATA_DOVI_CONF: return "DOVI configuration record"; case AV_PKT_DATA_S12M_TIMECODE: return "SMPTE ST 12-1:2014 timecode"; case AV_PKT_DATA_DYNAMIC_HDR10_PLUS: return "HDR10+ Dynamic Metadata (SMPTE 2094-40)"; + case AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT:return "Ambient viewing environment"; case AV_PKT_DATA_IAMF_MIX_GAIN_PARAM: return "IAMF Mix Gain Parameter Data"; case AV_PKT_DATA_IAMF_DEMIXING_INFO_PARAM: return "IAMF Demixing Info Parameter Data"; case AV_PKT_DATA_IAMF_RECON_GAIN_INFO_PARAM: return "IAMF Recon Gain Info Parameter Data"; diff --git a/libavcodec/decode.c b/libavcodec/decode.c index 2cfb3fcf97..da6446d879 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -1434,6 +1434,7 @@ static const struct { { AV_PKT_DATA_CONTENT_LIGHT_LEVEL, AV_FRAME_DATA_CONTENT_LIGHT_LEVEL }, { AV_PKT_DATA_ICC_PROFILE, AV_FRAME_DATA_ICC_PROFILE }, { AV_PKT_DATA_DYNAMIC_HDR10_PLUS, AV_FRAME_DATA_DYNAMIC_HDR_PLUS }, + { AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT,AV_FRAME_DATA_AMBIENT_VIEWING_ENVIRONMENT }, }; int ff_decode_frame_props_from_pkt(const AVCodecContext *avctx, diff --git a/libavcodec/packet.h b/libavcodec/packet.h index 2c57d262c6..bb28e7d62a 100644 --- a/libavcodec/packet.h +++ b/libavcodec/packet.h @@ -331,7 +331,14 @@ enum AVPacketSideDataType { * If its value becomes huge, some code using it * needs to be updated as it assumes it to be smaller than other limits. */ - AV_PKT_DATA_NB + AV_PKT_DATA_NB, + + /** + * Ambient viewing environment metadata, as defined by H.274.. This metadata + * should be associated with a video stream and contains data in the form + * of the AVAmbientViewingEnvironment struct. + */ + AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT }; #define AV_PKT_DATA_QUALITY_FACTOR AV_PKT_DATA_QUALITY_STATS //DEPRECATED diff --git a/libavcodec/version.h b/libavcodec/version.h index 0fae3d06d3..f2f14eaed1 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -29,7 +29,7 @@ #include "version_major.h" -#define LIBAVCODEC_VERSION_MINOR 38 +#define LIBAVCODEC_VERSION_MINOR 39 #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ -- 2.42.1 _______________________________________________ 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". ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [FFmpeg-devel] [PATCH v4 1/3] avcodec: add ambient viewing environment packet side data. 2024-02-04 15:14 ` [FFmpeg-devel] [PATCH v4 1/3] avcodec: add ambient viewing environment packet side data Cosmin Stejerean via ffmpeg-devel @ 2024-02-04 15:21 ` Marton Balint 0 siblings, 0 replies; 6+ messages in thread From: Marton Balint @ 2024-02-04 15:21 UTC (permalink / raw) To: Cosmin Stejerean via ffmpeg-devel On Sun, 4 Feb 2024, Cosmin Stejerean via ffmpeg-devel wrote: > From: Damiano Galassi <damiog@gmail.com> > > --- > doc/APIchanges | 3 +++ > fftools/ffprobe.c | 3 +++ > libavcodec/avpacket.c | 1 + > libavcodec/decode.c | 1 + > libavcodec/packet.h | 9 ++++++++- > libavcodec/version.h | 2 +- > 6 files changed, 17 insertions(+), 2 deletions(-) > > int ff_decode_frame_props_from_pkt(const AVCodecContext *avctx, > diff --git a/libavcodec/packet.h b/libavcodec/packet.h > index 2c57d262c6..bb28e7d62a 100644 > --- a/libavcodec/packet.h > +++ b/libavcodec/packet.h > @@ -331,7 +331,14 @@ enum AVPacketSideDataType { > * If its value becomes huge, some code using it > * needs to be updated as it assumes it to be smaller than other limits. > */ > - AV_PKT_DATA_NB > + AV_PKT_DATA_NB, > + > + /** > + * Ambient viewing environment metadata, as defined by H.274.. This metadata > + * should be associated with a video stream and contains data in the form > + * of the AVAmbientViewingEnvironment struct. > + */ > + AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT > }; AV_PKT_DATA_NB has to be kept the last. Regards, Marton _______________________________________________ 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". ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <20240204151404.28289-3-cosmin@cosmin.at>]
* [FFmpeg-devel] [PATCH v4 2/3] avformat/mov: add support for 'amve' ambient viewing environment box. As defined in ISOBMFF (ISO/IEC 14496-12) document. [not found] ` <20240204151404.28289-3-cosmin@cosmin.at> @ 2024-02-04 15:14 ` Cosmin Stejerean via ffmpeg-devel 0 siblings, 0 replies; 6+ messages in thread From: Cosmin Stejerean via ffmpeg-devel @ 2024-02-04 15:14 UTC (permalink / raw) To: ffmpeg-devel; +Cc: Cosmin Stejerean From: Damiano Galassi <damiog@gmail.com> Co-Authored-By: Cosmin Stejerean <cosmin@cosmin.at> --- libavformat/dump.c | 15 +++++++++++++ libavformat/isom.h | 3 +++ libavformat/mov.c | 35 +++++++++++++++++++++++++++++++ libavformat/movenc.c | 50 ++++++++++++++++++++++++++++++++++---------- 4 files changed, 92 insertions(+), 11 deletions(-) diff --git a/libavformat/dump.c b/libavformat/dump.c index aff51b43f6..add38914f2 100644 --- a/libavformat/dump.c +++ b/libavformat/dump.c @@ -28,6 +28,7 @@ #include "libavutil/intreadwrite.h" #include "libavutil/log.h" #include "libavutil/mastering_display_metadata.h" +#include "libavutil/ambient_viewing_environment.h" #include "libavutil/dovi_meta.h" #include "libavutil/mathematics.h" #include "libavutil/opt.h" @@ -379,6 +380,17 @@ static void dump_content_light_metadata(void *ctx, const AVPacketSideData *sd, metadata->MaxCLL, metadata->MaxFALL); } +static void dump_ambient_viewing_environment_metadata(void *ctx, const AVPacketSideData *sd) +{ + const AVAmbientViewingEnvironment *ambient = + (const AVAmbientViewingEnvironment *)sd->data; + av_log(ctx, AV_LOG_INFO, "Ambient Viewing Environment, " + "ambient_illuminance=%f, ambient_light_x=%f, ambient_light_y=%f", + av_q2d(ambient->ambient_illuminance), + av_q2d(ambient->ambient_light_x), + av_q2d(ambient->ambient_light_y)); +} + static void dump_spherical(void *ctx, const AVCodecParameters *par, const AVPacketSideData *sd, int log_level) { @@ -513,6 +525,9 @@ static void dump_sidedata(void *ctx, const AVStream *st, const char *indent, av_log(ctx, log_level, "SMPTE ST 12-1:2014: "); dump_s12m_timecode(ctx, st, sd, log_level); break; + case AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT: + dump_ambient_viewing_environment_metadata(ctx, sd); + break; default: av_log(ctx, log_level, "unknown side data type %d " "(%"SIZE_SPECIFIER" bytes)", sd->type, sd->size); diff --git a/libavformat/isom.h b/libavformat/isom.h index 77221d06e4..a4cca4c798 100644 --- a/libavformat/isom.h +++ b/libavformat/isom.h @@ -29,6 +29,7 @@ #include "libavutil/encryption_info.h" #include "libavutil/mastering_display_metadata.h" +#include "libavutil/ambient_viewing_environment.h" #include "libavutil/spherical.h" #include "libavutil/stereo3d.h" @@ -249,6 +250,8 @@ typedef struct MOVStreamContext { AVMasteringDisplayMetadata *mastering; AVContentLightMetadata *coll; size_t coll_size; + AVAmbientViewingEnvironment *ambient; + size_t ambient_size; uint32_t format; diff --git a/libavformat/mov.c b/libavformat/mov.c index 5fae777adb..42b0135987 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -6039,6 +6039,31 @@ static int mov_read_clli(MOVContext *c, AVIOContext *pb, MOVAtom atom) return 0; } +static int mov_read_amve(MOVContext *c, AVIOContext *pb, MOVAtom atom) +{ + MOVStreamContext *sc; + const int illuminance_den = 10000; + const int ambient_den = 50000; + if (c->fc->nb_streams < 1) + return AVERROR_INVALIDDATA; + sc = c->fc->streams[c->fc->nb_streams - 1]->priv_data; + if (atom.size < 6) { + av_log(c->fc, AV_LOG_ERROR, "Empty Ambient Viewing Environment Info box\n"); + return AVERROR_INVALIDDATA; + } + if (sc->ambient){ + av_log(c->fc, AV_LOG_WARNING, "Ignoring duplicate AMVE\n"); + return 0; + } + sc->ambient = av_ambient_viewing_environment_alloc(&sc->ambient_size); + if (!sc->ambient) + return AVERROR(ENOMEM); + sc->ambient->ambient_illuminance = av_make_q(avio_rb32(pb), illuminance_den); + sc->ambient->ambient_light_x = av_make_q(avio_rb16(pb), ambient_den); + sc->ambient->ambient_light_y = av_make_q(avio_rb16(pb), ambient_den); + return 0; +} + static int mov_read_st3d(MOVContext *c, AVIOContext *pb, MOVAtom atom) { AVStream *st; @@ -8215,6 +8240,7 @@ static const MOVParseTableEntry mov_default_parse_table[] = { { MKTAG('i','s','p','e'), mov_read_ispe }, { MKTAG('i','p','r','p'), mov_read_iprp }, { MKTAG('i','i','n','f'), mov_read_iinf }, +{ MKTAG('a','m','v','e'), mov_read_amve }, /* ambient viewing environment box */ { 0, NULL } }; @@ -8680,6 +8706,7 @@ static void mov_free_stream_context(AVFormatContext *s, AVStream *st) av_freep(&sc->spherical); av_freep(&sc->mastering); av_freep(&sc->coll); + av_freep(&sc->ambient); } static int mov_read_close(AVFormatContext *s) @@ -9072,6 +9099,14 @@ static int mov_read_header(AVFormatContext *s) sc->coll = NULL; } + if (sc->ambient) { + if (!av_packet_side_data_add(&st->codecpar->coded_side_data, &st->codecpar->nb_coded_side_data, + AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT, + (uint8_t *) sc->ambient, sc->ambient_size, 0)) + return AVERROR(ENOMEM); + + sc->ambient = NULL; + } break; } } diff --git a/libavformat/movenc.c b/libavformat/movenc.c index b724bd5ebc..47f0681258 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -2208,7 +2208,7 @@ static int mov_write_clli_tag(AVIOContext *pb, MOVTrack *track) return 12; } -static inline int64_t rescale_mdcv(AVRational q, int b) +static inline int64_t rescale(AVRational q, int b) { return av_rescale(q.num, b, q.den); } @@ -2231,19 +2231,46 @@ static int mov_write_mdcv_tag(AVIOContext *pb, MOVTrack *track) avio_wb32(pb, 32); // size ffio_wfourcc(pb, "mdcv"); - avio_wb16(pb, rescale_mdcv(metadata->display_primaries[1][0], chroma_den)); - avio_wb16(pb, rescale_mdcv(metadata->display_primaries[1][1], chroma_den)); - avio_wb16(pb, rescale_mdcv(metadata->display_primaries[2][0], chroma_den)); - avio_wb16(pb, rescale_mdcv(metadata->display_primaries[2][1], chroma_den)); - avio_wb16(pb, rescale_mdcv(metadata->display_primaries[0][0], chroma_den)); - avio_wb16(pb, rescale_mdcv(metadata->display_primaries[0][1], chroma_den)); - avio_wb16(pb, rescale_mdcv(metadata->white_point[0], chroma_den)); - avio_wb16(pb, rescale_mdcv(metadata->white_point[1], chroma_den)); - avio_wb32(pb, rescale_mdcv(metadata->max_luminance, luma_den)); - avio_wb32(pb, rescale_mdcv(metadata->min_luminance, luma_den)); + avio_wb16(pb, rescale(metadata->display_primaries[1][0], chroma_den)); + avio_wb16(pb, rescale(metadata->display_primaries[1][1], chroma_den)); + avio_wb16(pb, rescale(metadata->display_primaries[2][0], chroma_den)); + avio_wb16(pb, rescale(metadata->display_primaries[2][1], chroma_den)); + avio_wb16(pb, rescale(metadata->display_primaries[0][0], chroma_den)); + avio_wb16(pb, rescale(metadata->display_primaries[0][1], chroma_den)); + avio_wb16(pb, rescale(metadata->white_point[0], chroma_den)); + avio_wb16(pb, rescale(metadata->white_point[1], chroma_den)); + avio_wb32(pb, rescale(metadata->max_luminance, luma_den)); + avio_wb32(pb, rescale(metadata->min_luminance, luma_den)); return 32; } +static int mov_write_amve_tag(AVIOContext *pb, MOVTrack *track) +{ + const int illuminance_den = 10000; + const int ambient_den = 50000; + const AVPacketSideData *side_data; + const AVAmbientViewingEnvironment *ambient; + + + side_data = av_packet_side_data_get(track->st->codecpar->coded_side_data, + track->st->codecpar->nb_coded_side_data, + AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT); + + if (!side_data) + return 0; + + ambient = (const AVAmbientViewingEnvironment*)side_data->data; + if (!ambient || !ambient->ambient_illuminance.num) + return 0; + + avio_wb32(pb, 16); // size + ffio_wfourcc(pb, "amve"); + avio_wb32(pb, rescale(ambient->ambient_illuminance, illuminance_den)); + avio_wb16(pb, rescale(ambient->ambient_light_x, ambient_den)); + avio_wb16(pb, rescale(ambient->ambient_light_y, ambient_den)); + return 16; +} + static void find_compressor(char * compressor_name, int len, MOVTrack *track) { AVDictionaryEntry *encoder; @@ -2457,6 +2484,7 @@ static int mov_write_video_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex if (track->mode == MODE_MOV || track->mode == MODE_MP4) { mov_write_clli_tag(pb, track); mov_write_mdcv_tag(pb, track); + mov_write_amve_tag(pb, track); } if (track->mode == MODE_MP4 && mov->fc->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL) { -- 2.42.1 _______________________________________________ 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". ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <20240204151404.28289-4-cosmin@cosmin.at>]
* [FFmpeg-devel] [PATCH v4 3/3] tests/fate/mov: add a test for reading and writing amve box [not found] ` <20240204151404.28289-4-cosmin@cosmin.at> @ 2024-02-04 15:14 ` Cosmin Stejerean via ffmpeg-devel 2024-02-04 15:28 ` James Almer 0 siblings, 1 reply; 6+ messages in thread From: Cosmin Stejerean via ffmpeg-devel @ 2024-02-04 15:14 UTC (permalink / raw) To: ffmpeg-devel; +Cc: Cosmin Stejerean From: Cosmin Stejerean <cosmin@cosmin.at> --- tests/fate/mov.mak | 5 +++++ tests/ref/fate/mov-read-amve | 8 ++++++++ tests/ref/fate/mov-write-amve | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 tests/ref/fate/mov-read-amve create mode 100644 tests/ref/fate/mov-write-amve diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak index f202f36d96..65854d1628 100644 --- a/tests/fate/mov.mak +++ b/tests/fate/mov.mak @@ -9,6 +9,7 @@ FATE_MOV = fate-mov-3elist \ fate-mov-frag-encrypted \ fate-mov-tenc-only-encrypted \ fate-mov-invalid-elst-entry-count \ + fate-mov-write-amve \ fate-mov-gpmf-remux \ fate-mov-440hz-10ms \ fate-mov-ibi-elst-starts-b \ @@ -25,6 +26,7 @@ FATE_MOV_FFPROBE = fate-mov-neg-firstpts-discard \ fate-mov-zombie \ fate-mov-init-nonkeyframe \ fate-mov-displaymatrix \ + fate-mov-read-amve \ fate-mov-spherical-mono \ fate-mov-guess-delay-1 \ fate-mov-guess-delay-2 \ @@ -109,6 +111,9 @@ fate-mov-init-nonkeyframe: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_packets - fate-mov-displaymatrix: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream=display_aspect_ratio,sample_aspect_ratio:stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mov/displaymatrix.mov +fate-mov-read-amve: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mov/amve.mov +fate-mov-write-amve: CMD = transcode mov $(TARGET_SAMPLES)/mov/amve.mov mp4 "-c copy" "-c:v copy -t 0.5" "-show_entries stream_side_data_list" + fate-mov-spherical-mono: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mov/spherical.mov fate-mov-gpmf-remux: CMD = md5 -i $(TARGET_SAMPLES)/mov/fake-gp-media-with-real-gpmf.mp4 -map 0 -c copy -fflags +bitexact -f mp4 diff --git a/tests/ref/fate/mov-read-amve b/tests/ref/fate/mov-read-amve new file mode 100644 index 0000000000..91d34d94dd --- /dev/null +++ b/tests/ref/fate/mov-read-amve @@ -0,0 +1,8 @@ +[STREAM] +[SIDE_DATA] +side_data_type=Ambient viewing environment +ambient_illuminance=3140000/10000 +ambient_light_x=15635/50000 +ambient_light_y=16450/50000 +[/SIDE_DATA] +[/STREAM] diff --git a/tests/ref/fate/mov-write-amve b/tests/ref/fate/mov-write-amve new file mode 100644 index 0000000000..115cdbd9f0 --- /dev/null +++ b/tests/ref/fate/mov-write-amve @@ -0,0 +1,33 @@ +850c56be1114aa21a2e41bd4ea3da144 *tests/data/fate/mov-write-amve.mp4 +23677 tests/data/fate/mov-write-amve.mp4 +#extradata 0: 49, 0x7f8d1145 +#tb 0: 1/15360 +#media_type 0: video +#codec_id 0: h264 +#dimensions 0: 640x360 +#sar 0: 0/1 +0, -1024, 0, 512, 11849, 0xf21aa1d0 +0, -512, 2048, 512, 1572, 0xf0c41b68, F=0x0 +0, 0, 1024, 512, 347, 0x9b8daabf, F=0x0 +0, 512, 512, 512, 195, 0x557e58db, F=0x0 +0, 1024, 1536, 512, 134, 0x423541b4, F=0x0 +0, 1536, 3072, 512, 1454, 0xe5a2cdad, F=0x0 +0, 2048, 2560, 512, 168, 0xd0ef5402, F=0x0 +0, 2560, 5120, 512, 1395, 0x603eb602, F=0x0 +0, 3072, 4096, 512, 304, 0x69cc92a6, F=0x0 +0, 3584, 3584, 512, 145, 0x3f1a4462, F=0x0 +0, 4096, 4608, 512, 154, 0x953851d1, F=0x0 +0, 4608, 5632, 512, 876, 0xad65ace7, F=0x0 +0, 5120, 7680, 512, 742, 0x6b6d689f, F=0x0 +0, 5632, 6656, 512, 177, 0xa4f2573b, F=0x0 +0, 6144, 6144, 512, 101, 0xb0722d2b, F=0x0 +0, 6656, 7168, 512, 105, 0x1f6033ed, F=0x0 +0, 7168, 9728, 512, 589, 0xcd912063, F=0x0 +[STREAM] +[SIDE_DATA] +side_data_type=Ambient viewing environment +ambient_illuminance=3140000/10000 +ambient_light_x=15635/50000 +ambient_light_y=16450/50000 +[/SIDE_DATA] +[/STREAM] -- 2.42.1 _______________________________________________ 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". ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [FFmpeg-devel] [PATCH v4 3/3] tests/fate/mov: add a test for reading and writing amve box 2024-02-04 15:14 ` [FFmpeg-devel] [PATCH v4 3/3] tests/fate/mov: add a test for reading and writing amve box Cosmin Stejerean via ffmpeg-devel @ 2024-02-04 15:28 ` James Almer 0 siblings, 0 replies; 6+ messages in thread From: James Almer @ 2024-02-04 15:28 UTC (permalink / raw) To: ffmpeg-devel On 2/4/2024 12:14 PM, Cosmin Stejerean via ffmpeg-devel wrote: > From: Cosmin Stejerean <cosmin@cosmin.at> > > --- > tests/fate/mov.mak | 5 +++++ > tests/ref/fate/mov-read-amve | 8 ++++++++ > tests/ref/fate/mov-write-amve | 33 +++++++++++++++++++++++++++++++++ > 3 files changed, 46 insertions(+) > create mode 100644 tests/ref/fate/mov-read-amve > create mode 100644 tests/ref/fate/mov-write-amve > > diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak > index f202f36d96..65854d1628 100644 > --- a/tests/fate/mov.mak > +++ b/tests/fate/mov.mak > @@ -9,6 +9,7 @@ FATE_MOV = fate-mov-3elist \ > fate-mov-frag-encrypted \ > fate-mov-tenc-only-encrypted \ > fate-mov-invalid-elst-entry-count \ > + fate-mov-write-amve \ > fate-mov-gpmf-remux \ > fate-mov-440hz-10ms \ > fate-mov-ibi-elst-starts-b \ > @@ -25,6 +26,7 @@ FATE_MOV_FFPROBE = fate-mov-neg-firstpts-discard \ > fate-mov-zombie \ > fate-mov-init-nonkeyframe \ > fate-mov-displaymatrix \ > + fate-mov-read-amve \ > fate-mov-spherical-mono \ > fate-mov-guess-delay-1 \ > fate-mov-guess-delay-2 \ > @@ -109,6 +111,9 @@ fate-mov-init-nonkeyframe: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_packets - > > fate-mov-displaymatrix: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream=display_aspect_ratio,sample_aspect_ratio:stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mov/displaymatrix.mov > > +fate-mov-read-amve: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mov/amve.mov > +fate-mov-write-amve: CMD = transcode mov $(TARGET_SAMPLES)/mov/amve.mov mp4 "-c copy" "-c:v copy -t 0.5" "-show_entries stream_side_data_list" The sample hasn't been uploaded to the fate suite. Where is it available? > + > fate-mov-spherical-mono: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mov/spherical.mov > > fate-mov-gpmf-remux: CMD = md5 -i $(TARGET_SAMPLES)/mov/fake-gp-media-with-real-gpmf.mp4 -map 0 -c copy -fflags +bitexact -f mp4 > diff --git a/tests/ref/fate/mov-read-amve b/tests/ref/fate/mov-read-amve > new file mode 100644 > index 0000000000..91d34d94dd > --- /dev/null > +++ b/tests/ref/fate/mov-read-amve > @@ -0,0 +1,8 @@ > +[STREAM] > +[SIDE_DATA] > +side_data_type=Ambient viewing environment > +ambient_illuminance=3140000/10000 > +ambient_light_x=15635/50000 > +ambient_light_y=16450/50000 > +[/SIDE_DATA] > +[/STREAM] > diff --git a/tests/ref/fate/mov-write-amve b/tests/ref/fate/mov-write-amve > new file mode 100644 > index 0000000000..115cdbd9f0 > --- /dev/null > +++ b/tests/ref/fate/mov-write-amve > @@ -0,0 +1,33 @@ > +850c56be1114aa21a2e41bd4ea3da144 *tests/data/fate/mov-write-amve.mp4 > +23677 tests/data/fate/mov-write-amve.mp4 > +#extradata 0: 49, 0x7f8d1145 > +#tb 0: 1/15360 > +#media_type 0: video > +#codec_id 0: h264 > +#dimensions 0: 640x360 > +#sar 0: 0/1 > +0, -1024, 0, 512, 11849, 0xf21aa1d0 > +0, -512, 2048, 512, 1572, 0xf0c41b68, F=0x0 > +0, 0, 1024, 512, 347, 0x9b8daabf, F=0x0 > +0, 512, 512, 512, 195, 0x557e58db, F=0x0 > +0, 1024, 1536, 512, 134, 0x423541b4, F=0x0 > +0, 1536, 3072, 512, 1454, 0xe5a2cdad, F=0x0 > +0, 2048, 2560, 512, 168, 0xd0ef5402, F=0x0 > +0, 2560, 5120, 512, 1395, 0x603eb602, F=0x0 > +0, 3072, 4096, 512, 304, 0x69cc92a6, F=0x0 > +0, 3584, 3584, 512, 145, 0x3f1a4462, F=0x0 > +0, 4096, 4608, 512, 154, 0x953851d1, F=0x0 > +0, 4608, 5632, 512, 876, 0xad65ace7, F=0x0 > +0, 5120, 7680, 512, 742, 0x6b6d689f, F=0x0 > +0, 5632, 6656, 512, 177, 0xa4f2573b, F=0x0 > +0, 6144, 6144, 512, 101, 0xb0722d2b, F=0x0 > +0, 6656, 7168, 512, 105, 0x1f6033ed, F=0x0 > +0, 7168, 9728, 512, 589, 0xcd912063, F=0x0 > +[STREAM] > +[SIDE_DATA] > +side_data_type=Ambient viewing environment > +ambient_illuminance=3140000/10000 > +ambient_light_x=15635/50000 > +ambient_light_y=16450/50000 > +[/SIDE_DATA] > +[/STREAM] _______________________________________________ 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". ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-02-04 15:28 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <20240204151404.28289-1-cosmin@cosmin.at> 2024-02-04 15:14 ` [FFmpeg-devel] [PATCH v4 0/3] avformat/mov: add support for 'amve' ambient viewing environment Cosmin Stejerean via ffmpeg-devel [not found] ` <20240204151404.28289-2-cosmin@cosmin.at> 2024-02-04 15:14 ` [FFmpeg-devel] [PATCH v4 1/3] avcodec: add ambient viewing environment packet side data Cosmin Stejerean via ffmpeg-devel 2024-02-04 15:21 ` Marton Balint [not found] ` <20240204151404.28289-3-cosmin@cosmin.at> 2024-02-04 15:14 ` [FFmpeg-devel] [PATCH v4 2/3] avformat/mov: add support for 'amve' ambient viewing environment box. As defined in ISOBMFF (ISO/IEC 14496-12) document Cosmin Stejerean via ffmpeg-devel [not found] ` <20240204151404.28289-4-cosmin@cosmin.at> 2024-02-04 15:14 ` [FFmpeg-devel] [PATCH v4 3/3] tests/fate/mov: add a test for reading and writing amve box Cosmin Stejerean via ffmpeg-devel 2024-02-04 15:28 ` James Almer
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