change WritePES() to write zero packet_length in order to fit big frame size > 64K

This commit is contained in:
nareix 2015-12-09 02:25:07 +08:00
parent 767bba0224
commit 910337cf39

View File

@ -277,9 +277,7 @@ func bswap32(v uint) uint {
func WritePES(w io.Writer, self PESHeader, data io.ReadSeeker) (err error) { func WritePES(w io.Writer, self PESHeader, data io.ReadSeeker) (err error) {
// http://dvd.sourceforge.net/dvdinfo/pes-hdr.html // http://dvd.sourceforge.net/dvdinfo/pes-hdr.html
var pts_dts_flags, header_length, packet_length uint var pts_dts_flags, header_length uint
dataLen := getSeekerLength(data)
// start code(24) 000001 // start code(24) 000001
// StreamId(8) // StreamId(8)
@ -317,14 +315,9 @@ func WritePES(w io.Writer, self PESHeader, data io.ReadSeeker) (err error) {
if pts_dts_flags & DTS != 0 { if pts_dts_flags & DTS != 0 {
header_length += 5 header_length += 5
} }
packet_length = 3+header_length+uint(dataLen)
if DebugWriter { // packet_length(16) if zero then variable length
fmt.Printf("pesw: packet_length=%d\n", packet_length) if err = WriteUInt(w, 0, 2); err != nil {
}
// packet_length(16)
if err = WriteUInt(w, packet_length, 2); err != nil {
return return
} }