Hi, I have problems decoding h264 video chunks included in a Mp4 video.
As far as I know nal units start with 0x000001 identifier. So I manage to parse mp4 video, spot the video chunks, re-parse the chunks to find nal unit identifier, then I reassemble the chunks and, finally, send the nal units to av_decode_video. In the code below, the nal unit buffer is tm_buf->buffer, its length is tm_buf->buf_len

    ...

    AVPacket *avpack        = &packet ;

    avpack->side_data     = NULL;
    avpack->side_data_elems = 0;
    avpack->data        = tm_buf->buffer;
    avpack->size        = tm_buf->buf_len;

    AVFrame *decoded_frame = NULL;

    if (!decoded_frame)
    {
        if (!(decoded_frame = avcodec_alloc_frame()))
        {
            fprintf(stderr, "Could not allocate audio frame\n");
            exit(1);
        }
    }
    else
        avcodec_get_frame_defaults(decoded_frame);

len = avcodec_decode_video2( context, decoded_frame, &got_picture, avpack ) ;

Unfortunately the output window remains black.

I do not use av_read_frame to read from the file, because I want to rewrite the demuxer (as a matter of fact I already have). My knowledge of h264 is very poor, but why doesn't libav manage to decode the chunks. In addition, I don't seem to get any error message. Is there a way to solve all this without having to study all the stuff about h264?
Luigi
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to