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

Baptiste Coudurier baptiste.coudurier
Wed Mar 19 11:20:10 CET 2008


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.

>>  2) Verify strictly the conformance of generated TS streams (we do need
>>  another broken muxer), if not, fix it.
>>
> I understand the 2) as follow:
> first, generate a TS stream (T1) by mpegtsenc.c originally;

If you mean current svn, no, this is not needed, current TS muxer (in
svn) is broken.

> 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.

>>  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.

This qualification task should really familiarize you with muxing
concepts needed for the MXF muxer.

-- 
Baptiste COUDURIER                              GnuPG Key Id: 0x5C1ABAAA
SMARTJOG SAS                                     http://www.smartjog.com
Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
Phone: +33 1 49966312




More information about the ffmpeg-devel mailing list