[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