This patch allows MediaTomb to specify a transcoder that can start from an arbitrary time-based position in a stream. I've only tested it using the PS3 as a renderer, but it works quite well when I've used it. Here is the transcoder profile I'm using:
<profile name="mencoder-mpeg2" enabled="yes" type="external">
<mimetype>video/mpeg</mimetype>
<accept-url>yes</accept-url>
<first-resource>yes</first-resource>
<accept-ogg-theora>yes</accept-ogg-theora>
<avi-fourcc-list mode="ignore">
<fourcc>XVID</fourcc>
<fourcc>xvid</fourcc>
<fourcc>DX50</fourcc>
</avi-fourcc-list>
<agent command="mencoder" arguments="-ss %seconds -really-quiet -autosub %in -keep-pts -oac lavc -ovc lavc -channels 2 -of mpeg -lavdopts debug=0:threads=4 -lavcopts autoaspect=1:vcodec=mpeg2video:acodec=ac3:abitrate=384:threads=4:keyint=1:vqscale=1:vqmin=2 -mpegopts format=mpeg2:muxrate=500000:vbuf_size=1194:abuf_size=64:tsdelta=%seconds -mc 0.1 -alang eng -o %out" can-seek="yes"/>
<buffer size="1048576" chunk-size="131072" fill-size="262144"/>
</profile>
Looked briefly over it, looks cool, but why exactly are you creating this out_headers instead of using "info->http_header" like it is being done from the request handlers?
I didn't use info->http_header because that's used to store a header to be sent back TO the client. I needed the headers that come FROM the client, which weren't getting passed to the open() callback until I added the UpnpHTTPHeader type.
Went for a similar patch which was already used and tested by the Fedora rpm,thanks nonetheless.