diff options
| -rw-r--r-- | src/decoder.cc | 24 | 
1 files changed, 14 insertions, 10 deletions
| diff --git a/src/decoder.cc b/src/decoder.cc index debff33..b9f634a 100644 --- a/src/decoder.cc +++ b/src/decoder.cc @@ -102,10 +102,11 @@ void Decoder::decode()      av_read_packet(fc, &pkt);      len = pkt.size;      ptr = pkt.data; -    /* NOTE: we only decode video, we only need the data from stream_index 0 */ -    /* (stream 0: video, stream 1: audio) */ -    while(pkt.stream_index == 0 && len > 0) { +    // NOTE: we only decode video, we only need the data from stream_index 0 +    // (stream 0: video, stream 1: audio) +    //    while(pkt.stream_index == 0 && len > 0) { +    while(len > 0) {        int ret;        int got_picture;        //      buf_t *buf = buf_alloc(); @@ -129,18 +130,20 @@ void Decoder::decode()        pthread_mutex_lock(mutex);        encode_queue->push(dvf); -      player_queue->push(fff); +      if(pkt.stream_index == 0) player_queue->push(fff);        pthread_mutex_unlock(mutex);        sem_post(encode_sem); -      user_event.type = SDL_USEREVENT; -      user_event.user.code = 0; -      user_event.user.data1 = NULL; -      user_event.user.data2 = NULL; -      SDL_PushEvent(&user_event); +      if(pkt.stream_index == 0) { +        user_event.type = SDL_USEREVENT; +        user_event.user.code = 0; +        user_event.user.data1 = NULL; +        user_event.user.data2 = NULL; +        SDL_PushEvent(&user_event); +      }      } - +    /*      // For later use, when audio must be implemented      while(pkt.stream_index == 1 && len > 0) {        DVFrame *dvf = new DVFrame(); @@ -157,6 +160,7 @@ void Decoder::decode()        sem_post(encode_sem);      } +    */      av_free_packet(&pkt);    } | 
