2008/4/1, Baptiste Coudurier <[EMAIL PROTECTED]>:
> 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@mplayerhq.hu
>  https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-soc
>


-- 
Best wishes~

Attachment: ff_pes_cal_header_4-1.patch
Description: Binary data

_______________________________________________
FFmpeg-soc mailing list
FFmpeg-soc@mplayerhq.hu
https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-soc

Reply via email to