[FFmpeg-devel] [PATCH] avformat/avio: Add Metacube support

Martin Storsjö martin at martin.st
Tue May 4 21:40:34 EEST 2021


On Tue, 4 May 2021, Steinar H. Gunderson wrote:

> On Tue, May 04, 2021 at 04:46:29PM +0100, Derek Buitenhuis wrote:
>> Can this not be accomplished outside of FFmpeg, by registering your own I/O
>> callbacks? That would seem to me to be the 'proper' way to do this. More
>> work? Yes. But less hacky.
>
> For a libavformat-using program that does its own transports? Sure, I'm
> already doing that in other projects. For anything that wants to use the
> ffurl transports -- and in particular, stream from the ffmpeg(1) client?
> I don't see how that would be possible, unless I'm misunderstanding what
> you're suggesting.

I guess you'd need to extend the URLProtocol struct with a pointer that 
can be set to the write_data_type callback (which sounds fine to me) - and 
you could have e.g. a url in the form metacube+http://server - that would 
allow a "metacube" protocol handle it, which then can open the nested part 
of the url as a nested protocol.

>
>>   * You need to provide documentation / links on, like, what 'metacube' *is*. It's
>>     absolutely unclear to anyone reading this patch and associated doxy what it is
>>     or what its usecase is. AFAICT it's your own project?
>
> I believe this was already covered in the commit message...? But yes, Cubemap
> is my own project, and Metacube is its framing protocol.
>
> I'm not seeing a lot of love for this patch, so I won't be pursuing it any
> further -- I wanted to upstream it due to user requests, but it is small
> enough that it can live in my own tree pretty much indefinitely.

I have actually been interested in testing this and considered writing an 
implementation of this protocol at some point, but I've never got to it. 
I'd say most aversion is to the implementation - the cause itself is fine 
IMO. (While it's less of a widely known protocol than e.g. gopher, it's 
probably more useful.)

// Martin



More information about the ffmpeg-devel mailing list