[Ffmpeg-devel] which codecs support rtp_callback

Michael Niedermayer michaelni
Wed Oct 11 02:32:15 CEST 2006


Hi

On Wed, Oct 11, 2006 at 09:59:18AM +1000, leon zadorin wrote:
> Hi all,
> 
> I recall reading a while ago (in avcodec.h) that rtp-friendly encoding was
> supported only by H263/263+ and MPEG4:
> 
> +    /* The following data is for RTP friendly coding */
> +    /* By now only H.263/H.263+ coder honours this   */
> +    int rtp_mode;   /* 1 for activate RTP friendly-mode           */
> +                    /* highers numbers represent more error-prone */
> +                    /* enviroments, by now just "1" exist         */
> 
> Now (current version of avcodec.h?) the text reads:
> 
> 00869     /* unused, FIXME remove*/
> 00870     int rtp_mode;
> 00871
> 00872     int rtp_payload_size;   /* The size of the RTP payload: the
> coder will  */
> 00873                             /* do it's best to deliver a chunk
> with size    */
> 00874                             /* below rtp_payload_size, the chunk
> will start */

thats a lie, the encoder does not really try that, though arguably it
should ...
currently it does something like
if(current slice size >= rtp_payload_size)
    start new slice

what it should do is

if(current slice size > rtp_payload_size){
    step back by one macroblock
    update bitstream stuff and internal variables for this step back
    start a new slice
}

patch for that would be welcome of course



> 00875                             /* with a start code on some codecs
> like H.263  */
> 00876                             /* This doesn't take account of any
> particular  */
> 00877                             /* headers inside the transmited RTP
> payload    */

please use 
/**...
 * ...
 */
format so doxygen can parse the comment


> 
> 
> 
> So the question is: is it still the case that rtp_callback is supported only
> by H263/263+ and MPEG4 or are there now additional codecs that support this?
> (currently grepping rtp_callback for c files shows mpegvideo.c only I
> think)...

dunno, mpeg1/2 probably work too


> 
> Also, in terms of architecture design, is rtp_callback likely to be called
> from different threads when multithreaded encoding is enabled and supported
> by the encoder?

multithreaded encoding and rtp_callback arent suppported together id say

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

In the past you could go to a library and read, borrow or copy any book
Today you'd get arrested for mere telling someone where the library is




More information about the ffmpeg-devel mailing list