[vlc-devel] [Patch] Adding audio support to fake acces_demux

Rémi Denis-Courmont remi at remlab.net
Wed Sep 30 16:42:46 CEST 2009


Le mercredi 30 septembre 2009 17:27:52 Hugo Beauzee-Luyssen, vous avez écrit :
> > Why don't you just read the data from the access_demux? Why do you need
> > to bypass the codec phase as well? IMHO, the fake access_demux should be
> > killed.
> 
> You mean removing both invmem and inamem, using the fake codec (just
> to do nothing) and implementing in*mem inside of the fake access_demux
> ?

A new access_demux plugin could inject coded blocks into the element stream 
output.

> Wouldn't this be kind of dirty ??

I think it's not as ugly as emitting dummy 1-byte blocks through the 
elementary stream output. Besides, it would be much more generic, as it would 
be independent of category and would enable injection of coded data as well.

> About the "why", it's just because we (VLMC team) started our process
> with the existant invmem codec, and it's associated demux.

invmem is a special case because our rawvideo codec plugin sucks and copies 
entire pictures. picture buffers are pulled from the output by the decoder, 
whereas codec data buffers are pushed from the demuxer to the decoder, so 
rawvideo must copy entire pictures :( Fixing this architectural issue would be 
difficult to say the least. To work around the problem, we could however apply 
chroma conversion (or any other form of video filtering) directly in the 
rawvideo codec. That would be ugly, but significantly boost speed.

The memory copy in the araw codec is not as big a deal. And if it were a 
problem, the es_out_* API could easily be extended to support zero-copy audio, 
since block_t and aout_buffer_t have been unified. So I do not see a strong 
need for "inamem".

-- 
Rémi Denis-Courmont
http://www.remlab.net/



More information about the vlc-devel mailing list