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

zhentan feng spyfeng at gmail.com
Tue Apr 1 19:18:47 CEST 2008


2008/4/1, Baptiste Coudurier <baptiste.coudurier at smartjog.com>:
> Hi,
>
>
>  On Mon, Mar 31, 2008 at 11:18:07PM +0800, zhentan feng wrote:
>  > [...]
>  >
>  > Index: mpegpes.h
>  > ===================================================================
>  > --- mpegpes.h (revision 2048)
>  > +++ mpegpes.h (working copy)
>  > @@ -30,6 +30,12 @@
>  >  #include "avformat.h"
>  >  #include "fifo.h"
>  >
>
> > +#define PES_FMT_MPEG2 0x01
>  > +#define PES_FMT_VCD 0x02
>  > +#define PES_FMT_SVCD 0x04 | PES_FMT_MPEG2
>  > +#define PES_FMT_DVD 0x08 | PES_FMT_MPEG2
>  > +#define PES_FMT_TS 0x10 | PES_FMT_MPEG2
>  > +
>
>  Yes, but problem now is that == PES_FMT_TS is causing problems,
>  and gcc warns you about it. So you should directly merge values I guess.

fixed. The warnings are caused by the operator priority.

>
>  > [...]
>  >
>  > Index: mpegpesenc.c
>  > ===================================================================
>  > --- mpegpesenc.c      (revision 2048)
>  > +++ mpegpesenc.c      (working copy)
>  > @@ -100,7 +100,109 @@
>  >
>  >      return nb_frames;
>  >  }
>  > +/**
>
> > + * Caculate the PES header to flush
>
> > + * @param[in] id    the stream id
>  > + * @param[in] stream    the PES stream
>  > + * @param[in] packet_size    the packet size for PES
>  > + * @param[in] header_len     the PES header length
>  > + * @param[in] pts    the PTS
>  > + * @param[in] dts   the DTS
>  > + * @param[in] payload_size the PES palyload size
>  > + * @param[in] startcode  the startcode
>  > + * @param[in]stuffing_size the  PES stuff  size
>  > + * @param[in] trailer_size the trailer_ size
>  > + * @param[in] pad_packet_bytes the padding size for packet
>  > + * @return  NULL
>  > + */
>
> > +void ff_pes_cal_header(int id,PESStream * stream,
>  > +          int *packet_size,int *header_len,int64_t *pts,int64_t *dts,
>  > +    int *payload_size,int *startcode,int *stuffing_size,
>  > +          int *trailer_size,int *pad_packet_bytes)
>  > +{
>  > +     /* packet header size */
>  > +        *packet_size -= 6;
>  >
>  > +        /* packet header */
>
> > +        if (stream->format & PES_FMT_MPEG2){
>  > +             *header_len = 3;
>  > +             if (stream->packet_number==0)
>  > +                 *header_len += 3; /* PES extension */
>
>
> You don't check for TS here ? Old code is not checking this.
>  Are you sure it is correct ? Did you test it ?

yes, I think it will be strict to check the packet_number in TS.
Actually , the packet_number is useless for TS.
if( packet_number == 0 ) just the test for PS writing the PES
extension for P-STD_buffer_flag and TS don't necessary write the 3
bytes extension flag.

The new patch names "ff_pes_cal_header_4-1.patch" attached as below.

thank you

>
>  Except that patch is ok.
>
>
>  --
>  Baptiste COUDURIER                              GnuPG Key Id: 0x5C1ABAAA
>  SMARTJOG SAS                                     http://www.smartjog.com
>  Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
>  Phone: +33 1 49966312
>  _______________________________________________
>  FFmpeg-soc mailing list
>  FFmpeg-soc at mplayerhq.hu
>  https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-soc
>


-- 
Best wishes~
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ff_pes_cal_header_4-1.patch
Type: application/octet-stream
Size: 12152 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-soc/attachments/20080402/1a67b612/attachment.obj>


More information about the FFmpeg-soc mailing list