[FFmpeg-devel] [FFmpeg-soc] GSoC 2008 qualification task TS Muxer

Måns Rullgård mans
Wed Mar 19 12:22:12 CET 2008

Baptiste Coudurier wrote:
> Hi,
> zhentan feng wrote:
>> 2008/3/19, Baptiste Coudurier <baptiste.coudurier at smartjog.com>:
>>> Hi,
>>>  zhentan feng wrote:
>>>  > hi all,
>>>  > My name is zhentan feng,and I am very glad to apply the gsoc project.
>>>  >
>>>  > According to the idea list and ffmpeg wiki, I prefer to apply the  MXF
>>>  > muxer which mentored by   Baptiste Coudurier.
>>>  >
>>>  > As to qualification task, I want to choose the TS Muxer project which
>>>  > also mentored by Baptiste Coudurier.
>>>  > So,could Baptiste Coudurier or anybody give me more details about the
>>>  > TS Muxer qualification task?
>>>  > best wished to all~
>>> Good, last year SoC TS muxer was not finished though working, and more
>>>  important not integrated.
>>>  The qualification task is:
>>>  1) Eliminate duplicated code found in both mpegtsenc.c and mpegenc.c
>>>  (current PS muxer): extract common functions, putting them in
>>>  mpegpesenc.c, extending them for TS only if strictly needed.
>>>  Code is at: svn://svn.mplayerhq.hu/soc/dvbmuxer
>> I already checked it out and look through the files.
>> It seems that mpegpesenc.c is the common functions extracted from both
>> mpegtsenc.c and  mpegenc.c.
>> The mpegpesenc.c just packet stream to PES packet.
>> But I still confused what're the problems with mpegpesenc.c?
> Basically nothing.
>> Is mpegpesenc.c lack of some function or can not work correctly?
> It lacks some functions and might not work "as is" with the PS muxer, so
> it would need to be extended a bit.
>> further more, I think i need some time to farmilar with the TS, PS,
>> PES packet format.
>> Do you have some useful documents to recommend?
> Sure, ISO 13818-1.

ITU-T H.222.0 has exactly the same text, and is free to download.

>> second , generate a TS stream (T2) by mpegtsenc.c(modified by cutting
>> the common code with mpegenc.c) call the functions in mpegpesenc.c ;
>> T1 and T2 have the same source stream.
>> then compare T1 and T2 to see are they conformance by examine the TS
>> packet format?
> Well, you must understand the code, and verify output stream
> conformance, more especially PCR values, buffer sizes, VBR muxing,
> against "specifications", and some advanced tools if you can have access to.

The important thing to check is that the generated stream conforms to the
buffer model in the spec.

>>>  3) Submit clean and separate patches against SVN for inclusion.
>> Does this point means if I have finished 1) and 2), I should commit
>> the codes to ffmpeg src repo?
> Send separate, clean and incremental patches first, for review.
> Don't wait the last day to send patches.
>>>  3) Extend it to support H264 muxing.
>> I understand it as follow:
>> read the stream which is H264 coded, and transform the header and
>> payload to PES packet,and then packeted  to TS stream itend to
>> transport high efficiency?
> Well, TS muxer will get H264 stream in AVPackets, and this must be PES
> muxed,
> then TS packetized, you must ensure stream is muxed correctly according
> to specifications.
>> I think the qualification task is not a easy task ,but I'll try my best.
>> Thank for anyone could give me any help.
> I don't think extracting duplicated code from mpegenc.c and mpegtsenc.c
> is that hard. H264 muxing might be slightly harder.

Assuming the H264 data is correctly encoded for TS muxing (i.e. has
AUD NAL units and the like), it shouldn't be any harder to mux than
anything else.  All that's needed is a descriptor in the PMT.  The
PES packetisation is no different from MPEG2.

M?ns Rullg?rd
mans at mansr.com

More information about the ffmpeg-devel mailing list