[FFmpeg-devel] [PATCH] avformat: add apic to AVStream
James Almer
jamrial at gmail.com
Mon Mar 29 16:17:37 EEST 2021
On 3/29/2021 9:57 AM, Nicolas George wrote:
> James Almer (12021-03-29):
>> The idea for attached_pic afaik was that it's always available and easily
>> accessible to the user from the start, instead of just the one time the
>> demuxing process would return it in an av_read_frame() call.
>> The doxy for AV_DISPOSITION_ATTACHED_PIC even mentions that if you seek the
>> relevant packet may not be returned at all.
>
> Yes, but was it a GOOD idea? For the convenience of the few applications
> that actually use the attached pictures, libavformat will use memory in
> all applications. It does not seem like a good compromise to me.
>
> I think a better design would be some kind of:
>
> int avformat_get_attached_pic(AVStream *st, AVPacket **packet, unsigned flags);
>
> In the short run, it could just access the field, but in the long run it
> could seek back to load the packet only when required.
Can this be done? id3v2 attached pics for many formats are handled by
the generic demux code in avformat_open_input() and not by the actual
demuxer. And in demuxers like asf, it seems to be done in read_header().
Would seeking be able to fetch these pictures again? The comment in the
AV_DISPOSITION_ATTACHED_PIC doxy makes me think it's not possible.
Personally, even if possible i think triggering a seek just to fetch an
attachment is inefficient and disruptive to the user's demuxing/decoding
process, and a step backwards considering it used to always be
available, for both seekable and non-seekable input, the latter which
will no longer be able to access the picture past the original packet.
>
> Since applications need to update their API anyway, it is a good time to
> decide if we want to change something.
Patches welcome.
>
> Regards,
>
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>
More information about the ffmpeg-devel
mailing list