*Thanks for the response, Ross.

I tried the "H264VideoStreamDiscreteFramer" first and got the following:

Warning: Invalid 'nal_unit_type': 0.  Does the NAL unit begin with a MPEG
'start code' by mistake?

With the "H264VideoStreamFramer" and BANK_SIZE set to 2000000, I get the
following for a few seconds while video plays:*

*Parsed 38225-byte NAL-unit (nal_ref_idc: 2, nal_unit_type: 1 ("Coded slice
of a non-IDR picture"))
        Presentation time: 1293564387.952757
        first_mb_in_slice: 0
        slice_type: 0
        pic_parameter_set_id: 0
        frame_num: 5
    Next NAL unit's slice_header:
        first_mb_in_slice: 0
        slice_type: 0
        pic_parameter_set_id: 0
        frame_num: 6
        (frame_num differs in value)
        *****This NAL unit ends the current access unit*****
38225 bytes @1293564387.952757, fDurationInMicroseconds: 40000
((1*1000000)/25.000000)
StreamParser::ensureValidBytes1 fTotNumValidBytes 2202318 (3000000)
StreamParser::ensureValidBytes1 fTotNumValidBytes 2202318 (3000000)
H264VideoStreamParser::parse() EXCEPTION (This is normal behavior - *not* an
error)
incomingDataHandler1:/fb0MQ: mq_receive() 0x02AE30AD6, 48028 bytes received
into 150000 buffer)
StreamParser::afterGettingBytes fTo 0x4918FB
StreamParser::afterGettingBytes fTo 0x488491
Parsed 37996-byte NAL-unit (nal_ref_idc: 2, nal_unit_type: 1 ("Coded slice
of a non-IDR picture"))
        Presentation time: 1293564387.992757
        (The next NAL unit is not a VCL)
        *****This NAL unit ends the current access unit*****
37996 bytes @1293564387.992757, fDurationInMicroseconds: 40000
((1*1000000)/25.000000)
Parsed 9-byte NAL-unit (nal_ref_idc: 3, nal_unit_type: 7 ("Sequence
parameter set"))
        profile_idc: 66
        constraint_setN_flag: 128
        level_idc: 30
        seq_parameter_set_id: 0
        log2_max_frame_num_minus4: 0
        pic_order_cnt_type: 2
        max_num_ref_frames: 1
        gaps_in_frame_num_value_allowed_flag: 0
        pic_width_in_mbs_minus1: 39
        pic_height_in_map_units_minus1: 29
        frame_mbs_only_flag: 1
        frame_cropping_flag: 0
        vui_parameters_present_flag: 0
        This "Sequence Parameter Set" NAL unit contained no frame rate
information, so we use a default frame rate of 25.000000 fps
        Presentation time: 1293564388.032756
9 bytes @1293564388.032756, fDurationInMicroseconds: 0
((0*1000000)/25.000000)
Parsed 7-byte NAL-unit (nal_ref_idc: 3, nal_unit_type: 8 ("Picture parameter
set"))
        Presentation time: 1293564388.032756
7 bytes @1293564388.032756, fDurationInMicroseconds: 0
((0*1000000)/25.000000)
StreamParser::ensureValidBytes1 fTotNumValidBytes 2250346 (3000000)
StreamParser::ensureValidBytes1 fTotNumValidBytes 2250346 (3000000)
H264VideoStreamParser::parse() EXCEPTION (This is normal behavior - *not* an
error)
incomingDataHandler1:/fb0MQ: mq_receive() 0x02AE3C672, 38489 bytes received
into 150000 buffer)
StreamParser::afterGettingBytes fTo 0x49400F
StreamParser::afterGettingBytes fTo 0x488491
Parsed 48000-byte NAL-unit (nal_ref_idc: 2, nal_unit_type: 1 ("Coded slice
of a non-IDR picture"))
        Presentation time: 1293564388.032756
        first_mb_in_slice: 0
        slice_type: 2
        pic_parameter_set_id: 0
        frame_num: 7
    Next NAL unit's slice_header:
        first_mb_in_slice: 0
        slice_type: 0
        pic_parameter_set_id: 0
        frame_num: 8
        (frame_num differs in value)
        *****This NAL unit ends the current access unit*****
48000 bytes @1293564388.032756, fDurationInMicroseconds: 40000
((1*1000000)/25.000000)
StreamParser::ensureValidBytes1 fTotNumValidBytes 2288835 (3000000)
StreamParser::ensureValidBytes1 fTotNumValidBytes 2288835 (3000000)
H264VideoStreamParser::parse() EXCEPTION (This is normal behavior - *not* an
error)
sending REPORT
sending RTCP packet
 80c80006 3562be19 d0c4b874 619d2392 f9e9a0d6 0000065c 0022613c 81ca0004
3562be19 01096171 75696c61 31333100
reap: checking SSRC 0x80007181: 4 (threshold 0)
schedule(5.114989->1293564409.498146)
incomingDataHandler1:/fb0MQ: mq_receive() 0x02AE45CCB, 38227 bytes received
into 150000 buffer)
StreamParser::afterGettingBytes fTo 0x491AE6
StreamParser::afterGettingBytes fTo 0x488491
Parsed 38485-byte NAL-unit (nal_ref_idc: 2, nal_unit_type: 1 ("Coded slice
of a non-IDR picture"))
        Presentation time: 1293564388.072756
        first_mb_in_slice: 0
        slice_type: 0
        pic_parameter_set_id: 0
        frame_num: 8
    Next NAL unit's slice_header:
        first_mb_in_slice: 0
        slice_type: 0
        pic_parameter_set_id: 0
        frame_num: 9
        (frame_num differs in value)
        *****This NAL unit ends the current access unit*****
38485 bytes @1293564388.072756, fDurationInMicroseconds: 40000
((1*1000000)/25.000000)
StreamParser::ensureValidBytes1 fTotNumValidBytes 2327062 (3000000)
StreamParser::ensureValidBytes1 fTotNumValidBytes 2327062 (3000000)
H264VideoStreamParser::parse() EXCEPTION (This is normal behavior - *not* an
error)
incomingDataHandler1:/fb0MQ: mq_receive() 0x02AE4F21E, 48707 bytes received
into 150000 buffer)
StreamParser::afterGettingBytes fTo 0x4919DD
StreamParser::afterGettingBytes fTo 0x488491
Parsed 38223-byte NAL-unit (nal_ref_idc: 2, nal_unit_type: 1 ("Coded slice
of a non-IDR picture"))
        Presentation time: 1293564388.112756
        (The next NAL unit is not a VCL)
        *****This NAL unit ends the current access unit*****
38223 bytes @1293564388.112756, fDurationInMicroseconds: 40000
((1*1000000)/25.000000)
Parsed 9-byte NAL-unit (nal_ref_idc: 3, nal_unit_type: 7 ("Sequence
parameter set"))
        profile_idc: 66
        constraint_setN_flag: 128
        level_idc: 30
        seq_parameter_set_id: 0
        log2_max_frame_num_minus4: 0
        pic_order_cnt_type: 2
        max_num_ref_frames: 1
        gaps_in_frame_num_value_allowed_flag: 0
        pic_width_in_mbs_minus1: 39
        pic_height_in_map_units_minus1: 29
        frame_mbs_only_flag: 1
        frame_cropping_flag: 0
        vui_parameters_present_flag: 0
        This "Sequence Parameter Set" NAL unit contained no frame rate
information, so we use a default frame rate of 25.000000 fps
        Presentation time: 1293564388.152756
9 bytes @1293564388.152756, fDurationInMicroseconds: 0
((0*1000000)/25.000000)
Parsed 7-byte NAL-unit (nal_ref_idc: 3, nal_unit_type: 8 ("Picture parameter
set"))
        Presentation time: 1293564388.152756
7 bytes @1293564388.152756, fDurationInMicroseconds: 0
((0*1000000)/25.000000)
StreamParser::ensureValidBytes1 fTotNumValidBytes 2375769 (3000000)
StreamParser::ensureValidBytes1 fTotNumValidBytes 2375769 (3000000)
H264VideoStreamParser::parse() EXCEPTION (This is normal behavior - *not* an
error)
incomingDataHandler1:/fb0MQ: mq_receive() 0x02AE5B061, 38239 bytes received
into 150000 buffer)
StreamParser::afterGettingBytes fTo 0x4942B5
StreamParser::afterGettingBytes fTo 0x488491
Parsed 48679-byte NAL-unit (nal_ref_idc: 2, nal_unit_type: 1 ("Coded slice
of a non-IDR picture"))
        Presentation time: 1293564388.152756
        first_mb_in_slice: 0
        slice_type: 2
        pic_parameter_set_id: 0
        frame_num: 10
    Next NAL unit's slice_header:
        first_mb_in_slice: 0
        slice_type: 0
        pic_parameter_set_id: 0
        frame_num: 11
        (frame_num differs in value)
        *****This NAL unit ends the current access unit*****
48679 bytes @1293564388.152756, fDurationInMicroseconds: 40000
((1*1000000)/25.000000)
StreamParser::ensureValidBytes1 fTotNumValidBytes 2414008 (3000000)
StreamParser::ensureValidBytes1 fTotNumValidBytes 2414008 (3000000)
H264VideoStreamParser::parse() EXCEPTION (This is normal behavior - *not* an
error)
[0x4ba1e0]saw incoming RTCP packet (from address 192.168.50.38, port 2041)
 81c90007 80007181 3562be19 00ffffff 00018c08 000066a7 b874619d 000107aa
81ca0003 80007181 01056765 6f666600
RR
validated RTCP subpacket (type 2): 1, 201, 0, 0x80007181
UNSUPPORTED TYPE(0xca)
validated RTCP subpacket (type 2): 1, 202, 8, 0x80007181
validated entire RTCP packet
incomingDataHandler1:/fb0MQ: mq_receive() 0x02AE645C0, 38244 bytes received
into 150000 buffer)
StreamParser::afterGettingBytes fTo 0x4919E9
StreamParser::afterGettingBytes fTo 0x488491
*

*I know I am sending 3 fps and one I-frame every 3 frames. Should the
nal_unit_type change? The main problem is that fTo advances until all the
memory in the bank is exhausted. Can you point me to where the fTo is
restored after each frame is handled. It seems that old frames are never
freed. *

>*I'm puzzled as to why I get this problem as this should be common to
*>*both MPEG4 and H264. Any ideas?
*
I notice that for MPEG-4 you are using a
"MPEG4VideoStreamDiscreteFramer", but for H.264 you are using a
"H264VideoStreamFramer".  If your H.264 encoder delivers discrete NAL
units (i.e., one-NAL-unit-at-a-time), then it should be fed into a
"H264VideoStreamDiscreteFramer" instead.  (In this case, though,
there should *not* be a start code (0x00000001) at the start of each
NAL unit; that code is used only if the H.264 data is in a stream.)
-- 

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/



-- 
Geoff Cleary
_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to