[Home]

Summary:ASTERISK-08425: [patch] enable MPEG4 Part 2 video codec pass-through
Reporter:Emmanuel BUU (neutrino88)Labels:
Date Opened:2006-12-23 15:28:16.000-0600Date Closed:2007-01-08 05:50:22.000-0600
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Channels/chan_sip/Video
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) all_changes.patch
Description:A codec to enable pass through support for MPEG4 video codec (MPEG4 part 2). Not to be confused with H.264. We had to do this for our services.

****** ADDITIONAL INFORMATION ******

To enable MPEG4 video support for a SIP peer / user, just add in the relevant section of sip.conf

allow=mpeg4
Comments:By: Olle Johansson (oej) 2006-12-27 08:30:34.000-0600

This is a new feature that can be added only to svn trunk. Will look into this. Thank you!

By: Olle Johansson (oej) 2006-12-27 09:33:39.000-0600

Can you also please check the videocaps branch and see if there are extra attributes needed for mpeg4? Thanks.

By: Serge Vecher (serge-v) 2006-12-27 15:11:39.000-0600

in this line:
+ { 1, AST_FORMAT_MP4_VIDEO, "mpeg4", "MPEG4 Video" }, /*!< 23: Passthrough support, see format_h263.c */
is the comment actually appropriate? Also, should this be expanded a bit to say MPEG4 Part 2 Video?

By: Emmanuel BUU (neutrino88) 2006-12-28 04:34:23.000-0600

>Can you also please check the videocaps branch and see if there are extra attributes needed for mpeg4

Yes, early 2007. Which C files needs to be checked in particular ?

>is the comment actually appropriate? Also, should this be expanded a bit to say MPEG4 Part 2 Video?

The comment seems appropriate. For codec name, I would suggest "MPEG4 Part 2 Video codecs"

By: Emmanuel BUU (neutrino88) 2006-12-28 15:25:08.000-0600

Reviewed videocaps branch. Capabilties parameters are the same than H.264 (not so surprizing) except that there is no packetisation parameter.

For profile IDsdefinition, three profiles are defined

Simple Profile = 1
Core Profile = 34
Advanced Simple Profile = 145

Here is the relevant extract from the RFC3016:

5.2 SDP usage of MPEG-4 Visual

  The MIME media type video/MP4V-ES string is mapped to fields in the
  Session Description Protocol (SDP), RFC 2327, as follows:

  o  The MIME type (video) goes in SDP "m=" as the media name.

  o  The MIME subtype (MP4V-ES) goes in SDP "a=rtpmap" as the encoding
     name.

  o  The optional parameter "rate" goes in "a=rtpmap" as the clock
     rate.

  o  The optional parameter "profile-level-id" and "config" go in the
     "a=fmtp" line to indicate the coder capability and configuration,
     respectively.  These parameters are expressed as a MIME media type
     string, in the form of as a semicolon separated list of
     parameter=value pairs.

  The following are some examples of media representation in SDP:

Simple Profile/Level 1, rate=90000(90kHz), "profile-level-id" and
"config" are present in "a=fmtp" line:
 m=video 49170/2 RTP/AVP 98
 a=rtpmap:98 MP4V-ES/90000
 a=fmtp:98 profile-level-id=1;config=000001B001000001B509000001000000012
    0008440FA282C2090A21F

Core Profile/Level 2, rate=90000(90kHz), "profile-level-id" is present in
"a=fmtp" line:
 m=video 49170/2 RTP/AVP 98
 a=rtpmap:98 MP4V-ES/90000
 a=fmtp:98 profile-level-id=34

Advance Real Time Simple Profile/Level 1, rate=90000(90kHz),
"profile-level-id" is present in "a=fmtp" line:
 m=video 49170/2 RTP/AVP 98
 a=rtpmap:98 MP4V-ES/90000
 a=fmtp:98 profile-level-id=145

5.3 MIME type registration of MPEG-4 Audio

  MIME media type name: audio

  MIME subtype name: MP4A-LATM






Kikuchi, et al.             Standards Track                    [Page 15]

RFC 3016       RTP Payload Format for MPEG-4 Audio/Visual  November 2000


  Required parameters:
     rate: the rate parameter indicates the RTP time stamp clock rate.
     The default value is 90000.  Other rates MAY be specified only if
     they are set to the same value as the audio sampling rate (number
     of samples per second).

  Optional parameters:
     profile-level-id: a decimal representation of MPEG-4 Audio Profile
     Level indication value defined in ISO/IEC 14496-1 ([6] and its
     amendments).  This parameter indicates which MPEG-4 Audio tool
     subsets the decoder is capable of using.  If this parameter is not
     specified in the capability exchange or session setup procedure,
     its default value of 30 (Natural Audio Profile/Level 1) is used.

     object: a decimal representation of the MPEG-4 Audio Object Type
     value defined in ISO/IEC 14496-3 [5].  This parameter specifies
     the tool to be used by the coder.  It CAN be used to limit the
     capability within the specified "profile-level-id".

     bitrate: the data rate for the audio bit stream.

     cpresent: a boolean parameter indicates whether audio payload
     configuration data has been multiplexed into an RTP payload (see
     section 4.1).  A 0 indicates the configuration data has not been
     multiplexed into an RTP payload, a 1 indicates that it has.  The
     default if the parameter is omitted is 1.

     config: a hexadecimal representation of an octet string that
     expresses the audio payload configuration data "StreamMuxConfig",
     as defined in ISO/IEC 14496-3 [5] (see section 4.1).
     Configuration data is mapped onto the octet string in an MSB-first
     basis.  The first bit of the configuration data SHALL be located
     at the MSB of the first octet.  In the last octet, zero-padding
     bits, if necessary, SHALL follow the configuration data.

By: Olle Johansson (oej) 2007-01-08 05:49:49.000-0600

Added to svn trunk, rev 49968. Thanks!