Gyan Doshi <ffm...@gyani.pro> 于2022年5月14日周六 17:18写道: > > Allows to process CENC-encrypted media segments. > Option arg syntax is same as that for option decryption_key in MOV demuxer > --- > doc/demuxers.texi | 11 +++++++++++ > libavformat/dashdec.c | 5 +++++ > 2 files changed, 16 insertions(+) > > diff --git a/doc/demuxers.texi b/doc/demuxers.texi > index 238b8e03a8..c95a9ae594 100644 > --- a/doc/demuxers.texi > +++ b/doc/demuxers.texi > @@ -274,6 +274,17 @@ which streams to actually receive. > Each stream mirrors the @code{id} and @code{bandwidth} properties from the > @code{<Representation>} as metadata keys named "id" and "variant_bitrate" > respectively. > > +@subsection Options > + > +This demuxer accepts the following option: > + > +@table @option > + > +@item cenc_decryption_key > +16-byte key, in hex, to decrypt files encrypted using ISO Common Encryption > (CENC/AES-128 CTR; ISO/IEC 23001-7). > + > +@end table > + > @section imf > > Interoperable Master Format demuxer. > diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c > index 0b5ff5aeb9..0f66251354 100644 > --- a/libavformat/dashdec.c > +++ b/libavformat/dashdec.c > @@ -150,6 +150,7 @@ typedef struct DASHContext { > char *allowed_extensions; > AVDictionary *avio_opts; > int max_url_size; > + char *cenc_decryption_key; > > /* Flags for init section*/ > int is_init_section_common_video; > @@ -1893,6 +1894,9 @@ static int reopen_demux_for_component(AVFormatContext > *s, struct representation > pls->ctx->pb = &pls->pb.pub; > pls->ctx->io_open = nested_io_open; > > + if (c->cenc_decryption_key) > + av_dict_set(&in_fmt_opts, "decryption_key", c->cenc_decryption_key, > AV_OPT_FLAG_DECODING_PARAM); > + > // provide additional information from mpd if available > ret = avformat_open_input(&pls->ctx, "", in_fmt, &in_fmt_opts); > //pls->init_section->url > av_dict_free(&in_fmt_opts); > @@ -2344,6 +2348,7 @@ static const AVOption dash_options[] = { > OFFSET(allowed_extensions), AV_OPT_TYPE_STRING, > {.str = "aac,m4a,m4s,m4v,mov,mp4,webm,ts"}, > INT_MIN, INT_MAX, FLAGS}, > + { "cenc_decryption_key", "Media decryption key (hex)", > OFFSET(cenc_decryption_key), AV_OPT_TYPE_STRING, {.str = NULL}, INT_MIN, > INT_MAX, .flags = FLAGS }, > {NULL} > }; > > -- > 2.36.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-requ...@ffmpeg.org with subject "unsubscribe".
LGTM Thanks _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".