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
> [email protected]
> https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-soc
>
--
Best wishes~
ff_pes_cal_header_4-1.patch
Description: Binary data
_______________________________________________ FFmpeg-soc mailing list [email protected] https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-soc
